Migrate pkg/vm to null safety, part 4 TEST=ci Issue: https://github.com/dart-lang/sdk/issues/46620 Change-Id: I74c45ed1525248447e769cc832366728e7a017fc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208020 Commit-Queue: Alexander Markov <alexmarkov@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Alexander Aprelev <aam@google.com>
diff --git a/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart b/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart index 12614bb..a6d071f 100644 --- a/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart +++ b/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
@@ -42,7 +42,7 @@ /// Notice that the component has to include the platform, and that no other /// platform will be loaded. factory IncrementalKernelGenerator.fromComponent( - CompilerOptions options, Uri entryPoint, Component component, + CompilerOptions options, Uri entryPoint, Component? component, [bool? outlineOnly, IncrementalSerializer? incrementalSerializer]) { return new IncrementalCompiler.fromComponent( new CompilerContext( @@ -72,7 +72,7 @@ /// Returns a component whose libraries are the recompiled libraries, /// or - in the case of [fullComponent] - a full Component. - Future<Component> computeDelta({List<Uri> entryPoints, bool fullComponent}); + Future<Component> computeDelta({List<Uri>? entryPoints, bool fullComponent}); /// Returns [CoreTypes] used during compilation. /// Valid after [computeDelta] is called. @@ -136,7 +136,7 @@ List<TypeParameter> typeDefinitions, String syntheticProcedureName, Uri libraryUri, - [String className, + [String? className, bool isStatic = false]); /// Sets experimental features.
diff --git a/pkg/front_end/lib/src/api_unstable/bazel_worker.dart b/pkg/front_end/lib/src/api_unstable/bazel_worker.dart index 46566f1..8cf810b 100644 --- a/pkg/front_end/lib/src/api_unstable/bazel_worker.dart +++ b/pkg/front_end/lib/src/api_unstable/bazel_worker.dart
@@ -58,7 +58,7 @@ /// Re-uses cached components from [oldState.workerInputCache], and reloads them /// as necessary based on [workerInputDigests]. Future<InitializedCompilerState> initializeIncrementalCompiler( - InitializedCompilerState oldState, + InitializedCompilerState? oldState, Set<String> tags, Uri sdkSummary, Uri packagesFile, @@ -99,7 +99,7 @@ } Future<InitializedCompilerState> initializeCompiler( - InitializedCompilerState oldState, + InitializedCompilerState? oldState, Uri sdkSummary, Uri librariesSpecificationUri, Uri packagesFile,
diff --git a/pkg/vm/lib/incremental_compiler.dart b/pkg/vm/lib/incremental_compiler.dart index 5179a44..a8d3271 100644 --- a/pkg/vm/lib/incremental_compiler.dart +++ b/pkg/vm/lib/incremental_compiler.dart
@@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.9 - /// Defines wrapper class around incremental compiler to support /// the flow, where incremental deltas can be rejected by VM. import 'dart:async'; @@ -20,23 +18,23 @@ /// deltas and combines them together into resultant program until it is /// accepted. class IncrementalCompiler { - IncrementalKernelGenerator _generator; - IncrementalSerializer incrementalSerializer; + late IncrementalKernelGenerator _generator; + IncrementalSerializer? incrementalSerializer; // Component that reflect the state that was most recently accepted by the // client. Is [null], if no compilation results were accepted by the client. - Component _lastKnownGood; - List<Component> _pendingDeltas; + Component? _lastKnownGood; + late List<Component> _pendingDeltas; CompilerOptions _compilerOptions; bool initialized = false; bool fullComponent = false; - Uri initializeFromDillUri; + Uri? initializeFromDillUri; Uri _entryPoint; final bool forExpressionCompilationOnly; Uri get entryPoint => _entryPoint; IncrementalKernelGenerator get generator => _generator; - Component get lastKnownGoodComponent => _lastKnownGood; + Component? get lastKnownGoodComponent => _lastKnownGood; IncrementalCompiler(this._compilerOptions, this._entryPoint, {this.initializeFromDillUri, bool incrementalSerialization: true}) @@ -61,12 +59,12 @@ /// /// If [entryPoint] is specified, that points to new entry point for the /// compilation. Otherwise, previously set entryPoint is used. - Future<Component> compile({Uri entryPoint}) async { + Future<Component> compile({Uri? entryPoint}) async { final task = new TimelineTask(); try { task.start("IncrementalCompiler.compile"); _entryPoint = entryPoint ?? _entryPoint; - List<Uri> entryPoints; + List<Uri>? entryPoints; if (entryPoint != null) entryPoints = [entryPoint]; Component component = await _generator.computeDelta( entryPoints: entryPoints, fullComponent: fullComponent); @@ -80,8 +78,9 @@ } _combinePendingDeltas(bool includePlatform) { - Procedure mainMethod; - NonNullableByDefaultCompiledMode compilationMode; + Procedure? mainMethod; + NonNullableByDefaultCompiledMode compilationMode = + NonNullableByDefaultCompiledMode.Invalid; Map<Uri, Library> combined = <Uri, Library>{}; Map<Uri, Source> uriToSource = new Map<Uri, Source>(); for (Component delta in _pendingDeltas) { @@ -104,8 +103,8 @@ ..setMainMethodAndMode(mainMethod?.reference, true, compilationMode); } - CoreTypes getCoreTypes() => _generator.getCoreTypes(); - ClassHierarchy getClassHierarchy() => _generator.getClassHierarchy(); + CoreTypes? getCoreTypes() => _generator.getCoreTypes(); + ClassHierarchy? getClassHierarchy() => _generator.getClassHierarchy(); /// This lets incremental compiler know that results of last [compile] call /// were accepted, don't need to be included into subsequent [compile] calls @@ -118,13 +117,14 @@ Map<Uri, Library> combined = <Uri, Library>{}; Map<Uri, Source> uriToSource = <Uri, Source>{}; - if (_lastKnownGood != null) { + Component? lastKnownGood = _lastKnownGood; + if (lastKnownGood != null) { // TODO(aam): Figure out how to skip no-longer-used libraries from // [_lastKnownGood] libraries. - for (Library library in _lastKnownGood.libraries) { + for (Library library in lastKnownGood.libraries) { combined[library.importUri] = library; } - uriToSource.addAll(_lastKnownGood.uriToSource); + uriToSource.addAll(lastKnownGood.uriToSource); } Component candidate = _combinePendingDeltas(true); @@ -133,13 +133,13 @@ } uriToSource.addAll(candidate.uriToSource); - _lastKnownGood = new Component( + _lastKnownGood = lastKnownGood = new Component( libraries: combined.values.toList(), uriToSource: uriToSource, )..setMainMethodAndMode( candidate.mainMethod?.reference, true, candidate.mode); for (final repo in candidate.metadata.values) { - _lastKnownGood.addMetadataRepository(repo); + lastKnownGood.addMetadataRepository(repo); } _pendingDeltas.clear(); } @@ -182,12 +182,12 @@ fullComponent = true; } - Future<Procedure> compileExpression( + Future<Procedure?> compileExpression( String expression, List<String> definitions, List<String> typeDefinitions, String libraryUri, - String klass, + String? klass, bool isStatic) { Map<String, DartType> completeDefinitions = {}; for (String name in definitions) { @@ -202,7 +202,6 @@ } Uri library = Uri.parse(libraryUri); - if (library == null) return null; return _generator.compileExpression(expression, completeDefinitions, typeParameters, kDebugProcedureName, library, klass, isStatic);
diff --git a/pkg/vm/lib/kernel_front_end.dart b/pkg/vm/lib/kernel_front_end.dart index 43d5a59..51ed004 100644 --- a/pkg/vm/lib/kernel_front_end.dart +++ b/pkg/vm/lib/kernel_front_end.dart
@@ -2,10 +2,7 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.9 - /// Defines the VM-specific translation of Dart source code to kernel binaries. -library vm.kernel_front_end; import 'dart:async'; import 'dart:io' show File, IOSink; @@ -162,7 +159,7 @@ /// Run kernel compiler tool with given [options] and [usage] /// and return exit code. Future<int> runCompiler(ArgResults options, String usage) async { - final String platformKernel = options['platform']; + final String? platformKernel = options['platform']; if (options['help']) { print(usage); @@ -176,26 +173,26 @@ final String input = options.rest.single; final String outputFileName = options['output'] ?? "$input.dill"; - final String packages = options['packages']; + final String? packages = options['packages']; final String targetName = options['target']; - final String fileSystemScheme = options['filesystem-scheme']; - final String depfile = options['depfile']; - final String fromDillFile = options['from-dill']; - final List<String> fileSystemRoots = options['filesystem-root']; + final String? fileSystemScheme = options['filesystem-scheme']; + final String? depfile = options['depfile']; + final String? fromDillFile = options['from-dill']; + final List<String>? fileSystemRoots = options['filesystem-root']; final bool aot = options['aot']; final bool tfa = options['tfa']; final bool linkPlatform = options['link-platform']; final bool embedSources = options['embed-sources']; final bool enableAsserts = options['enable-asserts']; - final bool nullSafety = options['sound-null-safety']; + final bool? nullSafety = options['sound-null-safety']; final bool useProtobufTreeShakerV2 = options['protobuf-tree-shaker-v2']; final bool splitOutputByPackages = options['split-output-by-packages']; - final String manifestFilename = options['manifest']; - final String dataDir = options['component-name'] ?? options['data-dir']; + final String? manifestFilename = options['manifest']; + final String? dataDir = options['component-name'] ?? options['data-dir']; final bool minimalKernel = options['minimal-kernel']; final bool treeShakeWriteOnlyFields = options['tree-shake-write-only-fields']; - final List<String> experimentalFlags = options['enable-experiment']; + final List<String>? experimentalFlags = options['enable-experiment']; final Map<String, String> environmentDefines = {}; if (!parseCommandLineDefines(options['define'], environmentDefines, usage)) { @@ -217,7 +214,7 @@ final fileSystem = createFrontEndFileSystem(fileSystemScheme, fileSystemRoots); - final Uri packagesUri = packages != null ? resolveInputUri(packages) : null; + final Uri? packagesUri = packages != null ? resolveInputUri(packages) : null; final platformKernelUri = Uri.base.resolveUri(new Uri.file(platformKernel)); final List<Uri> additionalDills = <Uri>[]; @@ -232,7 +229,8 @@ final verbosity = Verbosity.parseArgument(options['verbosity']); final errorPrinter = new ErrorPrinter(verbosity); - final errorDetector = new ErrorDetector(previousErrorHandler: errorPrinter); + final errorDetector = + new ErrorDetector(previousErrorHandler: errorPrinter.call); final CompilerOptions compilerOptions = new CompilerOptions() ..sdkSummary = platformKernelUri @@ -280,19 +278,20 @@ errorPrinter.printCompilationMessages(); - if (errorDetector.hasCompilationErrors || (results.component == null)) { + final Component? component = results.component; + if (errorDetector.hasCompilationErrors || (component == null)) { return compileTimeErrorExitCode; } final IOSink sink = new File(outputFileName).openWrite(); final BinaryPrinter printer = new BinaryPrinter(sink, libraryFilter: (lib) => !results.loadedLibraries.contains(lib)); - printer.writeComponentFile(results.component); + printer.writeComponentFile(component); await sink.close(); if (depfile != null) { await writeDepfile( - fileSystem, results.compiledSources, outputFileName, depfile); + fileSystem, results.compiledSources!, outputFileName, depfile); } if (splitOutputByPackages) { @@ -314,14 +313,14 @@ /// Results of [compileToKernel]: generated kernel [Component] and /// collection of compiled sources. class KernelCompilationResults { - final Component component; + final Component? component; /// Set of libraries loaded from .dill, with or without the SDK depending on /// the compilation settings. final Set<Library> loadedLibraries; - final ClassHierarchy classHierarchy; - final CoreTypes coreTypes; - final Iterable<Uri> compiledSources; + final ClassHierarchy? classHierarchy; + final CoreTypes? coreTypes; + final Iterable<Uri>? compiledSources; KernelCompilationResults(this.component, this.loadedLibraries, this.classHierarchy, this.coreTypes, this.compiledSources); @@ -338,29 +337,30 @@ List<String> deleteToStringPackageUris: const <String>[], bool aot: false, bool useGlobalTypeFlowAnalysis: false, - Map<String, String> environmentDefines, + required Map<String, String> environmentDefines, bool enableAsserts: true, bool useProtobufTreeShakerV2: false, bool minimalKernel: false, bool treeShakeWriteOnlyFields: false, - String fromDillFile: null}) async { + String? fromDillFile: null}) async { // Replace error handler to detect if there are compilation errors. final errorDetector = new ErrorDetector(previousErrorHandler: options.onDiagnostic); - options.onDiagnostic = errorDetector; + options.onDiagnostic = errorDetector.call; + final target = options.target!; options.environmentDefines = - options.target.updateEnvironmentDefines(environmentDefines); + target.updateEnvironmentDefines(environmentDefines); - CompilerResult compilerResult; + CompilerResult? compilerResult; if (fromDillFile != null) { compilerResult = await loadKernel(options.fileSystem, resolveInputUri(fromDillFile)); } else { compilerResult = await kernelForProgram(source, options); } - Component component = compilerResult?.component; - Iterable<Uri> compiledSources = component?.uriToSource?.keys; + final Component? component = compilerResult?.component; + Iterable<Uri>? compiledSources = component?.uriToSource.keys; Set<Library> loadedLibraries = createLoadedLibrariesSet( compilerResult?.loadedComponents, compilerResult?.sdkComponent, @@ -373,13 +373,8 @@ // Run global transformations only if component is correct. if ((aot || minimalKernel) && component != null) { - await runGlobalTransformations( - options.target, - component, - useGlobalTypeFlowAnalysis, - enableAsserts, - useProtobufTreeShakerV2, - errorDetector, + await runGlobalTransformations(target, component, useGlobalTypeFlowAnalysis, + enableAsserts, useProtobufTreeShakerV2, errorDetector, minimalKernel: minimalKernel, treeShakeWriteOnlyFields: treeShakeWriteOnlyFields); @@ -387,7 +382,7 @@ // compiledSources is component.uriToSource.keys. // Make a copy of compiledSources to detach it from // component.uriToSource which is cleared below. - compiledSources = compiledSources.toList(); + compiledSources = compiledSources!.toList(); component.metadata.clear(); component.uriToSource.clear(); @@ -406,7 +401,7 @@ } Set<Library> createLoadedLibrariesSet( - List<Component> loadedComponents, Component sdkComponent, + List<Component>? loadedComponents, Component? sdkComponent, {bool includePlatform: false}) { final Set<Library> loadedLibraries = {}; if (loadedComponents != null) { @@ -481,8 +476,11 @@ /// Runs given [action] with [CompilerContext]. This is needed to /// be able to report compile-time errors. -Future<T> runWithFrontEndCompilerContext<T>(Uri source, - CompilerOptions compilerOptions, Component component, T action()) async { +Future<T> runWithFrontEndCompilerContext<T>( + Uri source, + CompilerOptions compilerOptions, + Component component, + Future<T> action()) async { final processedOptions = new ProcessedOptions(options: compilerOptions, inputs: [source]); @@ -498,7 +496,7 @@ } class ErrorDetector { - final DiagnosticMessageHandler previousErrorHandler; + final DiagnosticMessageHandler? previousErrorHandler; bool hasCompilationErrors = false; ErrorDetector({this.previousErrorHandler}); @@ -514,8 +512,9 @@ class ErrorPrinter { final Verbosity verbosity; - final DiagnosticMessageHandler previousErrorHandler; - final compilationMessages = <Uri, List<DiagnosticMessage>>{}; + final DiagnosticMessageHandler? previousErrorHandler; + final Map<Uri?, List<DiagnosticMessage>> compilationMessages = + <Uri?, List<DiagnosticMessage>>{}; ErrorPrinter(this.verbosity, {this.previousErrorHandler}); @@ -539,8 +538,8 @@ } return 0; }); - for (final Uri sourceUri in sortedUris) { - for (final DiagnosticMessage message in compilationMessages[sourceUri]) { + for (final Uri? sourceUri in sortedUris) { + for (final DiagnosticMessage message in compilationMessages[sourceUri]!) { if (Verbosity.shouldPrint(verbosity, message)) { printDiagnosticMessage(message, print); } @@ -576,7 +575,7 @@ } /// Create front-end target with given name. -Target createFrontEndTarget(String targetName, +Target? createFrontEndTarget(String targetName, {bool trackWidgetCreation = false, bool nullSafety = false}) { // Make sure VM-specific targets are available. installAdditionalTargets(); @@ -591,9 +590,8 @@ /// If requested, create a virtual mutli-root file system and/or an http aware /// file system. FileSystem createFrontEndFileSystem( - String multiRootFileSystemScheme, List<String> multiRootFileSystemRoots, - {bool allowHttp}) { - allowHttp ??= false; + String? multiRootFileSystemScheme, List<String>? multiRootFileSystemRoots, + {bool allowHttp = false}) { FileSystem fileSystem = StandardFileSystem.instance; if (allowHttp) { fileSystem = HttpAwareFileSystem(fileSystem); @@ -615,7 +613,7 @@ Future<Uri> asFileUri(FileSystem fileSystem, Uri uri) async { FileSystemEntity fse = fileSystem.entityForUri(uri); if (fse is MultiRootFileSystemEntity) { - fse = await (fse as MultiRootFileSystemEntity).delegate; + fse = await fse.delegate; } return fse.uri; } @@ -645,8 +643,9 @@ Future writeOutputSplitByPackages(Uri source, CompilerOptions compilerOptions, KernelCompilationResults compilationResults, String outputFileName) async { final packages = <String>[]; - await runWithFrontEndCompilerContext( - source, compilerOptions, compilationResults.component, () async { + final Component component = compilationResults.component!; + await runWithFrontEndCompilerContext(source, compilerOptions, component, + () async { // When loading a kernel file list, flutter_runner and dart_runner expect // 'main' to be last. await forEachPackage(compilationResults, @@ -655,12 +654,10 @@ final String filename = '$outputFileName-$package.dilp'; final IOSink sink = new File(filename).openWrite(); - Component partComponent = compilationResults.component; - final BinaryPrinter printer = new BinaryPrinter(sink, libraryFilter: (lib) => packageFor(lib, compilationResults.loadedLibraries) == package); - printer.writeComponentFile(partComponent); + printer.writeComponentFile(component); await sink.close(); }, mainFirst: false); @@ -673,7 +670,7 @@ await packagesList.close(); } -String packageFor(Library lib, Set<Library> loadedLibraries) { +String? packageFor(Library lib, Set<Library> loadedLibraries) { // Core libraries are not written into any package kernel binaries. if (loadedLibraries.contains(lib)) return null; @@ -701,23 +698,25 @@ } } -Future<Null> forEachPackage<T>(KernelCompilationResults results, - T action(String package, List<Library> libraries), - {bool mainFirst}) async { - final Component component = results.component; +Future<void> forEachPackage(KernelCompilationResults results, + Future<void> action(String package, List<Library> libraries), + {required bool mainFirst}) async { + final Component component = results.component!; final Set<Library> loadedLibraries = results.loadedLibraries; sortComponent(component); - final packages = new Map<String, List<Library>>(); + final Map<String, List<Library>> packages = <String, List<Library>>{}; packages['main'] = <Library>[]; // Always create 'main'. for (Library lib in component.libraries) { - packages - .putIfAbsent(packageFor(lib, loadedLibraries), () => <Library>[]) - .add(lib); + final String? package = packageFor(lib, loadedLibraries); + // Ignore external libraries. + if (package == null) { + continue; + } + packages.putIfAbsent(package, () => <Library>[]).add(lib); } - packages.remove(null); // Ignore external libraries. - final mainLibraries = packages.remove('main'); + final mainLibraries = packages.remove('main')!; if (mainFirst) { await action('main', mainLibraries); } @@ -728,7 +727,7 @@ component.setMainMethodAndMode(null, true, compilationMode); component.problemsAsJson = null; for (String package in packages.keys) { - await action(package, packages[package]); + await action(package, packages[package]!); } component.setMainMethodAndMode(mainMethod?.reference, true, compilationMode); component.problemsAsJson = problemsAsJson; @@ -750,8 +749,8 @@ file.write(_escapePath(output)); file.write(':'); for (Uri dep in compiledSources) { - // Skip empty or corelib dependencies. - if (dep == null || dep.scheme == 'org-dartlang-sdk') continue; + // Skip corelib dependencies. + if (dep.scheme == 'org-dartlang-sdk') continue; Uri uri = await asFileUri(fileSystem, dep); file.write(' '); file.write(_escapePath(uri.toFilePath())); @@ -761,7 +760,7 @@ } Future<void> createFarManifest( - String output, String dataDir, String packageManifestFilename) async { + String output, String? dataDir, String packageManifestFilename) async { List<String> packages = await File('$output-packages').readAsLines(); // Make sure the 'main' package is the last (convention with package loader). @@ -791,7 +790,7 @@ 'typed_data', 'vector_math' ]) { - Digest digest; + Digest? digest; if (packages.contains(package)) { final filenameInBuild = '$output-$package.dilp'; final bytes = await File(filenameInBuild).readAsBytes(); @@ -813,11 +812,20 @@ CompilerResultLoadedFromKernel(this.component); - List<int> get summary => null; + @override + List<int>? get summary => null; + + @override List<Component> get loadedComponents => const <Component>[]; + + @override List<Uri> get deps => const <Uri>[]; - CoreTypes get coreTypes => null; - ClassHierarchy get classHierarchy => null; + + @override + CoreTypes? get coreTypes => null; + + @override + ClassHierarchy? get classHierarchy => null; } Future<CompilerResult> loadKernel(
diff --git a/pkg/vm/lib/target/dart_runner.dart b/pkg/vm/lib/target/dart_runner.dart index c1df052..995d484 100644 --- a/pkg/vm/lib/target/dart_runner.dart +++ b/pkg/vm/lib/target/dart_runner.dart
@@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.9 - import 'package:kernel/target/targets.dart'; import 'package:vm/target/vm.dart' show VmTarget;
diff --git a/pkg/vm/lib/target/flutter.dart b/pkg/vm/lib/target/flutter.dart index 3ffdc12..1eadf20 100644 --- a/pkg/vm/lib/target/flutter.dart +++ b/pkg/vm/lib/target/flutter.dart
@@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.9 - import 'package:kernel/ast.dart' show Component, Library; import 'package:kernel/core_types.dart' show CoreTypes; import 'package:kernel/target/changed_structure_notifier.dart'; @@ -14,7 +12,7 @@ class FlutterTarget extends VmTarget { FlutterTarget(TargetFlags flags) : super(flags); - WidgetCreatorTracker _widgetTracker; + late final WidgetCreatorTracker _widgetTracker = WidgetCreatorTracker(); @override String get name => 'flutter'; @@ -57,15 +55,12 @@ CoreTypes coreTypes, List<Library> libraries, DiagnosticReporter diagnosticReporter, - {void Function(String msg) logger, - ChangedStructureNotifier changedStructureNotifier}) { + {void Function(String msg)? logger, + ChangedStructureNotifier? changedStructureNotifier}) { super.performPreConstantEvaluationTransformations( component, coreTypes, libraries, diagnosticReporter, logger: logger, changedStructureNotifier: changedStructureNotifier); if (flags.trackWidgetCreation) { - if (_widgetTracker == null) { - _widgetTracker = WidgetCreatorTracker(); - } _widgetTracker.transform(component, libraries, changedStructureNotifier); } }
diff --git a/pkg/vm/lib/target/flutter_runner.dart b/pkg/vm/lib/target/flutter_runner.dart index a9c41ac..addd766 100644 --- a/pkg/vm/lib/target/flutter_runner.dart +++ b/pkg/vm/lib/target/flutter_runner.dart
@@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.9 - import 'package:kernel/target/targets.dart'; import 'package:vm/target/vm.dart' show VmTarget;
diff --git a/pkg/vm/lib/target/install.dart b/pkg/vm/lib/target/install.dart index d691d28..b22d469 100644 --- a/pkg/vm/lib/target/install.dart +++ b/pkg/vm/lib/target/install.dart
@@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.9 - import 'package:kernel/target/targets.dart' show targets, TargetFlags; import 'package:vm/target/dart_runner.dart' show DartRunnerTarget; import 'package:vm/target/flutter.dart' show FlutterTarget;
diff --git a/pkg/vm/lib/target/vm.dart b/pkg/vm/lib/target/vm.dart index 20cd144..ec6e1b1 100644 --- a/pkg/vm/lib/target/vm.dart +++ b/pkg/vm/lib/target/vm.dart
@@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.9 - import 'package:kernel/ast.dart'; import 'package:kernel/clone.dart'; import 'package:kernel/class_hierarchy.dart'; @@ -34,14 +32,14 @@ class VmTarget extends Target { final TargetFlags flags; - Class _growableList; - Class _immutableList; - Class _internalLinkedHashMap; - Class _immutableMap; - Class _oneByteString; - Class _twoByteString; - Class _smi; - Class _double; // _Double, not double. + Class? _growableList; + Class? _immutableList; + Class? _internalLinkedHashMap; + Class? _immutableMap; + Class? _oneByteString; + Class? _twoByteString; + Class? _smi; + Class? _double; // _Double, not double. VmTarget(this.flags); @@ -116,7 +114,7 @@ final Field little = coreTypes.index.getField('dart:typed_data', 'Endian', 'little'); host.isConst = true; - host.initializer = new CloneVisitorNotMembers().clone(little.initializer) + host.initializer = new CloneVisitorNotMembers().clone(little.initializer!) ..parent = host; } @@ -126,8 +124,8 @@ CoreTypes coreTypes, List<Library> libraries, DiagnosticReporter diagnosticReporter, - {void Function(String msg) logger, - ChangedStructureNotifier changedStructureNotifier}) { + {void Function(String msg)? logger, + ChangedStructureNotifier? changedStructureNotifier}) { super.performPreConstantEvaluationTransformations( component, coreTypes, libraries, diagnosticReporter, logger: logger, changedStructureNotifier: changedStructureNotifier); @@ -152,11 +150,11 @@ CoreTypes coreTypes, ClassHierarchy hierarchy, List<Library> libraries, - Map<String, String> environmentDefines, + Map<String, String>? environmentDefines, DiagnosticReporter diagnosticReporter, - ReferenceFromIndex referenceFromIndex, - {void Function(String msg) logger, - ChangedStructureNotifier changedStructureNotifier}) { + ReferenceFromIndex? referenceFromIndex, + {void Function(String msg)? logger, + ChangedStructureNotifier? changedStructureNotifier}) { transformMixins.transformLibraries( this, coreTypes, hierarchy, libraries, referenceFromIndex); logger?.call("Transformed mixin applications"); @@ -184,7 +182,7 @@ } // TODO(kmillikin): Make this run on a per-method basis. - bool productMode = environmentDefines["dart.vm.product"] == "true"; + bool productMode = environmentDefines!["dart.vm.product"] == "true"; transformAsync.transformLibraries( new TypeEnvironment(coreTypes, hierarchy), libraries, productMode: productMode); @@ -204,9 +202,9 @@ CoreTypes coreTypes, ClassHierarchy hierarchy, Procedure procedure, - Map<String, String> environmentDefines, - {void Function(String msg) logger}) { - bool productMode = environmentDefines["dart.vm.product"] == "true"; + Map<String, String>? environmentDefines, + {void Function(String msg)? logger}) { + bool productMode = environmentDefines!["dart.vm.product"] == "true"; transformAsync.transformProcedure( new TypeEnvironment(coreTypes, hierarchy), procedure, productMode: productMode); @@ -451,7 +449,7 @@ } @override - Class concreteIntLiteralClass(CoreTypes coreTypes, int value) { + Class? concreteIntLiteralClass(CoreTypes coreTypes, int value) { const int bitsPerInt32 = 32; const int smiBits32 = bitsPerInt32 - 2; const int smiMin32 = -(1 << smiBits32); @@ -490,7 +488,6 @@ Map<String, String> updateEnvironmentDefines(Map<String, String> map) { // TODO(alexmarkov): Call this from the front-end in order to have // the same defines when compiling platform. - assert(map != null); map['dart.isVM'] = 'true'; // TODO(dartbug.com/36460): Derive dart.library.* definitions from platform. for (String library in extraRequiredLibraries) {
diff --git a/pkg/vm/test/common_test_utils.dart b/pkg/vm/test/common_test_utils.dart index 3f8bf9c..1ff586a 100644 --- a/pkg/vm/test/common_test_utils.dart +++ b/pkg/vm/test/common_test_utils.dart
@@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.9 - import 'dart:async'; import 'dart:io'; @@ -37,11 +35,11 @@ } Future<Component> compileTestCaseToKernelProgram(Uri sourceUri, - {Target target, + {Target? target, bool enableSuperMixins = false, - List<String> experimentalFlags, - Map<String, String> environmentDefines, - Uri packagesFileUri}) async { + List<String>? experimentalFlags, + Map<String, String>? environmentDefines, + Uri? packagesFileUri}) async { final platformKernel = computePlatformBinariesLocation().resolve('vm_platform_strong.dill'); target ??= new TestingVmTarget(new TargetFlags()) @@ -62,11 +60,11 @@ }; final Component component = - (await kernelForProgram(sourceUri, options)).component; + (await kernelForProgram(sourceUri, options))!.component!; // Make sure the library name is the same and does not depend on the order // of test cases. - component.mainMethod.enclosingLibrary.name = '#lib'; + component.mainMethod!.enclosingLibrary.name = '#lib'; return component; } @@ -75,19 +73,19 @@ final StringBuffer buffer = new StringBuffer(); final printer = new Printer(buffer, showMetadata: true); printer.writeLibraryFile(library); - printer.writeConstantTable(library.enclosingComponent); + printer.writeConstantTable(library.enclosingComponent!); return buffer .toString() - .replaceAll(library.importUri.toString(), library.name); + .replaceAll(library.importUri.toString(), library.name!); } String kernelComponentToString(Component component) { final StringBuffer buffer = new StringBuffer(); new Printer(buffer, showMetadata: true).writeComponentFile(component); - final mainLibrary = component.mainMethod.enclosingLibrary; + final mainLibrary = component.mainMethod!.enclosingLibrary; return buffer .toString() - .replaceAll(mainLibrary.importUri.toString(), mainLibrary.name); + .replaceAll(mainLibrary.importUri.toString(), mainLibrary.name!); } class DevNullSink<T> extends Sink<T> {