Version 2.12.0-133.0.dev
Merge commit '86e598808f6538baeaa674e1103162ac75bbf4a3' into 'dev'
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart
index 59739f3..2e73adb 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart
@@ -28,10 +28,10 @@
DartType returnType;
FunctionBody body;
if (parent is FunctionDeclaration) {
- returnType = parent.returnType.type;
+ returnType = parent.declaredElement.returnType;
body = parent.functionExpression.body;
} else if (parent is MethodDeclaration) {
- returnType = parent.returnType.type;
+ returnType = parent.declaredElement.returnType;
body = parent.body;
}
if (body == null) {
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/encapsulate_field.dart b/pkg/analysis_server/lib/src/services/correction/dart/encapsulate_field.dart
index 6f1065a..23d6686 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/encapsulate_field.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/encapsulate_field.dart
@@ -51,11 +51,17 @@
if (nameNode != node) {
return;
}
+
+ // Should be in a class or mixin.
+ if (fieldDeclaration.parent is! ClassOrMixinDeclaration) {
+ return;
+ }
+ var classDeclaration = fieldDeclaration.parent as ClassOrMixinDeclaration;
+
await builder.addDartFileEdit(file, (builder) {
// rename field
builder.addSimpleReplacement(range.node(nameNode), '_$name');
// update references in constructors
- ClassOrMixinDeclaration classDeclaration = fieldDeclaration.parent;
for (var member in classDeclaration.members) {
if (member is ConstructorDeclaration) {
for (var parameter in member.parameters.parameters) {
diff --git a/pkg/analysis_server/test/src/services/correction/assist/encapsulate_field_test.dart b/pkg/analysis_server/test/src/services/correction/assist/encapsulate_field_test.dart
index 3ab99bf..5817ae2 100644
--- a/pkg/analysis_server/test/src/services/correction/assist/encapsulate_field_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/assist/encapsulate_field_test.dart
@@ -58,6 +58,16 @@
''');
}
+ Future<void> test_extension_hasType() async {
+ verifyNoTestUnitErrors = false;
+ await resolveTestCode('''
+extension E on int {
+ int test = 42;
+}
+''');
+ await assertNoAssistAt('test = 42');
+ }
+
Future<void> test_final() async {
await resolveTestCode('''
class A {
@@ -94,6 +104,25 @@
''');
}
+ Future<void> test_mixin_hasType() async {
+ await resolveTestCode('''
+mixin M {
+ int test = 42;
+}
+''');
+ await assertHasAssistAt('test = 42', '''
+mixin M {
+ int _test = 42;
+
+ int get test => _test;
+
+ set test(int test) {
+ _test = test;
+ }
+}
+''');
+ }
+
Future<void> test_multipleFields() async {
await resolveTestCode('''
class A {
diff --git a/pkg/analysis_server/test/src/services/correction/fix/add_async_test.dart b/pkg/analysis_server/test/src/services/correction/fix/add_async_test.dart
index 185a291..bb382ff 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/add_async_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/add_async_test.dart
@@ -248,6 +248,21 @@
await assertNoFix();
}
+ Future<void> test_missingReturn_method_notVoid_inherited() async {
+ await resolveTestCode('''
+abstract class A {
+ Future<int> foo();
+}
+
+class B implements A {
+ foo() {
+ print('');
+ }
+}
+''');
+ await assertNoFix();
+ }
+
Future<void> test_missingReturn_method_void() async {
await resolveTestCode('''
class C {
@@ -265,6 +280,31 @@
''');
}
+ Future<void> test_missingReturn_method_void_inherited() async {
+ await resolveTestCode('''
+abstract class A {
+ Future<void> foo();
+}
+
+class B implements A {
+ foo() {
+ print('');
+ }
+}
+''');
+ await assertHasFix('''
+abstract class A {
+ Future<void> foo();
+}
+
+class B implements A {
+ foo() async {
+ print('');
+ }
+}
+''');
+ }
+
Future<void> test_missingReturn_topLevel_hasReturn() async {
await resolveTestCode('''
Future<int> f(bool b) {
diff --git a/pkg/analyzer/lib/src/dart/analysis/file_state.dart b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
index 5b8e8b6..a37f6a7 100644
--- a/pkg/analyzer/lib/src/dart/analysis/file_state.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
@@ -285,7 +285,7 @@
LibraryCycle get libraryCycle {
if (isPart) {
var library = this.library;
- if (library != null) {
+ if (library != null && !identical(library, this)) {
return library.libraryCycle;
}
}
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index faf322e..1f98644 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -138,28 +138,6 @@
T accept<T>(ElementVisitor<T> visitor) => visitor.visitClassElement(this);
@override
- ElementImpl getChild(String identifier) {
- //
- // The casts in this method are safe because the set methods would have
- // thrown a CCE if any of the elements in the arrays were not of the
- // expected types.
- //
- for (PropertyAccessorElement accessor in accessors) {
- PropertyAccessorElementImpl accessorImpl = accessor;
- if (accessorImpl.identifier == identifier) {
- return accessorImpl;
- }
- }
- for (FieldElement field in fields) {
- FieldElementImpl fieldImpl = field;
- if (fieldImpl.identifier == identifier) {
- return fieldImpl;
- }
- }
- return null;
- }
-
- @override
FieldElement getField(String name) {
for (FieldElement fieldElement in fields) {
if (name == fieldElement.name) {
@@ -899,38 +877,6 @@
}
@override
- ElementImpl getChild(String identifier) {
- ElementImpl child = super.getChild(identifier);
- if (child != null) {
- return child;
- }
- //
- // The casts in this method are safe because the set methods would have
- // thrown a CCE if any of the elements in the arrays were not of the
- // expected types.
- //
- for (ConstructorElement constructor in constructors) {
- ConstructorElementImpl constructorImpl = constructor;
- if (constructorImpl.identifier == identifier) {
- return constructorImpl;
- }
- }
- for (MethodElement method in methods) {
- MethodElementImpl methodImpl = method;
- if (methodImpl.identifier == identifier) {
- return methodImpl;
- }
- }
- for (TypeParameterElement typeParameter in typeParameters) {
- TypeParameterElementImpl typeParameterImpl = typeParameter;
- if (typeParameterImpl.identifier == identifier) {
- return typeParameterImpl;
- }
- }
- return null;
- }
-
- @override
ConstructorElement getNamedConstructor(String name) =>
getNamedConstructorFromList(name, constructors);
@@ -1563,51 +1509,6 @@
}
@override
- ElementImpl getChild(String identifier) {
- //
- // The casts in this method are safe because the set methods would have
- // thrown a CCE if any of the elements in the arrays were not of the
- // expected types.
- //
- for (PropertyAccessorElement accessor in accessors) {
- PropertyAccessorElementImpl accessorImpl = accessor;
- if (accessorImpl.identifier == identifier) {
- return accessorImpl;
- }
- }
- for (TopLevelVariableElement variable in topLevelVariables) {
- TopLevelVariableElementImpl variableImpl = variable;
- if (variableImpl.identifier == identifier) {
- return variableImpl;
- }
- }
- for (FunctionElement function in functions) {
- FunctionElementImpl functionImpl = function;
- if (functionImpl.identifier == identifier) {
- return functionImpl;
- }
- }
- for (TypeAliasElementImpl typeAlias in typeAliases) {
- if (typeAlias.identifier == identifier) {
- return typeAlias;
- }
- }
- for (ClassElement type in types) {
- ClassElementImpl typeImpl = type;
- if (typeImpl.name == identifier) {
- return typeImpl;
- }
- }
- for (ClassElement type in enums) {
- EnumElementImpl typeImpl = type;
- if (typeImpl.identifier == identifier) {
- return typeImpl;
- }
- }
- return null;
- }
-
- @override
ClassElement getEnum(String enumName) {
for (ClassElement enumDeclaration in enums) {
if (enumDeclaration.name == enumName) {
@@ -3074,10 +2975,6 @@
}
}
- /// Return the child of this element that is uniquely identified by the given
- /// [identifier], or `null` if there is no such child.
- ElementImpl getChild(String identifier) => null;
-
@override
String getDisplayString({@required bool withNullability}) {
var builder = ElementDisplayStringBuilder(
@@ -3785,17 +3682,6 @@
}
@override
- ElementImpl getChild(String identifier) {
- for (ParameterElement parameter in parameters) {
- ParameterElementImpl parameterImpl = parameter;
- if (parameterImpl.identifier == identifier) {
- return parameterImpl;
- }
- }
- return null;
- }
-
- @override
void visitChildren(ElementVisitor visitor) {
super.visitChildren(visitor);
_safelyVisitPossibleChild(returnType, visitor);
@@ -5393,33 +5279,6 @@
..returnType = typeProvider.futureDynamicType;
}
- @override
- ElementImpl getChild(String identifier) {
- CompilationUnitElementImpl unitImpl = _definingCompilationUnit;
- if (unitImpl.identifier == identifier) {
- return unitImpl;
- }
- for (CompilationUnitElement part in _parts) {
- CompilationUnitElementImpl partImpl = part;
- if (partImpl.identifier == identifier) {
- return partImpl;
- }
- }
- for (ImportElement importElement in imports) {
- ImportElementImpl importElementImpl = importElement;
- if (importElementImpl.identifier == identifier) {
- return importElementImpl;
- }
- }
- for (ExportElement exportElement in exports) {
- ExportElementImpl exportElementImpl = exportElement;
- if (exportElementImpl.identifier == identifier) {
- return exportElementImpl;
- }
- }
- return null;
- }
-
ClassElement getEnum(String name) {
ClassElement element = _definingCompilationUnit.getEnum(name);
if (element != null) {
@@ -7234,17 +7093,6 @@
}
@override
- ElementImpl getChild(String identifier) {
- for (TypeParameterElement typeParameter in typeParameters) {
- TypeParameterElementImpl typeParameterImpl = typeParameter;
- if (typeParameterImpl.identifier == identifier) {
- return typeParameterImpl;
- }
- }
- return null;
- }
-
- @override
DartType instantiate({
List<DartType> typeArguments,
NullabilitySuffix nullabilitySuffix,
diff --git a/pkg/analyzer/test/generated/invalid_code_test.dart b/pkg/analyzer/test/generated/invalid_code_test.dart
index 7a8dc86..6fd7955 100644
--- a/pkg/analyzer/test/generated/invalid_code_test.dart
+++ b/pkg/analyzer/test/generated/invalid_code_test.dart
@@ -313,6 +313,13 @@
''');
}
+ test_invalidPart_withPart() async {
+ await _assertCanBeAnalyzed('''
+part of a;
+part 'test.dart';
+''');
+ }
+
test_keywordInConstructorInitializer_assert() async {
await _assertCanBeAnalyzed('''
class C {
diff --git a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
index b2a098a..bcea8e7 100644
--- a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
@@ -506,6 +506,19 @@
_assertLibraryCycle(fb, [fb], [fa.libraryCycle]);
}
+ test_libraryCycle_invalidPart_withPart() {
+ var pa = convertPath('/aaa/lib/a.dart');
+
+ newFile(pa, content: r'''
+part of lib;
+part 'a.dart';
+''');
+
+ var fa = fileSystemState.getFileForPath(pa);
+
+ _assertLibraryCycle(fa, [fa], []);
+ }
+
test_referencedNames() {
String path = convertPath('/aaa/lib/a.dart');
newFile(path, content: r'''
diff --git a/pkg/analyzer_cli/lib/src/build_mode.dart b/pkg/analyzer_cli/lib/src/build_mode.dart
index 76679f5..ec2ad2b 100644
--- a/pkg/analyzer_cli/lib/src/build_mode.dart
+++ b/pkg/analyzer_cli/lib/src/build_mode.dart
@@ -28,10 +28,10 @@
import 'package:analyzer/src/summary/package_bundle_reader.dart';
import 'package:analyzer/src/summary/summary_sdk.dart' show SummaryBasedDartSdk;
import 'package:analyzer/src/summary2/bundle_reader.dart';
-import 'package:analyzer/src/summary2/link.dart' as summary2;
-import 'package:analyzer/src/summary2/linked_element_factory.dart' as summary2;
+import 'package:analyzer/src/summary2/link.dart';
+import 'package:analyzer/src/summary2/linked_element_factory.dart';
import 'package:analyzer/src/summary2/package_bundle_format.dart';
-import 'package:analyzer/src/summary2/reference.dart' as summary2;
+import 'package:analyzer/src/summary2/reference.dart';
import 'package:analyzer_cli/src/context_cache.dart';
import 'package:analyzer_cli/src/driver.dart';
import 'package:analyzer_cli/src/error_formatter.dart';
@@ -174,7 +174,7 @@
DeclaredVariables declaredVariables;
AnalysisDriver analysisDriver;
- summary2.LinkedElementFactory elementFactory;
+ LinkedElementFactory elementFactory;
// May be null.
final DependencyTracker dependencyTracker;
@@ -285,7 +285,7 @@
/// in [explicitSources] to produce linked summary bytes.
Uint8List _computeLinkedLibraries2() {
return logger.run('Link output summary2', () {
- var inputLibraries = <summary2.LinkInputLibrary>[];
+ var inputLibraries = <LinkInputLibrary>[];
for (var librarySource in explicitSources) {
var path = librarySource.fullName;
@@ -301,9 +301,9 @@
continue;
}
- var inputUnits = <summary2.LinkInputUnit>[];
+ var inputUnits = <LinkInputUnit>[];
inputUnits.add(
- summary2.LinkInputUnit(null, librarySource, false, unit),
+ LinkInputUnit(null, librarySource, false, unit),
);
for (var directive in unit.directives) {
@@ -315,7 +315,7 @@
if (partSource == null) {
var unit = analysisDriver.fsState.unresolvedFile.parse();
inputUnits.add(
- summary2.LinkInputUnit(partUri, null, true, unit),
+ LinkInputUnit(partUri, null, true, unit),
);
continue;
}
@@ -326,7 +326,7 @@
throw ArgumentError('No parsed unit for part $partPath in $path');
}
inputUnits.add(
- summary2.LinkInputUnit(
+ LinkInputUnit(
partUri,
partSource,
false,
@@ -337,11 +337,11 @@
}
inputLibraries.add(
- summary2.LinkInputLibrary(librarySource, inputUnits),
+ LinkInputLibrary(librarySource, inputUnits),
);
}
- var linkResult = summary2.link(elementFactory, inputLibraries, false);
+ var linkResult = link(elementFactory, inputLibraries, false);
var bundleBuilder = PackageBundleBuilder();
for (var library in inputLibraries) {
@@ -444,10 +444,10 @@
sourceFactory,
);
- elementFactory = summary2.LinkedElementFactory(
+ elementFactory = LinkedElementFactory(
analysisContext,
AnalysisSessionImpl(null),
- summary2.Reference.root(),
+ Reference.root(),
);
for (var bundle in summaryDataStore.bundles) {
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index 6cb97b4..05bf1ff 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -230,12 +230,18 @@
});
});
+ bool get onlyPerformGlobalTypeInference {
+ return options.readClosedWorldUri != null &&
+ options.readDataUri == null &&
+ options.readCodegenUri == null;
+ }
+
Future runInternal(Uri uri) async {
clearState();
assert(uri != null);
reporter.log('Compiling $uri (${options.buildId})');
- if (options.readClosedWorldUri != null) {
+ if (onlyPerformGlobalTypeInference) {
ir.Component component =
await serializationTask.deserializeComponentAndUpdateOptions();
JsClosedWorld closedWorld =
@@ -250,9 +256,20 @@
}
await generateJavaScriptCode(globalTypeInferenceResults);
} else if (options.readDataUri != null) {
- GlobalTypeInferenceResults globalTypeInferenceResults =
- await serializationTask.deserializeGlobalTypeInference(
- environment, abstractValueStrategy);
+ GlobalTypeInferenceResults globalTypeInferenceResults;
+ if (options.readClosedWorldUri != null) {
+ ir.Component component =
+ await serializationTask.deserializeComponentAndUpdateOptions();
+ JsClosedWorld closedWorld =
+ await serializationTask.deserializeClosedWorld(
+ environment, abstractValueStrategy, component);
+ globalTypeInferenceResults =
+ await serializationTask.deserializeGlobalAnalysis(
+ environment, abstractValueStrategy, component, closedWorld);
+ } else {
+ globalTypeInferenceResults = await serializationTask
+ .deserializeGlobalTypeInference(environment, abstractValueStrategy);
+ }
if (options.debugGlobalInference) {
performGlobalTypeInference(globalTypeInferenceResults.closedWorld);
return;
diff --git a/pkg/compiler/lib/src/dart2js.dart b/pkg/compiler/lib/src/dart2js.dart
index 76191aa..11b8c5d 100644
--- a/pkg/compiler/lib/src/dart2js.dart
+++ b/pkg/compiler/lib/src/dart2js.dart
@@ -723,6 +723,12 @@
readDataUri ??= Uri.base.resolve('$scriptName.data');
options.add('${Flags.readData}=${readDataUri}');
break;
+ case ReadStrategy.fromDataAndClosedWorld:
+ readClosedWorldUri ??= Uri.base.resolve('$scriptName.world');
+ options.add('${Flags.readClosedWorld}=${readClosedWorldUri}');
+ readDataUri ??= Uri.base.resolve('$scriptName.data');
+ options.add('${Flags.readData}=${readDataUri}');
+ break;
case ReadStrategy.fromCodegen:
readDataUri ??= Uri.base.resolve('$scriptName.data');
options.add('${Flags.readData}=${readDataUri}');
@@ -736,6 +742,21 @@
}
options.add('${Flags.codegenShards}=$codegenShards');
break;
+ case ReadStrategy.fromCodegenAndClosedWorld:
+ readClosedWorldUri ??= Uri.base.resolve('$scriptName.world');
+ options.add('${Flags.readClosedWorld}=${readClosedWorldUri}');
+ readDataUri ??= Uri.base.resolve('$scriptName.data');
+ options.add('${Flags.readData}=${readDataUri}');
+ readCodegenUri ??= Uri.base.resolve('$scriptName.code');
+ options.add('${Flags.readCodegen}=${readCodegenUri}');
+ if (codegenShards == null) {
+ fail("Cannot write serialized codegen without setting "
+ "${Flags.codegenShards}.");
+ } else if (codegenShards <= 0) {
+ fail("${Flags.codegenShards} must be a positive integer.");
+ }
+ options.add('${Flags.codegenShards}=$codegenShards');
+ break;
}
options.add('--out=$out');
if (writeStrategy == WriteStrategy.toJs) {
@@ -784,6 +805,15 @@
fe.relativizeUri(Uri.base, readDataUri, Platform.isWindows);
summary = 'Data files $input and $dataInput ';
break;
+ case ReadStrategy.fromDataAndClosedWorld:
+ inputName = 'bytes data';
+ inputSize = inputProvider.dartCharactersRead;
+ String worldInput =
+ fe.relativizeUri(Uri.base, readClosedWorldUri, Platform.isWindows);
+ String dataInput =
+ fe.relativizeUri(Uri.base, readDataUri, Platform.isWindows);
+ summary = 'Data files $input, $worldInput, and $dataInput ';
+ break;
case ReadStrategy.fromCodegen:
inputName = 'bytes data';
inputSize = inputProvider.dartCharactersRead;
@@ -794,6 +824,18 @@
summary = 'Data files $input, $dataInput and '
'${codeInput}[0-${codegenShards - 1}] ';
break;
+ case ReadStrategy.fromCodegenAndClosedWorld:
+ inputName = 'bytes data';
+ inputSize = inputProvider.dartCharactersRead;
+ String worldInput =
+ fe.relativizeUri(Uri.base, readClosedWorldUri, Platform.isWindows);
+ String dataInput =
+ fe.relativizeUri(Uri.base, readDataUri, Platform.isWindows);
+ String codeInput =
+ fe.relativizeUri(Uri.base, readCodegenUri, Platform.isWindows);
+ summary = 'Data files $input, $worldInput, $dataInput and '
+ '${codeInput}[0-${codegenShards - 1}] ';
+ break;
}
switch (writeStrategy) {
@@ -1314,5 +1356,12 @@
});
}
-enum ReadStrategy { fromDart, fromClosedWorld, fromData, fromCodegen }
+enum ReadStrategy {
+ fromDart,
+ fromClosedWorld,
+ fromData,
+ fromDataAndClosedWorld,
+ fromCodegen,
+ fromCodegenAndClosedWorld
+}
enum WriteStrategy { toKernel, toClosedWorld, toData, toCodegen, toJs }
diff --git a/pkg/compiler/lib/src/serialization/task.dart b/pkg/compiler/lib/src/serialization/task.dart
index 32d936c..28d3224 100644
--- a/pkg/compiler/lib/src/serialization/task.dart
+++ b/pkg/compiler/lib/src/serialization/task.dart
@@ -34,6 +34,20 @@
sink.close();
}
+GlobalTypeInferenceResults deserializeGlobalAnalysisFromSource(
+ CompilerOptions options,
+ DiagnosticReporter reporter,
+ Environment environment,
+ AbstractValueStrategy abstractValueStrategy,
+ ir.Component component,
+ JsClosedWorld newClosedWorld,
+ DataSource source) {
+ InferredData newInferredData =
+ InferredData.readFromDataSource(source, newClosedWorld);
+ return GlobalTypeInferenceResults.readFromDataSource(
+ source, newClosedWorld.elementMap, newClosedWorld, newInferredData);
+}
+
GlobalTypeInferenceResults deserializeGlobalTypeInferenceResultsFromSource(
CompilerOptions options,
DiagnosticReporter reporter,
@@ -185,6 +199,21 @@
});
}
+ Future<GlobalTypeInferenceResults> deserializeGlobalAnalysis(
+ Environment environment,
+ AbstractValueStrategy abstractValueStrategy,
+ ir.Component component,
+ JsClosedWorld closedWorld) async {
+ return await measureIoSubtask('deserialize data', () async {
+ _reporter.log('Reading data from ${_options.readDataUri}');
+ api.Input<List<int>> dataInput = await _provider
+ .readFromUri(_options.readDataUri, inputKind: api.InputKind.binary);
+ DataSource source = BinarySourceImpl(dataInput.data);
+ return deserializeGlobalAnalysisFromSource(_options, _reporter,
+ environment, abstractValueStrategy, component, closedWorld, source);
+ });
+ }
+
void serializeCodegen(
BackendStrategy backendStrategy, CodegenResults codegenResults) {
GlobalTypeInferenceResults globalTypeInferenceResults =
diff --git a/pkg/compiler/tool/modular_test_suite.dart b/pkg/compiler/tool/modular_test_suite.dart
index 0fe73be..2809f33 100644
--- a/pkg/compiler/tool/modular_test_suite.dart
+++ b/pkg/compiler/tool/modular_test_suite.dart
@@ -53,12 +53,13 @@
_options,
new IOPipeline([
SourceToDillStep(),
- LegacyGlobalAnalysisStep(),
- Dart2jsCodegenStep(codeId0),
- Dart2jsCodegenStep(codeId1),
- Dart2jsEmissionStep(),
+ ComputeClosedWorldStep(),
+ GlobalAnalysisStep(),
+ LegacyDart2jsCodegenStep(codeId0),
+ LegacyDart2jsCodegenStep(codeId1),
+ LegacyDart2jsEmissionStep(),
RunD8(),
- ], cacheSharedModules: true))
+ ], cacheSharedModules: true)),
]);
}
@@ -326,22 +327,26 @@
}
}
-// Step that invokes the dart2js global analysis on the main module by providing
-// the .dill files of all transitive modules as inputs.
-// NOTE: This is the legacy combined closed world computation alongside global
-// inference.
-class LegacyGlobalAnalysisStep implements IOModularStep {
+// Step that invokes the dart2js code generation on the main module given the
+// results of the global analysis step and produces one shard of the codegen
+// output.
+class Dart2jsCodegenStep implements IOModularStep {
+ final ShardDataId codeId;
+
+ Dart2jsCodegenStep(this.codeId);
+
@override
- List<DataId> get resultData => const [globalDataId, updatedDillId];
+ List<DataId> get resultData => [codeId];
@override
bool get needsSources => false;
@override
- List<DataId> get dependencyDataNeeded => const [dillId];
+ List<DataId> get dependencyDataNeeded => const [];
@override
- List<DataId> get moduleDataNeeded => const [dillId];
+ List<DataId> get moduleDataNeeded =>
+ const [updatedDillId, closedWorldId, globalDataId];
@override
bool get onlyOnMain => true;
@@ -349,20 +354,18 @@
@override
Future<void> execute(Module module, Uri root, ModuleDataToRelativeUri toUri,
List<String> flags) async {
- if (_options.verbose) print("\nstep: dart2js global analysis on $module");
- Set<Module> transitiveDependencies = computeTransitiveDependencies(module);
- Iterable<String> dillDependencies =
- transitiveDependencies.map((m) => '${toUri(m, dillId)}');
+ if (_options.verbose) print("\nstep: dart2js backend on $module");
List<String> args = [
'--packages=${sdkRoot.toFilePath()}/.packages',
_dart2jsScript,
- // TODO(sigmund): remove this dependency on libraries.json
if (_options.useSdk) '--libraries-spec=$_librarySpecForSnapshot',
- '${toUri(module, dillId)}',
+ '${toUri(module, updatedDillId)}',
for (String flag in flags) '--enable-experiment=$flag',
- '${Flags.dillDependencies}=${dillDependencies.join(',')}',
- '${Flags.writeData}=${toUri(module, globalDataId)}',
- '--out=${toUri(module, updatedDillId)}',
+ '${Flags.readClosedWorld}=${toUri(module, closedWorldId)}',
+ '${Flags.readData}=${toUri(module, globalDataId)}',
+ '${Flags.writeCodegen}=${toUri(module, codeId.dataId)}',
+ '${Flags.codegenShard}=${codeId.shard}',
+ '${Flags.codegenShards}=${codeId.dataId.shards}',
];
var result =
await _runProcess(Platform.resolvedExecutable, args, root.toFilePath());
@@ -372,18 +375,65 @@
@override
void notifyCached(Module module) {
- if (_options.verbose)
- print("\ncached step: dart2js global analysis on $module");
+ if (_options.verbose) print("cached step: dart2js backend on $module");
+ }
+}
+
+// Step that invokes the dart2js codegen enqueuer and emitter on the main module
+// given the results of the global analysis step and codegen shards.
+class Dart2jsEmissionStep implements IOModularStep {
+ @override
+ List<DataId> get resultData => const [jsId];
+
+ @override
+ bool get needsSources => false;
+
+ @override
+ List<DataId> get dependencyDataNeeded => const [];
+
+ @override
+ List<DataId> get moduleDataNeeded =>
+ const [updatedDillId, closedWorldId, globalDataId, codeId0, codeId1];
+
+ @override
+ bool get onlyOnMain => true;
+
+ @override
+ Future<void> execute(Module module, Uri root, ModuleDataToRelativeUri toUri,
+ List<String> flags) async {
+ if (_options.verbose) print("step: dart2js backend on $module");
+ List<String> args = [
+ '--packages=${sdkRoot.toFilePath()}/.packages',
+ _dart2jsScript,
+ if (_options.useSdk) '--libraries-spec=$_librarySpecForSnapshot',
+ '${toUri(module, updatedDillId)}',
+ for (String flag in flags) '${Flags.enableLanguageExperiments}=$flag',
+ '${Flags.readClosedWorld}=${toUri(module, closedWorldId)}',
+ '${Flags.readData}=${toUri(module, globalDataId)}',
+ '${Flags.readCodegen}=${toUri(module, codeId)}',
+ '${Flags.codegenShards}=${codeId.shards}',
+ '--out=${toUri(module, jsId)}',
+ ];
+ var result =
+ await _runProcess(Platform.resolvedExecutable, args, root.toFilePath());
+
+ _checkExitCode(result, this, module);
+ }
+
+ @override
+ void notifyCached(Module module) {
+ if (_options.verbose) print("\ncached step: dart2js backend on $module");
}
}
// Step that invokes the dart2js code generation on the main module given the
// results of the global analysis step and produces one shard of the codegen
// output.
-class Dart2jsCodegenStep implements IOModularStep {
+// Note: Legacy.
+class LegacyDart2jsCodegenStep implements IOModularStep {
final ShardDataId codeId;
- Dart2jsCodegenStep(this.codeId);
+ LegacyDart2jsCodegenStep(this.codeId);
@override
List<DataId> get resultData => [codeId];
@@ -429,7 +479,8 @@
// Step that invokes the dart2js codegen enqueuer and emitter on the main module
// given the results of the global analysis step and codegen shards.
-class Dart2jsEmissionStep implements IOModularStep {
+// Note: Legacy.
+class LegacyDart2jsEmissionStep implements IOModularStep {
@override
List<DataId> get resultData => const [jsId];
diff --git a/pkg/front_end/lib/src/api_prototype/lowering_predicates.dart b/pkg/front_end/lib/src/api_prototype/lowering_predicates.dart
index 1d521a5..28122d7 100644
--- a/pkg/front_end/lib/src/api_prototype/lowering_predicates.dart
+++ b/pkg/front_end/lib/src/api_prototype/lowering_predicates.dart
@@ -4,8 +4,7 @@
import 'package:kernel/ast.dart';
import '../fasta/kernel/late_lowering.dart';
-
-// TODO(johnniwinther): Add support for recognizing late lowered locals?
+import '../fasta/source/source_extension_builder.dart' show extensionThisName;
/// Returns `true` if [node] is the field holding the value of a lowered late
/// field.
@@ -147,29 +146,30 @@
/// where '#local' is the local variable holding that value.
///
/// The default value of this variable is `null`.
-// TODO(johnniwinther): Enable these if the name of late locals is changed
-// to '${lateLocalPrefix}${name}'. See
-// backends can benefit from identifying late locals.
-/*bool isLateLoweredLocal(VariableDeclaration node) {
- return node.name != null && isLateLoweredLocalName(node.name);
+bool isLateLoweredLocal(VariableDeclaration node) {
+ assert(node.isLowered ||
+ node.name == null ||
+ !isLateLoweredLocalName(node.name));
+ return node.isLowered && isLateLoweredLocalName(node.name);
}
/// Returns `true` if [name] is the name of a local variable holding the value
/// of a lowered late variable.
bool isLateLoweredLocalName(String name) {
- return name.startsWith(lateLocalPrefix) &&
- !(name.endsWith(lateIsSetSuffix) ||
- name.endsWith(lateLocalGetterSuffix) ||
- name.endsWith(lateLocalSetterSuffix));
+ return name != extensionThisName &&
+ name.startsWith(lateLocalPrefix) &&
+ !name.endsWith(lateIsSetSuffix) &&
+ !name.endsWith(lateLocalGetterSuffix) &&
+ !name.endsWith(lateLocalSetterSuffix);
}
/// Returns the name of the original late local variable from the [name] of the
/// local variable holding the value of the lowered late variable.
///
/// This method assumes that `isLateLoweredLocalName(name)` is `true`.
-String extractLateLoweredLocalNameFrom(String name) {
+String extractLocalNameFromLateLoweredLocal(String name) {
return name.substring(lateLocalPrefix.length);
-}*/
+}
/// Returns `true` if [node] is the local variable holding the marker for
/// whether a lowered late local variable has been set or not.
@@ -192,12 +192,15 @@
///
/// The default value of this variable is `false`.
bool isLateLoweredIsSetLocal(VariableDeclaration node) {
- return node.name != null && isLateLoweredIsSetName(node.name);
+ assert(node.isLowered ||
+ node.name == null ||
+ !isLateLoweredIsSetLocalName(node.name));
+ return node.isLowered && isLateLoweredIsSetLocalName(node.name);
}
/// Returns `true` if [name] is the name of a local variable holding the marker
/// for whether a lowered late local variable has been set or not.
-bool isLateLoweredIsSetName(String name) {
+bool isLateLoweredIsSetLocalName(String name) {
return name.startsWith(lateLocalPrefix) && name.endsWith(lateIsSetSuffix);
}
@@ -228,12 +231,15 @@
///
/// where '#local#get' is the local function for reading the variable.
bool isLateLoweredLocalGetter(VariableDeclaration node) {
- return node.name != null && isLateLoweredGetterName(node.name);
+ assert(node.isLowered ||
+ node.name == null ||
+ !isLateLoweredLocalGetterName(node.name));
+ return node.isLowered && isLateLoweredLocalGetterName(node.name);
}
/// Returns `true` if [name] is the name of the local variable for the local
/// function for reading the value of a lowered late variable.
-bool isLateLoweredGetterName(String name) {
+bool isLateLoweredLocalGetterName(String name) {
return name.startsWith(lateLocalPrefix) &&
name.endsWith(lateLocalGetterSuffix);
}
@@ -266,12 +272,15 @@
/// where '#local#set' is the local function for setting the value of the
/// variable.
bool isLateLoweredLocalSetter(VariableDeclaration node) {
- return node.name != null && isLateLoweredSetterName(node.name);
+ assert(node.isLowered ||
+ node.name == null ||
+ !isLateLoweredLocalSetterName(node.name));
+ return node.isLowered && isLateLoweredLocalSetterName(node.name);
}
/// Returns `true` if [name] is the name of the local variable for the local
/// function for setting the value of a lowered late variable.
-bool isLateLoweredSetterName(String name) {
+bool isLateLoweredLocalSetterName(String name) {
return name.startsWith(lateLocalPrefix) &&
name.endsWith(lateLocalSetterSuffix);
}
@@ -285,3 +294,84 @@
return name.substring(
lateLocalPrefix.length, name.length - lateLocalSetterSuffix.length);
}
+
+/// Returns `true` if [node] is the synthetic parameter holding the `this` value
+/// in the encoding of extension instance members.
+///
+/// For instance
+///
+/// extension Extension on int {
+/// int method() => this;
+/// }
+///
+/// is encoded as
+///
+/// int Extension|method(int #this) => #this;
+///
+/// where '#this' is the synthetic "extension this" parameter.
+bool isExtensionThis(VariableDeclaration node) {
+ assert(
+ node.isLowered || node.name == null || !isExtensionThisName(node.name));
+ return node.isLowered && isExtensionThisName(node.name);
+}
+
+/// Returns `true` if [name] is the name of the synthetic parameter holding the
+/// `this` value in the encoding of extension instance members.
+bool isExtensionThisName(String name) {
+ return name == extensionThisName;
+}
+
+/// Returns the name of the original variable from the [name] of the synthetic
+/// parameter holding the `this` value in the encoding of extension instance
+/// members.
+///
+/// This method assumes that `isExtensionThisName(name)` is `true`.
+String extractLocalNameForExtensionThis(String name) {
+ return 'this';
+}
+
+/// Returns the original name of the variable [node].
+///
+/// If [node] is a lowered variable then the name before lowering is returned.
+/// Otherwise the name of the variable itself is returned.
+///
+/// Note that the name can be `null` in case of a synthetic variable created
+/// for instance for encoding of `?.`.
+String extractLocalNameFromVariable(VariableDeclaration node) {
+ if (node.isLowered) {
+ String name = _extractLocalName(node.name);
+ if (name == null) {
+ throw new UnsupportedError("Unrecognized lowered local $node");
+ }
+ return name;
+ }
+ return node.name;
+}
+
+/// Returns the original name of a variable by the given [name].
+///
+/// If [name] is the name of a lowered variable then the name before lowering is
+/// returned. Otherwise the name of the variable itself is returned.
+///
+/// This assumed that [name] is non-null.
+String extractLocalName(String name) {
+ return _extractLocalName(name) ?? name;
+}
+
+/// Returns the original name of a lowered variable by the given [name].
+///
+/// If [name] doesn't correspond to a lowered name `null` is returned.
+String _extractLocalName(String name) {
+ if (isExtensionThisName(name)) {
+ return extractLocalNameForExtensionThis(name);
+ } else if (isLateLoweredLocalName(name)) {
+ return extractLocalNameFromLateLoweredLocal(name);
+ } else if (isLateLoweredLocalGetterName(name)) {
+ return extractLocalNameFromLateLoweredGetter(name);
+ } else if (isLateLoweredLocalSetterName(name)) {
+ return extractLocalNameFromLateLoweredSetter(name);
+ } else if (isLateLoweredIsSetLocalName(name)) {
+ return extractLocalNameFromLateLoweredIsSet(name);
+ }
+ return null;
+}
diff --git a/pkg/front_end/lib/src/fasta/builder/formal_parameter_builder.dart b/pkg/front_end/lib/src/fasta/builder/formal_parameter_builder.dart
index ff976c0..626190e 100644
--- a/pkg/front_end/lib/src/fasta/builder/formal_parameter_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/formal_parameter_builder.dart
@@ -74,9 +74,11 @@
/// True if the initializer was declared by the programmer.
bool hasDeclaredInitializer = false;
+ final bool isExtensionThis;
+
FormalParameterBuilder(this.metadata, this.modifiers, this.type, this.name,
LibraryBuilder compilationUnit, int charOffset,
- [Uri fileUri])
+ {Uri fileUri, this.isExtensionThis: false})
: super(compilationUnit, charOffset, fileUri);
String get debugName => "FormalParameterBuilder";
@@ -122,7 +124,8 @@
isFieldFormal: isInitializingFormal,
isCovariant: isCovariant,
isRequired: isNamedRequired,
- hasDeclaredInitializer: hasDeclaredInitializer)
+ hasDeclaredInitializer: hasDeclaredInitializer,
+ isLowered: isExtensionThis)
..fileOffset = charOffset;
}
return variable;
@@ -131,8 +134,9 @@
FormalParameterBuilder clone(List<TypeBuilder> newTypes) {
// TODO(dmitryas): It's not clear how [metadata] is used currently, and
// how it should be cloned. Consider cloning it instead of reusing it.
- return new FormalParameterBuilder(metadata, modifiers,
- type?.clone(newTypes), name, parent, charOffset, fileUri)
+ return new FormalParameterBuilder(
+ metadata, modifiers, type?.clone(newTypes), name, parent, charOffset,
+ fileUri: fileUri, isExtensionThis: isExtensionThis)
..kind = kind;
}
@@ -147,7 +151,8 @@
name,
null,
charOffset,
- fileUri)
+ fileUri: fileUri,
+ isExtensionThis: isExtensionThis)
..parent = parent
..variable = variable);
}
diff --git a/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart b/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
index f4962fb..4857e5e 100644
--- a/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
@@ -482,7 +482,9 @@
VariableDeclaration parameter, DartType type,
{bool isOptional}) {
VariableDeclaration newParameter = new VariableDeclaration(parameter.name,
- type: type, isFinal: parameter.isFinal)
+ type: type,
+ isFinal: parameter.isFinal,
+ isLowered: parameter.isLowered)
..fileOffset = parameter.fileOffset;
_extensionTearOffParameterMap[parameter] = newParameter;
return newParameter;
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 8971d25..ede2b69 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -1394,7 +1394,8 @@
for (int i = 0; i < parameters.positionalParameters.length; i++) {
VariableDeclaration formal = parameters.positionalParameters[i];
formals[i] = new FormalParameterBuilder(
- null, 0, null, formal.name, libraryBuilder, formal.fileOffset, uri)
+ null, 0, null, formal.name, libraryBuilder, formal.fileOffset,
+ fileUri: uri)
..variable = formal;
}
enterLocalScope(
@@ -3567,7 +3568,8 @@
}
} else {
parameter = new FormalParameterBuilder(null, modifiers, type?.builder,
- name?.name, libraryBuilder, offsetForToken(nameToken), uri)
+ name?.name, libraryBuilder, offsetForToken(nameToken),
+ fileUri: uri)
..hasDeclaredInitializer = (initializerStart != null);
}
VariableDeclaration variable = parameter.build(
diff --git a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
index 89baa79..76afeea 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -5807,7 +5807,8 @@
isSetVariable = new VariableDeclaration(
late_lowering.computeLateLocalIsSetName(node.name),
initializer: new BoolLiteral(false)..fileOffset = fileOffset,
- type: inferrer.coreTypes.boolRawType(inferrer.library.nonNullable))
+ type: inferrer.coreTypes.boolRawType(inferrer.library.nonNullable),
+ isLowered: true)
..fileOffset = fileOffset;
result.add(isSetVariable);
}
@@ -5828,7 +5829,8 @@
new VariableSet(isSetVariable, value);
VariableDeclaration getVariable = new VariableDeclaration(
- late_lowering.computeLateLocalGetterName(node.name))
+ late_lowering.computeLateLocalGetterName(node.name),
+ isLowered: true)
..fileOffset = fileOffset;
FunctionDeclaration getter = new FunctionDeclaration(
getVariable,
@@ -5875,7 +5877,8 @@
node.isLateFinalWithoutInitializer =
node.isFinal && node.initializer == null;
VariableDeclaration setVariable = new VariableDeclaration(
- late_lowering.computeLateLocalSetterName(node.name))
+ late_lowering.computeLateLocalSetterName(node.name),
+ isLowered: true)
..fileOffset = fileOffset;
VariableDeclaration setterParameter =
new VariableDeclaration(null, type: node.type)
@@ -5927,6 +5930,7 @@
}
node.type = inferrer.computeNullable(node.type);
node.lateName = node.name;
+ node.isLowered = true;
node.name = late_lowering.computeLateLocalName(node.name);
return new StatementInferenceResult.multiple(node.fileOffset, result);
diff --git a/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart b/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart
index b7c839b..9504a6e 100644
--- a/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart
@@ -1428,6 +1428,7 @@
bool isLocalFunction: false,
bool isLate: false,
bool isRequired: false,
+ bool isLowered: false,
this.isStaticLate: false})
: isImplicitlyTyped = type == null,
isLocalFunction = isLocalFunction,
@@ -1439,7 +1440,8 @@
isFieldFormal: isFieldFormal,
isCovariant: isCovariant,
isLate: isLate,
- isRequired: isRequired);
+ isRequired: isRequired,
+ isLowered: isLowered);
VariableDeclarationImpl.forEffect(Expression initializer)
: forSyntheticToken = false,
diff --git a/pkg/front_end/lib/src/fasta/kernel/late_lowering.dart b/pkg/front_end/lib/src/fasta/kernel/late_lowering.dart
index ce8d986..02ee9f2 100644
--- a/pkg/front_end/lib/src/fasta/kernel/late_lowering.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/late_lowering.dart
@@ -593,9 +593,7 @@
/// Returns the name used for the variable that holds the value of a late
/// lowered local by the given [name].
String computeLateLocalName(String name) {
- // TODO(johnniwinther): Change this to '${lateLocalPrefix}${name}' if
- // backends can benefit from identifying late locals.
- return name;
+ return '${lateLocalPrefix}$name';
}
/// Returns the name used for the 'isSet' variable of a late lowered local by
diff --git a/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart b/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart
index e93756e..48a5c3f 100644
--- a/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/type_algorithms.dart
@@ -351,7 +351,8 @@
formal.name,
formal.parent,
formal.charOffset,
- formal.fileUri);
+ fileUri: formal.fileUri,
+ isExtensionThis: formal.isExtensionThis);
changed = true;
} else {
formals[i] = formal;
diff --git a/pkg/front_end/lib/src/fasta/kernel/type_builder_computer.dart b/pkg/front_end/lib/src/fasta/kernel/type_builder_computer.dart
index 43402ad..ee11a13 100644
--- a/pkg/front_end/lib/src/fasta/kernel/type_builder_computer.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/type_builder_computer.dart
@@ -163,15 +163,25 @@
if (i >= node.requiredParameterCount) {
kind = FormalParameterKind.optionalPositional;
}
- formals[i] =
- new FormalParameterBuilder(null, 0, type, null, null, -1, null)
- ..kind = kind;
+ formals[i] = new FormalParameterBuilder(
+ /* metadata = */ null,
+ /* modifiers = */ 0,
+ type,
+ /* name = */ null,
+ /* compilationUnit = */ null,
+ /* charOffset = */ TreeNode.noOffset)
+ ..kind = kind;
}
for (int i = 0; i < namedParameters.length; i++) {
NamedType parameter = namedParameters[i];
TypeBuilder type = parameter.type.accept(this);
formals[i + positionalParameters.length] = new FormalParameterBuilder(
- null, 0, type, parameter.name, null, -1, null)
+ /* metadata = */ null,
+ /* modifiers = */ 0,
+ type,
+ parameter.name,
+ /* compilationUnit = */ null,
+ /* charOffset = */ TreeNode.noOffset)
..kind = FormalParameterKind.optionalNamed;
}
return new FunctionTypeBuilder(
@@ -180,7 +190,7 @@
formals,
new NullabilityBuilder.fromNullability(node.nullability),
/* fileUri = */ null,
- /* charOffset = */ null);
+ /* charOffset = */ TreeNode.noOffset);
}
TypeBuilder visitTypeParameterType(TypeParameterType node) {
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
index 07a4d49..98a5907 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -80,6 +80,8 @@
import '../problems.dart' show unhandled;
+import 'source_extension_builder.dart';
+
import 'source_library_builder.dart'
show
TypeParameterScopeBuilder,
@@ -1170,7 +1172,8 @@
libraryBuilder.boundlessTypeVariables.addAll(unboundTypeVariables);
}
synthesizedFormals.add(new FormalParameterBuilder(
- null, finalMask, thisType, "#this", null, charOffset, uri));
+ null, finalMask, thisType, extensionThisName, null, charOffset,
+ fileUri: uri, isExtensionThis: true));
if (formals != null) {
synthesizedFormals.addAll(formals);
}
diff --git a/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart b/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart
index f3c9943..28b3fb8 100644
--- a/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart
@@ -35,6 +35,8 @@
import 'source_library_builder.dart';
+const String extensionThisName = '#this';
+
class SourceExtensionBuilder extends ExtensionBuilderImpl {
final Extension _extension;
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index 3ee8253..fdc6b3a 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -2587,7 +2587,8 @@
modifiers |= initializingFormalMask;
}
FormalParameterBuilder formal = new FormalParameterBuilder(
- metadata, modifiers, type, name, this, charOffset, fileUri)
+ metadata, modifiers, type, name, this, charOffset,
+ fileUri: fileUri)
..initializerToken = initializerToken
..hasDeclaredInitializer = (initializerToken != null);
return formal;
diff --git a/pkg/front_end/test/predicates/data/extension.dart b/pkg/front_end/test/predicates/data/extension.dart
new file mode 100644
index 0000000..ac1dd00
--- /dev/null
+++ b/pkg/front_end/test/predicates/data/extension.dart
@@ -0,0 +1,17 @@
+// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
+// 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.
+
+extension Extension on int {
+ int /*extensionThis*/ instanceMethod() => this;
+
+ int get /*extensionThis*/ instanceGetter => this;
+
+ void set /*extensionThis*/ instanceSetter(int value) {}
+
+ static int staticMethod() => 42;
+
+ static int get staticGetter => 42;
+
+ static void set staticSetter(int value) {}
+}
diff --git a/pkg/front_end/test/predicates/data/late.dart b/pkg/front_end/test/predicates/data/late.dart
index ebf80a8..55cfbb6 100644
--- a/pkg/front_end/test/predicates/data/late.dart
+++ b/pkg/front_end/test/predicates/data/late.dart
@@ -122,51 +122,63 @@
}
method() {
- late int /*
+ late int
+ /*
lateIsSetLocal,
+ lateLocal,
lateLocalGetter,
lateLocalSetter
*/
localNonNullableWithoutInitializer;
late final int
/*
- lateIsSetLocal,
- lateLocalGetter,
- lateLocalSetter
- */
+ lateIsSetLocal,
+ lateLocal,
+ lateLocalGetter,
+ lateLocalSetter
+ */
finalLocalNonNullableWithoutInitializer;
- late int? /*
+ late int?
+ /*
lateIsSetLocal,
+ lateLocal,
lateLocalGetter,
lateLocalSetter
*/
localNullableWithoutInitializer;
late final int?
/*
- lateIsSetLocal,
- lateLocalGetter,
- lateLocalSetter
- */
+ lateIsSetLocal,
+ lateLocal,
+ lateLocalGetter,
+ lateLocalSetter
+ */
finalLocalNullableWithoutInitializer;
- late int /*
+ late int
+ /*
lateIsSetLocal,
+ lateLocal,
lateLocalGetter,
lateLocalSetter
*/
localNonNullableWithInitializer = 0;
late final int /*
lateIsSetLocal,
+ lateLocal,
lateLocalGetter
*/
finalLocalNonNullableWithInitializer = 0;
- late int? /*
+ late int?
+ /*
lateIsSetLocal,
+ lateLocal,
lateLocalGetter,
lateLocalSetter
*/
localNullableWithInitializer = 0;
late final int? /*
lateIsSetLocal,
+ lateLocal,
lateLocalGetter
*/
finalLocalNullableWithInitializer = 0;
diff --git a/pkg/front_end/test/predicates/predicate_test.dart b/pkg/front_end/test/predicates/predicate_test.dart
index 2f45e4e..f62f803 100644
--- a/pkg/front_end/test/predicates/predicate_test.dart
+++ b/pkg/front_end/test/predicates/predicate_test.dart
@@ -41,6 +41,8 @@
static const String lateIsSetLocal = 'lateIsSetLocal';
static const String lateLocalGetter = 'lateLocalGetter';
static const String lateLocalSetter = 'lateLocalSetter';
+
+ static const String extensionThis = 'extensionThis';
}
class PredicateDataComputer extends DataComputer<Features> {
@@ -129,7 +131,10 @@
void visitVariableDeclaration(VariableDeclaration node) {
String name;
String tag;
- if (isLateLoweredIsSetLocal(node)) {
+ if (isLateLoweredLocal(node)) {
+ name = extractLocalNameFromLateLoweredLocal(node.name);
+ tag = Tags.lateLocal;
+ } else if (isLateLoweredIsSetLocal(node)) {
name = extractLocalNameFromLateLoweredIsSet(node.name);
tag = Tags.lateIsSetLocal;
} else if (isLateLoweredLocalGetter(node)) {
@@ -138,6 +143,9 @@
} else if (isLateLoweredLocalSetter(node)) {
name = extractLocalNameFromLateLoweredSetter(node.name);
tag = Tags.lateLocalSetter;
+ } else if (isExtensionThis(node)) {
+ name = extractLocalNameForExtensionThis(node.name);
+ tag = Tags.extensionThis;
} else if (node.name != null) {
name = node.name;
}
@@ -152,4 +160,16 @@
}
super.visitVariableDeclaration(node);
}
+
+ @override
+ ActualData<Features> mergeData(
+ ActualData<Features> value1, ActualData<Features> value2) {
+ if ('${value1.value}' == '${value2.value}') {
+ // The extension this parameter is seen twice in the extension method
+ // and the corresponding tearoff. The features are identical, though, so
+ // we just use the first.
+ return value1;
+ }
+ return null;
+ }
}
diff --git a/pkg/front_end/testcases/extensions/ambiguous.dart.outline.expect b/pkg/front_end/testcases/extensions/ambiguous.dart.outline.expect
index 5ee4ba9..8ac03b2 100644
--- a/pkg/front_end/testcases/extensions/ambiguous.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/ambiguous.dart.outline.expect
@@ -36,37 +36,37 @@
set setter = self::B|set#setter;
set property = self::B|set#property;
}
-static method A|method(final self::C* #this) → void
+static method A|method(lowered final self::C* #this) → void
;
-static method A|get#method(final self::C* #this) → () →* void
+static method A|get#method(lowered final self::C* #this) → () →* void
return () → void => self::A|method(#this);
-static method A|get#getter(final self::C* #this) → core::int*
+static method A|get#getter(lowered final self::C* #this) → core::int*
;
-static method A|set#setter(final self::C* #this, core::int* value) → void
+static method A|set#setter(lowered final self::C* #this, core::int* value) → void
;
-static method A|get#property(final self::C* #this) → core::int*
+static method A|get#property(lowered final self::C* #this) → core::int*
;
-static method A|+(final self::C* #this, core::int* i) → core::int*
+static method A|+(lowered final self::C* #this, core::int* i) → core::int*
;
-static method A|unary-(final self::C* #this) → core::int*
+static method A|unary-(lowered final self::C* #this) → core::int*
;
-static method A|[](final self::C* #this, core::int* i) → core::int*
+static method A|[](lowered final self::C* #this, core::int* i) → core::int*
;
-static method B|method(final self::C* #this) → void
+static method B|method(lowered final self::C* #this) → void
;
-static method B|get#method(final self::C* #this) → () →* void
+static method B|get#method(lowered final self::C* #this) → () →* void
return () → void => self::B|method(#this);
-static method B|get#getter(final self::C* #this) → core::int*
+static method B|get#getter(lowered final self::C* #this) → core::int*
;
-static method B|set#setter(final self::C* #this, core::int* value) → void
+static method B|set#setter(lowered final self::C* #this, core::int* value) → void
;
-static method B|set#property(final self::C* #this, core::int* value) → void
+static method B|set#property(lowered final self::C* #this, core::int* value) → void
;
-static method B|+(final self::C* #this, core::int* i) → core::int*
+static method B|+(lowered final self::C* #this, core::int* i) → core::int*
;
-static method B|unary-(final self::C* #this) → core::int*
+static method B|unary-(lowered final self::C* #this) → core::int*
;
-static method B|[]=(final self::C* #this, core::int* i, core::int* j) → void
+static method B|[]=(lowered final self::C* #this, core::int* i, core::int* j) → void
;
static method errors(self::C* c) → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/ambiguous.dart.strong.expect b/pkg/front_end/testcases/extensions/ambiguous.dart.strong.expect
index a54a55b..3797b04 100644
--- a/pkg/front_end/testcases/extensions/ambiguous.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/ambiguous.dart.strong.expect
@@ -184,32 +184,32 @@
set setter = self::B|set#setter;
set property = self::B|set#property;
}
-static method A|method(final self::C* #this) → void {}
-static method A|get#method(final self::C* #this) → () →* void
+static method A|method(lowered final self::C* #this) → void {}
+static method A|get#method(lowered final self::C* #this) → () →* void
return () → void => self::A|method(#this);
-static method A|get#getter(final self::C* #this) → core::int*
+static method A|get#getter(lowered final self::C* #this) → core::int*
return 42;
-static method A|set#setter(final self::C* #this, core::int* value) → void {}
-static method A|get#property(final self::C* #this) → core::int*
+static method A|set#setter(lowered final self::C* #this, core::int* value) → void {}
+static method A|get#property(lowered final self::C* #this) → core::int*
return 42;
-static method A|+(final self::C* #this, core::int* i) → core::int*
+static method A|+(lowered final self::C* #this, core::int* i) → core::int*
return i;
-static method A|unary-(final self::C* #this) → core::int*
+static method A|unary-(lowered final self::C* #this) → core::int*
return 0;
-static method A|[](final self::C* #this, core::int* i) → core::int*
+static method A|[](lowered final self::C* #this, core::int* i) → core::int*
return i;
-static method B|method(final self::C* #this) → void {}
-static method B|get#method(final self::C* #this) → () →* void
+static method B|method(lowered final self::C* #this) → void {}
+static method B|get#method(lowered final self::C* #this) → () →* void
return () → void => self::B|method(#this);
-static method B|get#getter(final self::C* #this) → core::int*
+static method B|get#getter(lowered final self::C* #this) → core::int*
return 42;
-static method B|set#setter(final self::C* #this, core::int* value) → void {}
-static method B|set#property(final self::C* #this, core::int* value) → void {}
-static method B|+(final self::C* #this, core::int* i) → core::int*
+static method B|set#setter(lowered final self::C* #this, core::int* value) → void {}
+static method B|set#property(lowered final self::C* #this, core::int* value) → void {}
+static method B|+(lowered final self::C* #this, core::int* i) → core::int*
return i;
-static method B|unary-(final self::C* #this) → core::int*
+static method B|unary-(lowered final self::C* #this) → core::int*
return 0;
-static method B|[]=(final self::C* #this, core::int* i, core::int* j) → void {}
+static method B|[]=(lowered final self::C* #this, core::int* i, core::int* j) → void {}
static method errors(self::C* c) → dynamic {
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:28:5: Error: The method 'method' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
diff --git a/pkg/front_end/testcases/extensions/ambiguous.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/ambiguous.dart.strong.transformed.expect
index a54a55b..3797b04 100644
--- a/pkg/front_end/testcases/extensions/ambiguous.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/ambiguous.dart.strong.transformed.expect
@@ -184,32 +184,32 @@
set setter = self::B|set#setter;
set property = self::B|set#property;
}
-static method A|method(final self::C* #this) → void {}
-static method A|get#method(final self::C* #this) → () →* void
+static method A|method(lowered final self::C* #this) → void {}
+static method A|get#method(lowered final self::C* #this) → () →* void
return () → void => self::A|method(#this);
-static method A|get#getter(final self::C* #this) → core::int*
+static method A|get#getter(lowered final self::C* #this) → core::int*
return 42;
-static method A|set#setter(final self::C* #this, core::int* value) → void {}
-static method A|get#property(final self::C* #this) → core::int*
+static method A|set#setter(lowered final self::C* #this, core::int* value) → void {}
+static method A|get#property(lowered final self::C* #this) → core::int*
return 42;
-static method A|+(final self::C* #this, core::int* i) → core::int*
+static method A|+(lowered final self::C* #this, core::int* i) → core::int*
return i;
-static method A|unary-(final self::C* #this) → core::int*
+static method A|unary-(lowered final self::C* #this) → core::int*
return 0;
-static method A|[](final self::C* #this, core::int* i) → core::int*
+static method A|[](lowered final self::C* #this, core::int* i) → core::int*
return i;
-static method B|method(final self::C* #this) → void {}
-static method B|get#method(final self::C* #this) → () →* void
+static method B|method(lowered final self::C* #this) → void {}
+static method B|get#method(lowered final self::C* #this) → () →* void
return () → void => self::B|method(#this);
-static method B|get#getter(final self::C* #this) → core::int*
+static method B|get#getter(lowered final self::C* #this) → core::int*
return 42;
-static method B|set#setter(final self::C* #this, core::int* value) → void {}
-static method B|set#property(final self::C* #this, core::int* value) → void {}
-static method B|+(final self::C* #this, core::int* i) → core::int*
+static method B|set#setter(lowered final self::C* #this, core::int* value) → void {}
+static method B|set#property(lowered final self::C* #this, core::int* value) → void {}
+static method B|+(lowered final self::C* #this, core::int* i) → core::int*
return i;
-static method B|unary-(final self::C* #this) → core::int*
+static method B|unary-(lowered final self::C* #this) → core::int*
return 0;
-static method B|[]=(final self::C* #this, core::int* i, core::int* j) → void {}
+static method B|[]=(lowered final self::C* #this, core::int* i, core::int* j) → void {}
static method errors(self::C* c) → dynamic {
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:28:5: Error: The method 'method' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
diff --git a/pkg/front_end/testcases/extensions/annotations.dart.outline.expect b/pkg/front_end/testcases/extensions/annotations.dart.outline.expect
index ff75d1b..8a6129e 100644
--- a/pkg/front_end/testcases/extensions/annotations.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/annotations.dart.outline.expect
@@ -28,9 +28,9 @@
static method extensionStaticMethod = self::Extension|extensionStaticMethod;
}
@core::pragma::_("dart2js:noInline")
-static method Extension|extensionInstanceMethod(final self::Class* #this) → dynamic
+static method Extension|extensionInstanceMethod(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#extensionInstanceMethod(final self::Class* #this) → () →* dynamic
+static method Extension|get#extensionInstanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|extensionInstanceMethod(#this);
@core::pragma::_("dart2js:noInline")
static method Extension|extensionStaticMethod() → dynamic
diff --git a/pkg/front_end/testcases/extensions/annotations.dart.strong.expect b/pkg/front_end/testcases/extensions/annotations.dart.strong.expect
index 44c7c8a..441d5bd 100644
--- a/pkg/front_end/testcases/extensions/annotations.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/annotations.dart.strong.expect
@@ -27,8 +27,8 @@
static method extensionStaticMethod = self::Extension|extensionStaticMethod;
}
@#C3
-static method Extension|extensionInstanceMethod(final self::Class* #this) → dynamic {}
-static method Extension|get#extensionInstanceMethod(final self::Class* #this) → () →* dynamic
+static method Extension|extensionInstanceMethod(lowered final self::Class* #this) → dynamic {}
+static method Extension|get#extensionInstanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|extensionInstanceMethod(#this);
@#C3
static method Extension|extensionStaticMethod() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/annotations.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/annotations.dart.strong.transformed.expect
index 44c7c8a..441d5bd 100644
--- a/pkg/front_end/testcases/extensions/annotations.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/annotations.dart.strong.transformed.expect
@@ -27,8 +27,8 @@
static method extensionStaticMethod = self::Extension|extensionStaticMethod;
}
@#C3
-static method Extension|extensionInstanceMethod(final self::Class* #this) → dynamic {}
-static method Extension|get#extensionInstanceMethod(final self::Class* #this) → () →* dynamic
+static method Extension|extensionInstanceMethod(lowered final self::Class* #this) → dynamic {}
+static method Extension|get#extensionInstanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|extensionInstanceMethod(#this);
@#C3
static method Extension|extensionStaticMethod() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/async_extensions.dart.outline.expect b/pkg/front_end/testcases/extensions/async_extensions.dart.outline.expect
index 18fc103..cc28afd 100644
--- a/pkg/front_end/testcases/extensions/async_extensions.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/async_extensions.dart.outline.expect
@@ -10,17 +10,17 @@
method asyncStarMethod = self::Extension|asyncStarMethod;
tearoff asyncStarMethod = self::Extension|get#asyncStarMethod;
}
-static method Extension|syncStarMethod(final core::int* #this) → dynamic sync*
+static method Extension|syncStarMethod(lowered final core::int* #this) → dynamic sync*
;
-static method Extension|get#syncStarMethod(final core::int* #this) → () →* dynamic
+static method Extension|get#syncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|syncStarMethod(#this);
-static method Extension|asyncMethod(final core::int* #this) → dynamic async
+static method Extension|asyncMethod(lowered final core::int* #this) → dynamic async
;
-static method Extension|get#asyncMethod(final core::int* #this) → () →* dynamic
+static method Extension|get#asyncMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncMethod(#this);
-static method Extension|asyncStarMethod(final core::int* #this) → dynamic async*
+static method Extension|asyncStarMethod(lowered final core::int* #this) → dynamic async*
;
-static method Extension|get#asyncStarMethod(final core::int* #this) → () →* dynamic
+static method Extension|get#asyncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncStarMethod(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/async_extensions.dart.strong.expect b/pkg/front_end/testcases/extensions/async_extensions.dart.strong.expect
index fd5e869..f053e58 100644
--- a/pkg/front_end/testcases/extensions/async_extensions.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/async_extensions.dart.strong.expect
@@ -10,14 +10,14 @@
method asyncStarMethod = self::Extension|asyncStarMethod;
tearoff asyncStarMethod = self::Extension|get#asyncStarMethod;
}
-static method Extension|syncStarMethod(final core::int* #this) → dynamic sync* {}
-static method Extension|get#syncStarMethod(final core::int* #this) → () →* dynamic
+static method Extension|syncStarMethod(lowered final core::int* #this) → dynamic sync* {}
+static method Extension|get#syncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|syncStarMethod(#this);
-static method Extension|asyncMethod(final core::int* #this) → dynamic async {}
-static method Extension|get#asyncMethod(final core::int* #this) → () →* dynamic
+static method Extension|asyncMethod(lowered final core::int* #this) → dynamic async {}
+static method Extension|get#asyncMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncMethod(#this);
-static method Extension|asyncStarMethod(final core::int* #this) → dynamic async* {}
-static method Extension|get#asyncStarMethod(final core::int* #this) → () →* dynamic
+static method Extension|asyncStarMethod(lowered final core::int* #this) → dynamic async* {}
+static method Extension|get#asyncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncStarMethod(#this);
static method main() → dynamic {
self::Extension|syncStarMethod(0);
diff --git a/pkg/front_end/testcases/extensions/async_extensions.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/async_extensions.dart.strong.transformed.expect
index 2fab1ff..769d43f 100644
--- a/pkg/front_end/testcases/extensions/async_extensions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/async_extensions.dart.strong.transformed.expect
@@ -11,7 +11,7 @@
method asyncStarMethod = self::Extension|asyncStarMethod;
tearoff asyncStarMethod = self::Extension|get#asyncStarMethod;
}
-static method Extension|syncStarMethod(final core::int* #this) → dynamic /* originally sync* */ {
+static method Extension|syncStarMethod(lowered final core::int* #this) → dynamic /* originally sync* */ {
function :sync_op_gen() → (core::_SyncIterator<dynamic>*, dynamic, dynamic) →* core::bool* {
core::int* :await_jump_var = 0;
dynamic :await_ctx_var;
@@ -23,9 +23,9 @@
}
return new core::_SyncIterable::•<dynamic>(:sync_op_gen);
}
-static method Extension|get#syncStarMethod(final core::int* #this) → () →* dynamic
+static method Extension|get#syncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|syncStarMethod(#this);
-static method Extension|asyncMethod(final core::int* #this) → dynamic /* originally async */ {
+static method Extension|asyncMethod(lowered final core::int* #this) → dynamic /* originally async */ {
final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
core::bool* :is_sync = false;
FutureOr<dynamic>* :return_value;
@@ -49,9 +49,9 @@
:is_sync = true;
return :async_future;
}
-static method Extension|get#asyncMethod(final core::int* #this) → () →* dynamic
+static method Extension|get#asyncMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncMethod(#this);
-static method Extension|asyncStarMethod(final core::int* #this) → dynamic /* originally async* */ {
+static method Extension|asyncStarMethod(lowered final core::int* #this) → dynamic /* originally async* */ {
asy::_AsyncStarStreamController<dynamic>* :controller;
dynamic :controller_stream;
(dynamic) →* dynamic :async_op_then;
@@ -77,7 +77,7 @@
:controller_stream = :controller.{asy::_AsyncStarStreamController::stream};
return :controller_stream;
}
-static method Extension|get#asyncStarMethod(final core::int* #this) → () →* dynamic
+static method Extension|get#asyncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncStarMethod(#this);
static method main() → dynamic {
self::Extension|syncStarMethod(0);
diff --git a/pkg/front_end/testcases/extensions/bounds.dart.outline.expect b/pkg/front_end/testcases/extensions/bounds.dart.outline.expect
index 6c07498..460599a 100644
--- a/pkg/front_end/testcases/extensions/bounds.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/bounds.dart.outline.expect
@@ -42,69 +42,69 @@
method method4 = self::Extension4|method4;
tearoff method4 = self::Extension4|get#method4;
}
-static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(final self::Extension1|method1::T* #this) → dynamic
+static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic
;
-static method Extension1|get#method1<T extends core::Object* = core::Object*>(final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension1|get#method1<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
-static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(final self::Extension1|method2::T* #this) → dynamic
+static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic
;
-static method Extension1|get#method2<T extends core::Object* = core::Object*>(final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension1|get#method2<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
-static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(final self::Extension1|method3::T* #this) → dynamic
+static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic
;
-static method Extension1|get#method3<T extends core::Object* = core::Object*>(final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension1|get#method3<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
-static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(final self::Extension1|method4::T* #this) → dynamic
+static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic
;
-static method Extension1|get#method4<T extends core::Object* = core::Object*>(final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension1|get#method4<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T*, S*>(#this);
-static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(final self::Extension2|method1::T* #this) → dynamic
+static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic
;
-static method Extension2|get#method1<T extends core::String* = core::String*>(final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension2|get#method1<T extends core::String* = core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
-static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(final self::Extension2|method2::T* #this) → dynamic
+static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic
;
-static method Extension2|get#method2<T extends core::String* = core::String*>(final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension2|get#method2<T extends core::String* = core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
-static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(final self::Extension2|method3::T* #this) → dynamic
+static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic
;
-static method Extension2|get#method3<T extends core::String* = core::String*>(final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension2|get#method3<T extends core::String* = core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
-static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(final self::Extension2|method4::T* #this) → dynamic
+static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic
;
-static method Extension2|get#method4<T extends core::String* = core::String*>(final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension2|get#method4<T extends core::String* = core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T*, S*>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(final self::Extension3|method1::T* #this) → dynamic
+static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic
;
-static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(final self::Extension3|method2::T* #this) → dynamic
+static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic
;
-static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T* #this) → dynamic
+static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic
;
-static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(final self::Extension3|method4::T* #this) → dynamic
+static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic
;
-static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S*>(#this);
-static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(final self::Extension4|method1::T* #this) → dynamic
+static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic
;
-static method Extension4|get#method1<T extends core::Object* = dynamic>(final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
-static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(final self::Extension4|method2::T* #this) → dynamic
+static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic
;
-static method Extension4|get#method2<T extends core::Object* = dynamic>(final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
-static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T* #this) → dynamic
+static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic
;
-static method Extension4|get#method3<T extends core::Object* = dynamic>(final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
-static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::Extension4|method4::T* #this) → dynamic
+static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension4|method4::T* #this) → dynamic
;
-static method Extension4|get#method4<T extends core::Object* = dynamic>(final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension4|get#method4<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T*, S*>(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/bounds.dart.strong.expect b/pkg/front_end/testcases/extensions/bounds.dart.strong.expect
index 46c68c7..b7ca556 100644
--- a/pkg/front_end/testcases/extensions/bounds.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/bounds.dart.strong.expect
@@ -42,52 +42,52 @@
method method4 = self::Extension4|method4;
tearoff method4 = self::Extension4|get#method4;
}
-static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(final self::Extension1|method1::T* #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object* = core::Object*>(final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
-static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(final self::Extension1|method2::T* #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object* = core::Object*>(final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
-static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(final self::Extension1|method3::T* #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object* = core::Object*>(final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
-static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(final self::Extension1|method4::T* #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object* = core::Object*>(final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T*, S*>(#this);
-static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(final self::Extension2|method1::T* #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String* = core::String*>(final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String* = core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
-static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(final self::Extension2|method2::T* #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String* = core::String*>(final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String* = core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
-static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(final self::Extension2|method3::T* #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String* = core::String*>(final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String* = core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
-static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(final self::Extension2|method4::T* #this) → dynamic {}
-static method Extension2|get#method4<T extends core::String* = core::String*>(final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic {}
+static method Extension2|get#method4<T extends core::String* = core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T*, S*>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(final self::Extension3|method1::T* #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(final self::Extension3|method2::T* #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T* #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(final self::Extension3|method4::T* #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S*>(#this);
-static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(final self::Extension4|method1::T* #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object* = dynamic>(final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
-static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(final self::Extension4|method2::T* #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object* = dynamic>(final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
-static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T* #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object* = dynamic>(final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
-static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::Extension4|method4::T* #this) → dynamic {}
-static method Extension4|get#method4<T extends core::Object* = dynamic>(final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension4|method4::T* #this) → dynamic {}
+static method Extension4|get#method4<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T*, S*>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/bounds.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/bounds.dart.strong.transformed.expect
index 46c68c7..b7ca556 100644
--- a/pkg/front_end/testcases/extensions/bounds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/bounds.dart.strong.transformed.expect
@@ -42,52 +42,52 @@
method method4 = self::Extension4|method4;
tearoff method4 = self::Extension4|get#method4;
}
-static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(final self::Extension1|method1::T* #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object* = core::Object*>(final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
-static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(final self::Extension1|method2::T* #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object* = core::Object*>(final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
-static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(final self::Extension1|method3::T* #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object* = core::Object*>(final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
-static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(final self::Extension1|method4::T* #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object* = core::Object*>(final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T*, S*>(#this);
-static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(final self::Extension2|method1::T* #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String* = core::String*>(final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String* = core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
-static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(final self::Extension2|method2::T* #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String* = core::String*>(final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String* = core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
-static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(final self::Extension2|method3::T* #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String* = core::String*>(final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String* = core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
-static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(final self::Extension2|method4::T* #this) → dynamic {}
-static method Extension2|get#method4<T extends core::String* = core::String*>(final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic {}
+static method Extension2|get#method4<T extends core::String* = core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T*, S*>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(final self::Extension3|method1::T* #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(final self::Extension3|method2::T* #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T* #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(final self::Extension3|method4::T* #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S*>(#this);
-static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(final self::Extension4|method1::T* #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object* = dynamic>(final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
+static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
-static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(final self::Extension4|method2::T* #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object* = dynamic>(final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
+static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
-static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T* #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object* = dynamic>(final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
+static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
-static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::Extension4|method4::T* #this) → dynamic {}
-static method Extension4|get#method4<T extends core::Object* = dynamic>(final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension4|method4::T* #this) → dynamic {}
+static method Extension4|get#method4<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T*, S*>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/call_methods.dart.outline.expect b/pkg/front_end/testcases/extensions/call_methods.dart.outline.expect
index f5610f5..173e1a4 100644
--- a/pkg/front_end/testcases/extensions/call_methods.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/call_methods.dart.outline.expect
@@ -51,11 +51,11 @@
static field core::String* topLevel5;
static field self::B* b;
static field core::String* topLevel6;
-static method _extension#0|get#call(final core::int* #this) → core::String*
+static method _extension#0|get#call(lowered final core::int* #this) → core::String*
;
-static method _extension#1|get#call(final core::num* #this) → core::String*
+static method _extension#1|get#call(lowered final core::num* #this) → core::String*
;
-static method _extension#2|get#call(final core::String* #this) → () →* core::String*
+static method _extension#2|get#call(lowered final core::String* #this) → () →* core::String*
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/call_methods.dart.strong.expect b/pkg/front_end/testcases/extensions/call_methods.dart.strong.expect
index 6ad9135..e207c34 100644
--- a/pkg/front_end/testcases/extensions/call_methods.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/call_methods.dart.strong.expect
@@ -166,11 +166,11 @@
Try changing 'call' to a method or explicitly invoke 'call'.
var topLevel6 = a(2, \"3\");
^" as{TypeError,ForDynamic} core::String*;
-static method _extension#0|get#call(final core::int* #this) → core::String*
+static method _extension#0|get#call(lowered final core::int* #this) → core::String*
return "My name is int";
-static method _extension#1|get#call(final core::num* #this) → core::String*
+static method _extension#1|get#call(lowered final core::num* #this) → core::String*
return "My name is num";
-static method _extension#2|get#call(final core::String* #this) → () →* core::String*
+static method _extension#2|get#call(lowered final core::String* #this) → () →* core::String*
return () → core::String* => "My name is String";
static method main() → dynamic {
self::_extension#2|get#call("").call();
diff --git a/pkg/front_end/testcases/extensions/check_bounds.dart.outline.expect b/pkg/front_end/testcases/extensions/check_bounds.dart.outline.expect
index 1a72e8b..b599220 100644
--- a/pkg/front_end/testcases/extensions/check_bounds.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/check_bounds.dart.outline.expect
@@ -73,13 +73,13 @@
static final field dynamic field27;
static final field dynamic field28;
static final field dynamic field29;
-static method Extension|method<T extends self::B* = self::B*>(final self::Class<self::Extension|method::T*>* #this) → dynamic
+static method Extension|method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic
;
-static method Extension|get#method<T extends self::B* = self::B*>(final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
+static method Extension|get#method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic
+static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic
;
-static method Extension|get#genericMethod<T extends self::B* = self::B*>(final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
+static method Extension|get#genericMethod<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
return <S extends self::B* = self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/check_bounds.dart.strong.expect b/pkg/front_end/testcases/extensions/check_bounds.dart.strong.expect
index 1d88a8a..635468b 100644
--- a/pkg/front_end/testcases/extensions/check_bounds.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/check_bounds.dart.strong.expect
@@ -885,11 +885,11 @@
static final field dynamic field27 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field28 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field29 = self::Extension|genericMethod<self::B*, self::B*>(self::classB, self::a as{TypeError} self::B*);
-static method Extension|method<T extends self::B* = self::B*>(final self::Class<self::Extension|method::T*>* #this) → dynamic {}
-static method Extension|get#method<T extends self::B* = self::B*>(final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
+static method Extension|method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic {}
+static method Extension|get#method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
-static method Extension|get#genericMethod<T extends self::B* = self::B*>(final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
+static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
+static method Extension|get#genericMethod<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
return <S extends self::B* = self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
static method main() → dynamic {}
static method test() → dynamic {
diff --git a/pkg/front_end/testcases/extensions/check_bounds.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/check_bounds.dart.strong.transformed.expect
index 1d88a8a..635468b 100644
--- a/pkg/front_end/testcases/extensions/check_bounds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/check_bounds.dart.strong.transformed.expect
@@ -885,11 +885,11 @@
static final field dynamic field27 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field28 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field29 = self::Extension|genericMethod<self::B*, self::B*>(self::classB, self::a as{TypeError} self::B*);
-static method Extension|method<T extends self::B* = self::B*>(final self::Class<self::Extension|method::T*>* #this) → dynamic {}
-static method Extension|get#method<T extends self::B* = self::B*>(final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
+static method Extension|method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic {}
+static method Extension|get#method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
-static method Extension|get#genericMethod<T extends self::B* = self::B*>(final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
+static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
+static method Extension|get#genericMethod<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
return <S extends self::B* = self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
static method main() → dynamic {}
static method test() → dynamic {
diff --git a/pkg/front_end/testcases/extensions/compounds.dart.outline.expect b/pkg/front_end/testcases/extensions/compounds.dart.outline.expect
index a4408ae..3bfb031 100644
--- a/pkg/front_end/testcases/extensions/compounds.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/compounds.dart.outline.expect
@@ -66,25 +66,25 @@
tearoff testImplicitProperties = self::IntClassExtension|get#testImplicitProperties;
set property = self::IntClassExtension|set#property;
}
-static method NumberExtension|+(final self::Number* #this, core::Object* other) → self::Number*
+static method NumberExtension|+(lowered final self::Number* #this, core::Object* other) → self::Number*
;
-static method NumberExtension|-(final self::Number* #this, core::Object* other) → self::Number*
+static method NumberExtension|-(lowered final self::Number* #this, core::Object* other) → self::Number*
;
-static method ClassExtension|get#property(final self::Class* #this) → self::Number*
+static method ClassExtension|get#property(lowered final self::Class* #this) → self::Number*
;
-static method ClassExtension|set#property(final self::Class* #this, self::Number* value) → void
+static method ClassExtension|set#property(lowered final self::Class* #this, self::Number* value) → void
;
-static method ClassExtension|testImplicitProperties(final self::Class* #this) → dynamic
+static method ClassExtension|testImplicitProperties(lowered final self::Class* #this) → dynamic
;
-static method ClassExtension|get#testImplicitProperties(final self::Class* #this) → () →* dynamic
+static method ClassExtension|get#testImplicitProperties(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::ClassExtension|testImplicitProperties(#this);
-static method IntClassExtension|get#property(final self::IntClass* #this) → core::int*
+static method IntClassExtension|get#property(lowered final self::IntClass* #this) → core::int*
;
-static method IntClassExtension|set#property(final self::IntClass* #this, core::int* value) → void
+static method IntClassExtension|set#property(lowered final self::IntClass* #this, core::int* value) → void
;
-static method IntClassExtension|testImplicitProperties(final self::IntClass* #this) → dynamic
+static method IntClassExtension|testImplicitProperties(lowered final self::IntClass* #this) → dynamic
;
-static method IntClassExtension|get#testImplicitProperties(final self::IntClass* #this) → () →* dynamic
+static method IntClassExtension|get#testImplicitProperties(lowered final self::IntClass* #this) → () →* dynamic
return () → dynamic => self::IntClassExtension|testImplicitProperties(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/compounds.dart.strong.expect b/pkg/front_end/testcases/extensions/compounds.dart.strong.expect
index b69e531..5174cae 100644
--- a/pkg/front_end/testcases/extensions/compounds.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/compounds.dart.strong.expect
@@ -69,7 +69,7 @@
tearoff testImplicitProperties = self::IntClassExtension|get#testImplicitProperties;
set property = self::IntClassExtension|set#property;
}
-static method NumberExtension|+(final self::Number* #this, core::Object* other) → self::Number* {
+static method NumberExtension|+(lowered final self::Number* #this, core::Object* other) → self::Number* {
if(other is core::int*) {
return new self::Number::•(#this.{self::Number::value}.{core::num::+}(other{core::int*}));
}
@@ -81,7 +81,7 @@
throw new core::ArgumentError::•("${other}");
}
}
-static method NumberExtension|-(final self::Number* #this, core::Object* other) → self::Number* {
+static method NumberExtension|-(lowered final self::Number* #this, core::Object* other) → self::Number* {
if(other is core::int*) {
return new self::Number::•(#this.{self::Number::value}.{core::num::-}(other{core::int*}));
}
@@ -93,12 +93,12 @@
throw new core::ArgumentError::•("${other}");
}
}
-static method ClassExtension|get#property(final self::Class* #this) → self::Number*
+static method ClassExtension|get#property(lowered final self::Class* #this) → self::Number*
return #this.{self::Class::field};
-static method ClassExtension|set#property(final self::Class* #this, self::Number* value) → void {
+static method ClassExtension|set#property(lowered final self::Class* #this, self::Number* value) → void {
#this.{self::Class::field} = value;
}
-static method ClassExtension|testImplicitProperties(final self::Class* #this) → dynamic {
+static method ClassExtension|testImplicitProperties(lowered final self::Class* #this) → dynamic {
self::Number* n0 = new self::Number::•(0);
self::Number* n1 = new self::Number::•(1);
self::Number* n2 = new self::Number::•(2);
@@ -133,14 +133,14 @@
self::ClassExtension|set#property(#this, self::NumberExtension|-(self::ClassExtension|get#property(#this), 1));
self::expect(n0, self::ClassExtension|get#property(#this));
}
-static method ClassExtension|get#testImplicitProperties(final self::Class* #this) → () →* dynamic
+static method ClassExtension|get#testImplicitProperties(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::ClassExtension|testImplicitProperties(#this);
-static method IntClassExtension|get#property(final self::IntClass* #this) → core::int*
+static method IntClassExtension|get#property(lowered final self::IntClass* #this) → core::int*
return #this.{self::IntClass::field};
-static method IntClassExtension|set#property(final self::IntClass* #this, core::int* value) → void {
+static method IntClassExtension|set#property(lowered final self::IntClass* #this, core::int* value) → void {
#this.{self::IntClass::field} = value;
}
-static method IntClassExtension|testImplicitProperties(final self::IntClass* #this) → dynamic {
+static method IntClassExtension|testImplicitProperties(lowered final self::IntClass* #this) → dynamic {
core::int* n0 = 0;
core::int* n1 = 1;
core::int* n2 = 2;
@@ -175,7 +175,7 @@
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(1));
self::expect(n0, self::IntClassExtension|get#property(#this));
}
-static method IntClassExtension|get#testImplicitProperties(final self::IntClass* #this) → () →* dynamic
+static method IntClassExtension|get#testImplicitProperties(lowered final self::IntClass* #this) → () →* dynamic
return () → dynamic => self::IntClassExtension|testImplicitProperties(#this);
static method main() → dynamic {
self::testLocals();
diff --git a/pkg/front_end/testcases/extensions/compounds.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/compounds.dart.strong.transformed.expect
index b69e531..5174cae 100644
--- a/pkg/front_end/testcases/extensions/compounds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/compounds.dart.strong.transformed.expect
@@ -69,7 +69,7 @@
tearoff testImplicitProperties = self::IntClassExtension|get#testImplicitProperties;
set property = self::IntClassExtension|set#property;
}
-static method NumberExtension|+(final self::Number* #this, core::Object* other) → self::Number* {
+static method NumberExtension|+(lowered final self::Number* #this, core::Object* other) → self::Number* {
if(other is core::int*) {
return new self::Number::•(#this.{self::Number::value}.{core::num::+}(other{core::int*}));
}
@@ -81,7 +81,7 @@
throw new core::ArgumentError::•("${other}");
}
}
-static method NumberExtension|-(final self::Number* #this, core::Object* other) → self::Number* {
+static method NumberExtension|-(lowered final self::Number* #this, core::Object* other) → self::Number* {
if(other is core::int*) {
return new self::Number::•(#this.{self::Number::value}.{core::num::-}(other{core::int*}));
}
@@ -93,12 +93,12 @@
throw new core::ArgumentError::•("${other}");
}
}
-static method ClassExtension|get#property(final self::Class* #this) → self::Number*
+static method ClassExtension|get#property(lowered final self::Class* #this) → self::Number*
return #this.{self::Class::field};
-static method ClassExtension|set#property(final self::Class* #this, self::Number* value) → void {
+static method ClassExtension|set#property(lowered final self::Class* #this, self::Number* value) → void {
#this.{self::Class::field} = value;
}
-static method ClassExtension|testImplicitProperties(final self::Class* #this) → dynamic {
+static method ClassExtension|testImplicitProperties(lowered final self::Class* #this) → dynamic {
self::Number* n0 = new self::Number::•(0);
self::Number* n1 = new self::Number::•(1);
self::Number* n2 = new self::Number::•(2);
@@ -133,14 +133,14 @@
self::ClassExtension|set#property(#this, self::NumberExtension|-(self::ClassExtension|get#property(#this), 1));
self::expect(n0, self::ClassExtension|get#property(#this));
}
-static method ClassExtension|get#testImplicitProperties(final self::Class* #this) → () →* dynamic
+static method ClassExtension|get#testImplicitProperties(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::ClassExtension|testImplicitProperties(#this);
-static method IntClassExtension|get#property(final self::IntClass* #this) → core::int*
+static method IntClassExtension|get#property(lowered final self::IntClass* #this) → core::int*
return #this.{self::IntClass::field};
-static method IntClassExtension|set#property(final self::IntClass* #this, core::int* value) → void {
+static method IntClassExtension|set#property(lowered final self::IntClass* #this, core::int* value) → void {
#this.{self::IntClass::field} = value;
}
-static method IntClassExtension|testImplicitProperties(final self::IntClass* #this) → dynamic {
+static method IntClassExtension|testImplicitProperties(lowered final self::IntClass* #this) → dynamic {
core::int* n0 = 0;
core::int* n1 = 1;
core::int* n2 = 2;
@@ -175,7 +175,7 @@
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(1));
self::expect(n0, self::IntClassExtension|get#property(#this));
}
-static method IntClassExtension|get#testImplicitProperties(final self::IntClass* #this) → () →* dynamic
+static method IntClassExtension|get#testImplicitProperties(lowered final self::IntClass* #this) → () →* dynamic
return () → dynamic => self::IntClassExtension|testImplicitProperties(#this);
static method main() → dynamic {
self::testLocals();
diff --git a/pkg/front_end/testcases/extensions/conflict_with_object.dart.outline.expect b/pkg/front_end/testcases/extensions/conflict_with_object.dart.outline.expect
index 4d46ff2..500096d 100644
--- a/pkg/front_end/testcases/extensions/conflict_with_object.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/conflict_with_object.dart.outline.expect
@@ -33,15 +33,15 @@
static method toString = self::Extension|toString;
set hashCode = self::Extension|set#hashCode;
}
-static method Extension|get#noSuchMethod(final core::String* #this) → core::int*
+static method Extension|get#noSuchMethod(lowered final core::String* #this) → core::int*
;
-static method Extension|set#hashCode(final core::String* #this, core::int* value) → void
+static method Extension|set#hashCode(lowered final core::String* #this, core::int* value) → void
;
-static method Extension|runtimeType(final core::String* #this) → core::int*
+static method Extension|runtimeType(lowered final core::String* #this) → core::int*
;
-static method Extension|get#runtimeType(final core::String* #this) → () →* core::int*
+static method Extension|get#runtimeType(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self::Extension|runtimeType(#this);
-static method Extension|==(final core::String* #this, dynamic other) → dynamic
+static method Extension|==(lowered final core::String* #this, dynamic other) → dynamic
;
static method Extension|toString() → core::String*
;
diff --git a/pkg/front_end/testcases/extensions/conflict_with_object.dart.strong.expect b/pkg/front_end/testcases/extensions/conflict_with_object.dart.strong.expect
index 891feb9..f363804 100644
--- a/pkg/front_end/testcases/extensions/conflict_with_object.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/conflict_with_object.dart.strong.expect
@@ -48,13 +48,13 @@
static method toString = self::Extension|toString;
set hashCode = self::Extension|set#hashCode;
}
-static method Extension|get#noSuchMethod(final core::String* #this) → core::int*
+static method Extension|get#noSuchMethod(lowered final core::String* #this) → core::int*
return 42;
-static method Extension|set#hashCode(final core::String* #this, core::int* value) → void {}
-static method Extension|runtimeType(final core::String* #this) → core::int* {}
-static method Extension|get#runtimeType(final core::String* #this) → () →* core::int*
+static method Extension|set#hashCode(lowered final core::String* #this, core::int* value) → void {}
+static method Extension|runtimeType(lowered final core::String* #this) → core::int* {}
+static method Extension|get#runtimeType(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self::Extension|runtimeType(#this);
-static method Extension|==(final core::String* #this, dynamic other) → dynamic
+static method Extension|==(lowered final core::String* #this, dynamic other) → dynamic
return false;
static method Extension|toString() → core::String*
return "Foo";
diff --git a/pkg/front_end/testcases/extensions/conflict_with_object.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/conflict_with_object.dart.strong.transformed.expect
index 55715f8..b53449f 100644
--- a/pkg/front_end/testcases/extensions/conflict_with_object.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/conflict_with_object.dart.strong.transformed.expect
@@ -48,13 +48,13 @@
static method toString = self::Extension|toString;
set hashCode = self::Extension|set#hashCode;
}
-static method Extension|get#noSuchMethod(final core::String* #this) → core::int*
+static method Extension|get#noSuchMethod(lowered final core::String* #this) → core::int*
return 42;
-static method Extension|set#hashCode(final core::String* #this, core::int* value) → void {}
-static method Extension|runtimeType(final core::String* #this) → core::int* {}
-static method Extension|get#runtimeType(final core::String* #this) → () →* core::int*
+static method Extension|set#hashCode(lowered final core::String* #this, core::int* value) → void {}
+static method Extension|runtimeType(lowered final core::String* #this) → core::int* {}
+static method Extension|get#runtimeType(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self::Extension|runtimeType(#this);
-static method Extension|==(final core::String* #this, dynamic other) → dynamic
+static method Extension|==(lowered final core::String* #this, dynamic other) → dynamic
return false;
static method Extension|toString() → core::String*
return "Foo";
diff --git a/pkg/front_end/testcases/extensions/conflicts.dart.outline.expect b/pkg/front_end/testcases/extensions/conflicts.dart.outline.expect
index 6fb3b5f..4e95f3b 100644
--- a/pkg/front_end/testcases/extensions/conflicts.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/conflicts.dart.outline.expect
@@ -57,17 +57,17 @@
method duplicateMethodName1 = self::UniqueExtensionName|duplicateMethodName1;
tearoff duplicateMethodName1 = self::UniqueExtensionName|get#duplicateMethodName1;
}
-static method DuplicateExtensionName|uniqueMethod1(final self::Class1* #this) → dynamic
+static method DuplicateExtensionName|uniqueMethod1(lowered final self::Class1* #this) → dynamic
;
-static method DuplicateExtensionName|get#uniqueMethod1(final self::Class1* #this) → () →* dynamic
+static method DuplicateExtensionName|get#uniqueMethod1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|uniqueMethod1(#this);
-static method DuplicateExtensionName|duplicateMethodName2(final self::Class1* #this) → dynamic
+static method DuplicateExtensionName|duplicateMethodName2(lowered final self::Class1* #this) → dynamic
;
-static method DuplicateExtensionName|get#duplicateMethodName2(final self::Class1* #this) → () →* dynamic
+static method DuplicateExtensionName|get#duplicateMethodName2(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|duplicateMethodName2(#this);
-static method UniqueExtensionName|duplicateMethodName1(final self::Class1* #this) → dynamic
+static method UniqueExtensionName|duplicateMethodName1(lowered final self::Class1* #this) → dynamic
;
-static method UniqueExtensionName|get#duplicateMethodName1(final self::Class1* #this) → () →* dynamic
+static method UniqueExtensionName|get#duplicateMethodName1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::UniqueExtensionName|duplicateMethodName1(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/conflicts.dart.strong.expect b/pkg/front_end/testcases/extensions/conflicts.dart.strong.expect
index 9764dae..a6fe24f 100644
--- a/pkg/front_end/testcases/extensions/conflicts.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/conflicts.dart.strong.expect
@@ -65,16 +65,16 @@
method duplicateMethodName1 = self::UniqueExtensionName|duplicateMethodName1;
tearoff duplicateMethodName1 = self::UniqueExtensionName|get#duplicateMethodName1;
}
-static method DuplicateExtensionName|uniqueMethod1(final self::Class1* #this) → dynamic {}
-static method DuplicateExtensionName|get#uniqueMethod1(final self::Class1* #this) → () →* dynamic
+static method DuplicateExtensionName|uniqueMethod1(lowered final self::Class1* #this) → dynamic {}
+static method DuplicateExtensionName|get#uniqueMethod1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|uniqueMethod1(#this);
-static method DuplicateExtensionName|duplicateMethodName2(final self::Class1* #this) → dynamic
+static method DuplicateExtensionName|duplicateMethodName2(lowered final self::Class1* #this) → dynamic
return 1;
-static method DuplicateExtensionName|get#duplicateMethodName2(final self::Class1* #this) → () →* dynamic
+static method DuplicateExtensionName|get#duplicateMethodName2(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|duplicateMethodName2(#this);
-static method UniqueExtensionName|duplicateMethodName1(final self::Class1* #this) → dynamic
+static method UniqueExtensionName|duplicateMethodName1(lowered final self::Class1* #this) → dynamic
return 1;
-static method UniqueExtensionName|get#duplicateMethodName1(final self::Class1* #this) → () →* dynamic
+static method UniqueExtensionName|get#duplicateMethodName1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::UniqueExtensionName|duplicateMethodName1(#this);
static method main() → dynamic {
self::Class1* c1 = new self::Class1::•();
diff --git a/pkg/front_end/testcases/extensions/conflicts.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/conflicts.dart.strong.transformed.expect
index 9764dae..a6fe24f 100644
--- a/pkg/front_end/testcases/extensions/conflicts.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/conflicts.dart.strong.transformed.expect
@@ -65,16 +65,16 @@
method duplicateMethodName1 = self::UniqueExtensionName|duplicateMethodName1;
tearoff duplicateMethodName1 = self::UniqueExtensionName|get#duplicateMethodName1;
}
-static method DuplicateExtensionName|uniqueMethod1(final self::Class1* #this) → dynamic {}
-static method DuplicateExtensionName|get#uniqueMethod1(final self::Class1* #this) → () →* dynamic
+static method DuplicateExtensionName|uniqueMethod1(lowered final self::Class1* #this) → dynamic {}
+static method DuplicateExtensionName|get#uniqueMethod1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|uniqueMethod1(#this);
-static method DuplicateExtensionName|duplicateMethodName2(final self::Class1* #this) → dynamic
+static method DuplicateExtensionName|duplicateMethodName2(lowered final self::Class1* #this) → dynamic
return 1;
-static method DuplicateExtensionName|get#duplicateMethodName2(final self::Class1* #this) → () →* dynamic
+static method DuplicateExtensionName|get#duplicateMethodName2(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|duplicateMethodName2(#this);
-static method UniqueExtensionName|duplicateMethodName1(final self::Class1* #this) → dynamic
+static method UniqueExtensionName|duplicateMethodName1(lowered final self::Class1* #this) → dynamic
return 1;
-static method UniqueExtensionName|get#duplicateMethodName1(final self::Class1* #this) → () →* dynamic
+static method UniqueExtensionName|get#duplicateMethodName1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::UniqueExtensionName|duplicateMethodName1(#this);
static method main() → dynamic {
self::Class1* c1 = new self::Class1::•();
diff --git a/pkg/front_end/testcases/extensions/default_values.dart.outline.expect b/pkg/front_end/testcases/extensions/default_values.dart.outline.expect
index 04ed817..9469573 100644
--- a/pkg/front_end/testcases/extensions/default_values.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/default_values.dart.outline.expect
@@ -27,21 +27,21 @@
tearoff method3 = self::Extension|get#method3;
static method staticMethod = self::Extension|staticMethod;
}
-static method Extension|method0(final self::Class* #this, [dynamic a]) → dynamic
+static method Extension|method0(lowered final self::Class* #this, [dynamic a]) → dynamic
;
-static method Extension|get#method0(final self::Class* #this) → ([dynamic]) →* dynamic
+static method Extension|get#method0(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a]) → dynamic => self::Extension|method0(#this, a);
-static method Extension|method1(final self::Class* #this, [dynamic a]) → dynamic
+static method Extension|method1(lowered final self::Class* #this, [dynamic a]) → dynamic
;
-static method Extension|get#method1(final self::Class* #this) → ([dynamic]) →* dynamic
+static method Extension|get#method1(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a]) → dynamic => self::Extension|method1(#this, a);
-static method Extension|method2(final self::Class* #this, {dynamic b}) → dynamic
+static method Extension|method2(lowered final self::Class* #this, {dynamic b}) → dynamic
;
-static method Extension|get#method2(final self::Class* #this) → ({b: dynamic}) →* dynamic
+static method Extension|get#method2(lowered final self::Class* #this) → ({b: dynamic}) →* dynamic
return ({dynamic b}) → dynamic => self::Extension|method2(#this, b: b);
-static method Extension|method3(final self::Class* #this, {dynamic c}) → dynamic
+static method Extension|method3(lowered final self::Class* #this, {dynamic c}) → dynamic
;
-static method Extension|get#method3(final self::Class* #this) → ({c: dynamic}) →* dynamic
+static method Extension|get#method3(lowered final self::Class* #this) → ({c: dynamic}) →* dynamic
return ({dynamic c}) → dynamic => self::Extension|method3(#this, c: c);
static method Extension|staticMethod() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/default_values.dart.strong.expect b/pkg/front_end/testcases/extensions/default_values.dart.strong.expect
index c31a720..3c37068 100644
--- a/pkg/front_end/testcases/extensions/default_values.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/default_values.dart.strong.expect
@@ -28,21 +28,21 @@
tearoff method3 = self::Extension|get#method3;
static method staticMethod = self::Extension|staticMethod;
}
-static method Extension|method0(final self::Class* #this, [dynamic a = #C1]) → dynamic
+static method Extension|method0(lowered final self::Class* #this, [dynamic a = #C1]) → dynamic
return a;
-static method Extension|get#method0(final self::Class* #this) → ([dynamic]) →* dynamic
+static method Extension|get#method0(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a = #C1]) → dynamic => self::Extension|method0(#this, a);
-static method Extension|method1(final self::Class* #this, [dynamic a = #C2]) → dynamic
+static method Extension|method1(lowered final self::Class* #this, [dynamic a = #C2]) → dynamic
return a;
-static method Extension|get#method1(final self::Class* #this) → ([dynamic]) →* dynamic
+static method Extension|get#method1(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a = #C2]) → dynamic => self::Extension|method1(#this, a);
-static method Extension|method2(final self::Class* #this, {dynamic b = #C3}) → dynamic
+static method Extension|method2(lowered final self::Class* #this, {dynamic b = #C3}) → dynamic
return b;
-static method Extension|get#method2(final self::Class* #this) → ({b: dynamic}) →* dynamic
+static method Extension|get#method2(lowered final self::Class* #this) → ({b: dynamic}) →* dynamic
return ({dynamic b = #C3}) → dynamic => self::Extension|method2(#this, b: b);
-static method Extension|method3(final self::Class* #this, {dynamic c = #C4}) → dynamic
+static method Extension|method3(lowered final self::Class* #this, {dynamic c = #C4}) → dynamic
return c.call();
-static method Extension|get#method3(final self::Class* #this) → ({c: dynamic}) →* dynamic
+static method Extension|get#method3(lowered final self::Class* #this) → ({c: dynamic}) →* dynamic
return ({dynamic c = #C4}) → dynamic => self::Extension|method3(#this, c: c);
static method Extension|staticMethod() → dynamic
return 123;
diff --git a/pkg/front_end/testcases/extensions/default_values.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/default_values.dart.strong.transformed.expect
index c31a720..3c37068 100644
--- a/pkg/front_end/testcases/extensions/default_values.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/default_values.dart.strong.transformed.expect
@@ -28,21 +28,21 @@
tearoff method3 = self::Extension|get#method3;
static method staticMethod = self::Extension|staticMethod;
}
-static method Extension|method0(final self::Class* #this, [dynamic a = #C1]) → dynamic
+static method Extension|method0(lowered final self::Class* #this, [dynamic a = #C1]) → dynamic
return a;
-static method Extension|get#method0(final self::Class* #this) → ([dynamic]) →* dynamic
+static method Extension|get#method0(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a = #C1]) → dynamic => self::Extension|method0(#this, a);
-static method Extension|method1(final self::Class* #this, [dynamic a = #C2]) → dynamic
+static method Extension|method1(lowered final self::Class* #this, [dynamic a = #C2]) → dynamic
return a;
-static method Extension|get#method1(final self::Class* #this) → ([dynamic]) →* dynamic
+static method Extension|get#method1(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a = #C2]) → dynamic => self::Extension|method1(#this, a);
-static method Extension|method2(final self::Class* #this, {dynamic b = #C3}) → dynamic
+static method Extension|method2(lowered final self::Class* #this, {dynamic b = #C3}) → dynamic
return b;
-static method Extension|get#method2(final self::Class* #this) → ({b: dynamic}) →* dynamic
+static method Extension|get#method2(lowered final self::Class* #this) → ({b: dynamic}) →* dynamic
return ({dynamic b = #C3}) → dynamic => self::Extension|method2(#this, b: b);
-static method Extension|method3(final self::Class* #this, {dynamic c = #C4}) → dynamic
+static method Extension|method3(lowered final self::Class* #this, {dynamic c = #C4}) → dynamic
return c.call();
-static method Extension|get#method3(final self::Class* #this) → ({c: dynamic}) →* dynamic
+static method Extension|get#method3(lowered final self::Class* #this) → ({c: dynamic}) →* dynamic
return ({dynamic c = #C4}) → dynamic => self::Extension|method3(#this, c: c);
static method Extension|staticMethod() → dynamic
return 123;
diff --git a/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.outline.expect b/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.outline.expect
index bd4405e..b5db0d7 100644
--- a/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.outline.expect
@@ -38,13 +38,13 @@
;
static method Extension|staticMethod() → core::int*
;
-static method Extension|get#property(final core::int* #this) → core::int*
+static method Extension|get#property(lowered final core::int* #this) → core::int*
;
-static method Extension|set#property(final core::int* #this, core::int* value) → void
+static method Extension|set#property(lowered final core::int* #this, core::int* value) → void
;
-static method Extension|method(final core::int* #this) → core::int*
+static method Extension|method(lowered final core::int* #this) → core::int*
;
-static method Extension|get#method(final core::int* #this) → () →* core::int*
+static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => self2::Extension|method(#this);
static get topLevelProperty() → core::int*
;
diff --git a/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.expect b/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.expect
index e9e8aad..eb88dad 100644
--- a/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.expect
@@ -52,14 +52,14 @@
}
static method Extension|staticMethod() → core::int*
return def::Extension|staticField;
-static method Extension|get#property(final core::int* #this) → core::int*
+static method Extension|get#property(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
-static method Extension|set#property(final core::int* #this, core::int* value) → void {
+static method Extension|set#property(lowered final core::int* #this, core::int* value) → void {
def::Extension|staticField = value;
}
-static method Extension|method(final core::int* #this) → core::int*
+static method Extension|method(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
-static method Extension|get#method(final core::int* #this) → () →* core::int*
+static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => def::Extension|method(#this);
static get topLevelProperty() → core::int*
return def::Extension|staticField;
diff --git a/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.transformed.expect
index cacce17..9a7758f 100644
--- a/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.transformed.expect
@@ -78,14 +78,14 @@
}
static method Extension|staticMethod() → core::int*
return def::Extension|staticField;
-static method Extension|get#property(final core::int* #this) → core::int*
+static method Extension|get#property(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
-static method Extension|set#property(final core::int* #this, core::int* value) → void {
+static method Extension|set#property(lowered final core::int* #this, core::int* value) → void {
def::Extension|staticField = value;
}
-static method Extension|method(final core::int* #this) → core::int*
+static method Extension|method(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
-static method Extension|get#method(final core::int* #this) → () →* core::int*
+static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => def::Extension|method(#this);
static get topLevelProperty() → core::int*
return def::Extension|staticField;
diff --git a/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.outline.expect b/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.outline.expect
index 92e7dbc..a0ceed4 100644
--- a/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.outline.expect
@@ -30,13 +30,13 @@
;
static method Extension|staticMethod() → core::int*
;
-static method Extension|get#property(final core::int* #this) → core::int*
+static method Extension|get#property(lowered final core::int* #this) → core::int*
;
-static method Extension|set#property(final core::int* #this, core::int* value) → void
+static method Extension|set#property(lowered final core::int* #this, core::int* value) → void
;
-static method Extension|method(final core::int* #this) → core::int*
+static method Extension|method(lowered final core::int* #this) → core::int*
;
-static method Extension|get#method(final core::int* #this) → () →* core::int*
+static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => self2::Extension|method(#this);
static get topLevelProperty() → core::int*
;
diff --git a/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.expect b/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.expect
index 310c8c4..614cb6f 100644
--- a/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.expect
@@ -43,14 +43,14 @@
}
static method Extension|staticMethod() → core::int*
return def::Extension|staticField;
-static method Extension|get#property(final core::int* #this) → core::int*
+static method Extension|get#property(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
-static method Extension|set#property(final core::int* #this, core::int* value) → void {
+static method Extension|set#property(lowered final core::int* #this, core::int* value) → void {
def::Extension|staticField = value;
}
-static method Extension|method(final core::int* #this) → core::int*
+static method Extension|method(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
-static method Extension|get#method(final core::int* #this) → () →* core::int*
+static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => def::Extension|method(#this);
static get topLevelProperty() → core::int*
return def::Extension|staticField;
diff --git a/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.transformed.expect
index c43e5ff..41815d4 100644
--- a/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.transformed.expect
@@ -69,14 +69,14 @@
}
static method Extension|staticMethod() → core::int*
return def::Extension|staticField;
-static method Extension|get#property(final core::int* #this) → core::int*
+static method Extension|get#property(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
-static method Extension|set#property(final core::int* #this, core::int* value) → void {
+static method Extension|set#property(lowered final core::int* #this, core::int* value) → void {
def::Extension|staticField = value;
}
-static method Extension|method(final core::int* #this) → core::int*
+static method Extension|method(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
-static method Extension|get#method(final core::int* #this) → () →* core::int*
+static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => def::Extension|method(#this);
static get topLevelProperty() → core::int*
return def::Extension|staticField;
diff --git a/pkg/front_end/testcases/extensions/direct_instance_access.dart.outline.expect b/pkg/front_end/testcases/extensions/direct_instance_access.dart.outline.expect
index 2d17121..55a6232 100644
--- a/pkg/front_end/testcases/extensions/direct_instance_access.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/direct_instance_access.dart.outline.expect
@@ -85,103 +85,103 @@
tearoff getterCalls = self::GenericExtension|get#getterCalls;
set property = self::GenericExtension|set#property;
}
-static method Extension|get#readGetter(final self::Class* #this) → () →* dynamic
+static method Extension|get#readGetter(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|readGetter(#this);
-static method Extension|readGetter(final self::Class* #this) → dynamic
+static method Extension|readGetter(lowered final self::Class* #this) → dynamic
;
-static method Extension|writeSetterRequired(final self::Class* #this, dynamic value) → dynamic
+static method Extension|writeSetterRequired(lowered final self::Class* #this, dynamic value) → dynamic
;
-static method Extension|get#writeSetterRequired(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#writeSetterRequired(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|writeSetterRequired(#this, value);
-static method Extension|writeSetterOptional(final self::Class* #this, [dynamic value]) → dynamic
+static method Extension|writeSetterOptional(lowered final self::Class* #this, [dynamic value]) → dynamic
;
-static method Extension|get#writeSetterOptional(final self::Class* #this) → ([dynamic]) →* dynamic
+static method Extension|get#writeSetterOptional(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic value]) → dynamic => self::Extension|writeSetterOptional(#this, value);
-static method Extension|writeSetterNamed(final self::Class* #this, {dynamic value}) → dynamic
+static method Extension|writeSetterNamed(lowered final self::Class* #this, {dynamic value}) → dynamic
;
-static method Extension|get#writeSetterNamed(final self::Class* #this) → ({value: dynamic}) →* dynamic
+static method Extension|get#writeSetterNamed(lowered final self::Class* #this) → ({value: dynamic}) →* dynamic
return ({dynamic value}) → dynamic => self::Extension|writeSetterNamed(#this, value: value);
-static method Extension|get#tearOffGetterNoArgs(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterNoArgs(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#tearOffGetterRequired(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterRequired(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#tearOffGetterOptional(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterOptional(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#tearOffGetterNamed(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterNamed(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#property(final self::Class* #this) → dynamic
+static method Extension|get#property(lowered final self::Class* #this) → dynamic
;
-static method Extension|set#property(final self::Class* #this, dynamic value) → void
+static method Extension|set#property(lowered final self::Class* #this, dynamic value) → void
;
-static method Extension|invocations(final self::Class* #this, dynamic value) → dynamic
+static method Extension|invocations(lowered final self::Class* #this, dynamic value) → dynamic
;
-static method Extension|get#invocations(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#invocations(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|invocations(#this, value);
-static method Extension|get#tearOffs(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#tearOffs(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|tearOffs(#this, value);
-static method Extension|tearOffs(final self::Class* #this, dynamic value) → dynamic
+static method Extension|tearOffs(lowered final self::Class* #this, dynamic value) → dynamic
;
-static method Extension|getterCalls(final self::Class* #this, dynamic value) → dynamic
+static method Extension|getterCalls(lowered final self::Class* #this, dynamic value) → dynamic
;
-static method Extension|get#getterCalls(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#getterCalls(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|getterCalls(#this, value);
-static method GenericExtension|readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T*
+static method GenericExtension|readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T*
;
-static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
+static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
return () → self::GenericExtension|get#readGetter::T* => self::GenericExtension|readGetter<self::GenericExtension|get#readGetter::T*>(#this);
-static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic
+static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic
;
-static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
+static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
return (self::GenericExtension|get#writeSetterRequired::T* value) → dynamic => self::GenericExtension|writeSetterRequired<self::GenericExtension|get#writeSetterRequired::T*>(#this, value);
-static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value]) → dynamic
+static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value]) → dynamic
;
-static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
+static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
return ([self::GenericExtension|get#writeSetterOptional::T* value]) → dynamic => self::GenericExtension|writeSetterOptional<self::GenericExtension|get#writeSetterOptional::T*>(#this, value);
-static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value}) → dynamic
+static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value}) → dynamic
;
-static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
+static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
return ({self::GenericExtension|get#writeSetterNamed::T* value}) → dynamic => self::GenericExtension|writeSetterNamed<self::GenericExtension|get#writeSetterNamed::T*>(#this, value: value);
-static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic
+static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic
;
-static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S* value) → dynamic => self::GenericExtension|genericWriteSetterRequired<self::GenericExtension|get#genericWriteSetterRequired::T*, S*>(#this, value);
-static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value]) → dynamic
+static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value]) → dynamic
;
-static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
+static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S* value]) → dynamic => self::GenericExtension|genericWriteSetterOptional<self::GenericExtension|get#genericWriteSetterOptional::T*, S*>(#this, value);
-static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
+static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({S* value}) → dynamic => self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|get#genericWriteSetterNamed::T*, S*>(#this, value: value);
-static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value}) → dynamic
+static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value}) → dynamic
;
-static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
+static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
;
-static method GenericExtension|set#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void
+static method GenericExtension|set#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void
;
-static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
;
-static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
;
-static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
;
-static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
;
-static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
;
-static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
;
-static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
;
-static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic
+static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic
;
-static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#invocations::T* = dynamic>(S* value) → dynamic => self::GenericExtension|invocations<self::GenericExtension|get#invocations::T*, S*>(#this, value);
-static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic
+static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic
;
-static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S* value) → dynamic => self::GenericExtension|tearOffs<self::GenericExtension|get#tearOffs::T*, S*>(#this, value);
-static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic
+static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic
;
-static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S* value) → dynamic => self::GenericExtension|getterCalls<self::GenericExtension|get#getterCalls::T*, S*>(#this, value);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/direct_instance_access.dart.strong.expect b/pkg/front_end/testcases/extensions/direct_instance_access.dart.strong.expect
index 17dadac..394a69b3 100644
--- a/pkg/front_end/testcases/extensions/direct_instance_access.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/direct_instance_access.dart.strong.expect
@@ -87,40 +87,40 @@
tearoff getterCalls = self::GenericExtension|get#getterCalls;
set property = self::GenericExtension|set#property;
}
-static method Extension|get#readGetter(final self::Class* #this) → () →* dynamic
+static method Extension|get#readGetter(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|readGetter(#this);
-static method Extension|readGetter(final self::Class* #this) → dynamic {
+static method Extension|readGetter(lowered final self::Class* #this) → dynamic {
return self::Extension|get#property(#this);
}
-static method Extension|writeSetterRequired(final self::Class* #this, dynamic value) → dynamic {
+static method Extension|writeSetterRequired(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|set#property(#this, value);
}
-static method Extension|get#writeSetterRequired(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#writeSetterRequired(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|writeSetterRequired(#this, value);
-static method Extension|writeSetterOptional(final self::Class* #this, [dynamic value = #C1]) → dynamic {
+static method Extension|writeSetterOptional(lowered final self::Class* #this, [dynamic value = #C1]) → dynamic {
self::Extension|set#property(#this, value);
}
-static method Extension|get#writeSetterOptional(final self::Class* #this) → ([dynamic]) →* dynamic
+static method Extension|get#writeSetterOptional(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic value = #C1]) → dynamic => self::Extension|writeSetterOptional(#this, value);
-static method Extension|writeSetterNamed(final self::Class* #this, {dynamic value = #C1}) → dynamic {
+static method Extension|writeSetterNamed(lowered final self::Class* #this, {dynamic value = #C1}) → dynamic {
self::Extension|set#property(#this, value);
}
-static method Extension|get#writeSetterNamed(final self::Class* #this) → ({value: dynamic}) →* dynamic
+static method Extension|get#writeSetterNamed(lowered final self::Class* #this) → ({value: dynamic}) →* dynamic
return ({dynamic value = #C1}) → dynamic => self::Extension|writeSetterNamed(#this, value: value);
-static method Extension|get#tearOffGetterNoArgs(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterNoArgs(lowered final self::Class* #this) → dynamic
return self::Extension|get#readGetter(#this);
-static method Extension|get#tearOffGetterRequired(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterRequired(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterRequired(#this);
-static method Extension|get#tearOffGetterOptional(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterOptional(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterOptional(#this);
-static method Extension|get#tearOffGetterNamed(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterNamed(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterNamed(#this);
-static method Extension|get#property(final self::Class* #this) → dynamic
+static method Extension|get#property(lowered final self::Class* #this) → dynamic
return #this.{self::Class::field};
-static method Extension|set#property(final self::Class* #this, dynamic value) → void {
+static method Extension|set#property(lowered final self::Class* #this, dynamic value) → void {
#this.{self::Class::field} = value;
}
-static method Extension|invocations(final self::Class* #this, dynamic value) → dynamic {
+static method Extension|invocations(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|readGetter(#this);
self::Extension|writeSetterRequired(#this, value);
self::Extension|writeSetterOptional(#this);
@@ -128,11 +128,11 @@
self::Extension|writeSetterNamed(#this);
self::Extension|writeSetterNamed(#this, value: value);
}
-static method Extension|get#invocations(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#invocations(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|invocations(#this, value);
-static method Extension|get#tearOffs(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#tearOffs(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|tearOffs(#this, value);
-static method Extension|tearOffs(final self::Class* #this, dynamic value) → dynamic {
+static method Extension|tearOffs(lowered final self::Class* #this, dynamic value) → dynamic {
() →* dynamic tearOffNoArgs = self::Extension|get#readGetter(#this);
tearOffNoArgs.call();
(dynamic) →* dynamic tearOffRequired = self::Extension|get#writeSetterRequired(#this);
@@ -144,7 +144,7 @@
tearOffNamed.call();
tearOffNamed.call(value: value);
}
-static method Extension|getterCalls(final self::Class* #this, dynamic value) → dynamic {
+static method Extension|getterCalls(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|get#tearOffGetterNoArgs(#this).call();
self::Extension|get#tearOffGetterRequired(#this).call(value);
self::Extension|get#tearOffGetterOptional(#this).call();
@@ -152,63 +152,63 @@
self::Extension|get#tearOffGetterNamed(#this).call();
self::Extension|get#tearOffGetterNamed(#this).call(value: value);
}
-static method Extension|get#getterCalls(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#getterCalls(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|getterCalls(#this, value);
-static method GenericExtension|readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T* {
+static method GenericExtension|readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T* {
return self::GenericExtension|get#property<self::GenericExtension|readGetter::T*>(#this);
}
-static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
+static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
return () → self::GenericExtension|get#readGetter::T* => self::GenericExtension|readGetter<self::GenericExtension|get#readGetter::T*>(#this);
-static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic {
+static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterRequired::T*>(#this, value);
}
-static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
+static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
return (self::GenericExtension|get#writeSetterRequired::T* value) → dynamic => self::GenericExtension|writeSetterRequired<self::GenericExtension|get#writeSetterRequired::T*>(#this, value);
-static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value = #C1]) → dynamic {
+static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value = #C1]) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterOptional::T*>(#this, value);
}
-static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
+static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
return ([self::GenericExtension|get#writeSetterOptional::T* value = #C1]) → dynamic => self::GenericExtension|writeSetterOptional<self::GenericExtension|get#writeSetterOptional::T*>(#this, value);
-static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value = #C1}) → dynamic {
+static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value = #C1}) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterNamed::T*>(#this, value);
}
-static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
+static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
return ({self::GenericExtension|get#writeSetterNamed::T* value = #C1}) → dynamic => self::GenericExtension|writeSetterNamed<self::GenericExtension|get#writeSetterNamed::T*>(#this, value: value);
-static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic {
+static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterRequired::T*>(#this, value);
}
-static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S* value) → dynamic => self::GenericExtension|genericWriteSetterRequired<self::GenericExtension|get#genericWriteSetterRequired::T*, S*>(#this, value);
-static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value = #C1]) → dynamic {
+static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value = #C1]) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterOptional::T*>(#this, value);
}
-static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
+static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S* value = #C1]) → dynamic => self::GenericExtension|genericWriteSetterOptional<self::GenericExtension|get#genericWriteSetterOptional::T*, S*>(#this, value);
-static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
+static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({S* value = #C1}) → dynamic => self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|get#genericWriteSetterNamed::T*, S*>(#this, value: value);
-static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value = #C1}) → dynamic {
+static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value = #C1}) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterNamed::T*>(#this, value);
}
-static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
+static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return #this.{self::GenericClass::field};
-static method GenericExtension|set#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void {
+static method GenericExtension|set#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void {
#this.{self::GenericClass::field} = value;
}
-static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
return self::GenericExtension|get#readGetter<self::GenericExtension|get#tearOffGetterNoArgs::T*>(#this);
-static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterRequired<self::GenericExtension|get#tearOffGetterRequired::T*>(#this);
-static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterOptional<self::GenericExtension|get#tearOffGetterOptional::T*>(#this);
-static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterNamed<self::GenericExtension|get#tearOffGetterNamed::T*>(#this);
-static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterRequired<self::GenericExtension|get#tearOffGetterGenericRequired::T*>(#this);
-static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterOptional<self::GenericExtension|get#tearOffGetterGenericOptional::T*>(#this);
-static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterNamed<self::GenericExtension|get#tearOffGetterGenericNamed::T*>(#this);
-static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic {
+static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic {
self::GenericExtension|readGetter<self::GenericExtension|invocations::T*>(#this);
self::GenericExtension|writeSetterRequired<self::GenericExtension|invocations::T*>(#this, value);
self::GenericExtension|writeSetterOptional<self::GenericExtension|invocations::T*>(#this);
@@ -231,9 +231,9 @@
self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|invocations::T*, self::GenericExtension|invocations::T*>(#this, value: value);
self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|invocations::T*, self::GenericExtension|invocations::S*>(#this, value: value);
}
-static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#invocations::T* = dynamic>(S* value) → dynamic => self::GenericExtension|invocations<self::GenericExtension|get#invocations::T*, S*>(#this, value);
-static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic {
+static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic {
() →* self::GenericExtension|tearOffs::T* tearOffNoArgs = self::GenericExtension|get#readGetter<self::GenericExtension|tearOffs::T*>(#this);
tearOffNoArgs.call();
(self::GenericExtension|tearOffs::T*) →* dynamic tearOffRequired = self::GenericExtension|get#writeSetterRequired<self::GenericExtension|tearOffs::T*>(#this);
@@ -263,9 +263,9 @@
genericTearOffNamed.call<self::GenericExtension|tearOffs::T*>(value: value);
genericTearOffNamed.call<self::GenericExtension|tearOffs::S*>(value: value);
}
-static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S* value) → dynamic => self::GenericExtension|tearOffs<self::GenericExtension|get#tearOffs::T*, S*>(#this, value);
-static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic {
+static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic {
self::GenericExtension|get#tearOffGetterNoArgs<self::GenericExtension|getterCalls::T*>(#this).call();
self::GenericExtension|get#tearOffGetterRequired<self::GenericExtension|getterCalls::T*>(#this).call(value);
self::GenericExtension|get#tearOffGetterOptional<self::GenericExtension|getterCalls::T*>(#this).call();
@@ -288,7 +288,7 @@
self::GenericExtension|get#tearOffGetterGenericNamed<self::GenericExtension|getterCalls::T*>(#this).call<self::GenericExtension|getterCalls::T*>(value: value);
self::GenericExtension|get#tearOffGetterGenericNamed<self::GenericExtension|getterCalls::T*>(#this).call<self::GenericExtension|getterCalls::S*>(value: value);
}
-static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S* value) → dynamic => self::GenericExtension|getterCalls<self::GenericExtension|get#getterCalls::T*, S*>(#this, value);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/direct_instance_access.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/direct_instance_access.dart.strong.transformed.expect
index 17dadac..394a69b3 100644
--- a/pkg/front_end/testcases/extensions/direct_instance_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/direct_instance_access.dart.strong.transformed.expect
@@ -87,40 +87,40 @@
tearoff getterCalls = self::GenericExtension|get#getterCalls;
set property = self::GenericExtension|set#property;
}
-static method Extension|get#readGetter(final self::Class* #this) → () →* dynamic
+static method Extension|get#readGetter(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|readGetter(#this);
-static method Extension|readGetter(final self::Class* #this) → dynamic {
+static method Extension|readGetter(lowered final self::Class* #this) → dynamic {
return self::Extension|get#property(#this);
}
-static method Extension|writeSetterRequired(final self::Class* #this, dynamic value) → dynamic {
+static method Extension|writeSetterRequired(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|set#property(#this, value);
}
-static method Extension|get#writeSetterRequired(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#writeSetterRequired(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|writeSetterRequired(#this, value);
-static method Extension|writeSetterOptional(final self::Class* #this, [dynamic value = #C1]) → dynamic {
+static method Extension|writeSetterOptional(lowered final self::Class* #this, [dynamic value = #C1]) → dynamic {
self::Extension|set#property(#this, value);
}
-static method Extension|get#writeSetterOptional(final self::Class* #this) → ([dynamic]) →* dynamic
+static method Extension|get#writeSetterOptional(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic value = #C1]) → dynamic => self::Extension|writeSetterOptional(#this, value);
-static method Extension|writeSetterNamed(final self::Class* #this, {dynamic value = #C1}) → dynamic {
+static method Extension|writeSetterNamed(lowered final self::Class* #this, {dynamic value = #C1}) → dynamic {
self::Extension|set#property(#this, value);
}
-static method Extension|get#writeSetterNamed(final self::Class* #this) → ({value: dynamic}) →* dynamic
+static method Extension|get#writeSetterNamed(lowered final self::Class* #this) → ({value: dynamic}) →* dynamic
return ({dynamic value = #C1}) → dynamic => self::Extension|writeSetterNamed(#this, value: value);
-static method Extension|get#tearOffGetterNoArgs(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterNoArgs(lowered final self::Class* #this) → dynamic
return self::Extension|get#readGetter(#this);
-static method Extension|get#tearOffGetterRequired(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterRequired(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterRequired(#this);
-static method Extension|get#tearOffGetterOptional(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterOptional(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterOptional(#this);
-static method Extension|get#tearOffGetterNamed(final self::Class* #this) → dynamic
+static method Extension|get#tearOffGetterNamed(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterNamed(#this);
-static method Extension|get#property(final self::Class* #this) → dynamic
+static method Extension|get#property(lowered final self::Class* #this) → dynamic
return #this.{self::Class::field};
-static method Extension|set#property(final self::Class* #this, dynamic value) → void {
+static method Extension|set#property(lowered final self::Class* #this, dynamic value) → void {
#this.{self::Class::field} = value;
}
-static method Extension|invocations(final self::Class* #this, dynamic value) → dynamic {
+static method Extension|invocations(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|readGetter(#this);
self::Extension|writeSetterRequired(#this, value);
self::Extension|writeSetterOptional(#this);
@@ -128,11 +128,11 @@
self::Extension|writeSetterNamed(#this);
self::Extension|writeSetterNamed(#this, value: value);
}
-static method Extension|get#invocations(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#invocations(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|invocations(#this, value);
-static method Extension|get#tearOffs(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#tearOffs(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|tearOffs(#this, value);
-static method Extension|tearOffs(final self::Class* #this, dynamic value) → dynamic {
+static method Extension|tearOffs(lowered final self::Class* #this, dynamic value) → dynamic {
() →* dynamic tearOffNoArgs = self::Extension|get#readGetter(#this);
tearOffNoArgs.call();
(dynamic) →* dynamic tearOffRequired = self::Extension|get#writeSetterRequired(#this);
@@ -144,7 +144,7 @@
tearOffNamed.call();
tearOffNamed.call(value: value);
}
-static method Extension|getterCalls(final self::Class* #this, dynamic value) → dynamic {
+static method Extension|getterCalls(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|get#tearOffGetterNoArgs(#this).call();
self::Extension|get#tearOffGetterRequired(#this).call(value);
self::Extension|get#tearOffGetterOptional(#this).call();
@@ -152,63 +152,63 @@
self::Extension|get#tearOffGetterNamed(#this).call();
self::Extension|get#tearOffGetterNamed(#this).call(value: value);
}
-static method Extension|get#getterCalls(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#getterCalls(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|getterCalls(#this, value);
-static method GenericExtension|readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T* {
+static method GenericExtension|readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T* {
return self::GenericExtension|get#property<self::GenericExtension|readGetter::T*>(#this);
}
-static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
+static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
return () → self::GenericExtension|get#readGetter::T* => self::GenericExtension|readGetter<self::GenericExtension|get#readGetter::T*>(#this);
-static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic {
+static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterRequired::T*>(#this, value);
}
-static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
+static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
return (self::GenericExtension|get#writeSetterRequired::T* value) → dynamic => self::GenericExtension|writeSetterRequired<self::GenericExtension|get#writeSetterRequired::T*>(#this, value);
-static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value = #C1]) → dynamic {
+static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value = #C1]) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterOptional::T*>(#this, value);
}
-static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
+static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
return ([self::GenericExtension|get#writeSetterOptional::T* value = #C1]) → dynamic => self::GenericExtension|writeSetterOptional<self::GenericExtension|get#writeSetterOptional::T*>(#this, value);
-static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value = #C1}) → dynamic {
+static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value = #C1}) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterNamed::T*>(#this, value);
}
-static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
+static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
return ({self::GenericExtension|get#writeSetterNamed::T* value = #C1}) → dynamic => self::GenericExtension|writeSetterNamed<self::GenericExtension|get#writeSetterNamed::T*>(#this, value: value);
-static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic {
+static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterRequired::T*>(#this, value);
}
-static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S* value) → dynamic => self::GenericExtension|genericWriteSetterRequired<self::GenericExtension|get#genericWriteSetterRequired::T*, S*>(#this, value);
-static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value = #C1]) → dynamic {
+static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value = #C1]) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterOptional::T*>(#this, value);
}
-static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
+static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S* value = #C1]) → dynamic => self::GenericExtension|genericWriteSetterOptional<self::GenericExtension|get#genericWriteSetterOptional::T*, S*>(#this, value);
-static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
+static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({S* value = #C1}) → dynamic => self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|get#genericWriteSetterNamed::T*, S*>(#this, value: value);
-static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value = #C1}) → dynamic {
+static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value = #C1}) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterNamed::T*>(#this, value);
}
-static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
+static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return #this.{self::GenericClass::field};
-static method GenericExtension|set#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void {
+static method GenericExtension|set#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void {
#this.{self::GenericClass::field} = value;
}
-static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
return self::GenericExtension|get#readGetter<self::GenericExtension|get#tearOffGetterNoArgs::T*>(#this);
-static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterRequired<self::GenericExtension|get#tearOffGetterRequired::T*>(#this);
-static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterOptional<self::GenericExtension|get#tearOffGetterOptional::T*>(#this);
-static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterNamed<self::GenericExtension|get#tearOffGetterNamed::T*>(#this);
-static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterRequired<self::GenericExtension|get#tearOffGetterGenericRequired::T*>(#this);
-static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterOptional<self::GenericExtension|get#tearOffGetterGenericOptional::T*>(#this);
-static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
+static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterNamed<self::GenericExtension|get#tearOffGetterGenericNamed::T*>(#this);
-static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic {
+static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic {
self::GenericExtension|readGetter<self::GenericExtension|invocations::T*>(#this);
self::GenericExtension|writeSetterRequired<self::GenericExtension|invocations::T*>(#this, value);
self::GenericExtension|writeSetterOptional<self::GenericExtension|invocations::T*>(#this);
@@ -231,9 +231,9 @@
self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|invocations::T*, self::GenericExtension|invocations::T*>(#this, value: value);
self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|invocations::T*, self::GenericExtension|invocations::S*>(#this, value: value);
}
-static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#invocations::T* = dynamic>(S* value) → dynamic => self::GenericExtension|invocations<self::GenericExtension|get#invocations::T*, S*>(#this, value);
-static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic {
+static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic {
() →* self::GenericExtension|tearOffs::T* tearOffNoArgs = self::GenericExtension|get#readGetter<self::GenericExtension|tearOffs::T*>(#this);
tearOffNoArgs.call();
(self::GenericExtension|tearOffs::T*) →* dynamic tearOffRequired = self::GenericExtension|get#writeSetterRequired<self::GenericExtension|tearOffs::T*>(#this);
@@ -263,9 +263,9 @@
genericTearOffNamed.call<self::GenericExtension|tearOffs::T*>(value: value);
genericTearOffNamed.call<self::GenericExtension|tearOffs::S*>(value: value);
}
-static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S* value) → dynamic => self::GenericExtension|tearOffs<self::GenericExtension|get#tearOffs::T*, S*>(#this, value);
-static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic {
+static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic {
self::GenericExtension|get#tearOffGetterNoArgs<self::GenericExtension|getterCalls::T*>(#this).call();
self::GenericExtension|get#tearOffGetterRequired<self::GenericExtension|getterCalls::T*>(#this).call(value);
self::GenericExtension|get#tearOffGetterOptional<self::GenericExtension|getterCalls::T*>(#this).call();
@@ -288,7 +288,7 @@
self::GenericExtension|get#tearOffGetterGenericNamed<self::GenericExtension|getterCalls::T*>(#this).call<self::GenericExtension|getterCalls::T*>(value: value);
self::GenericExtension|get#tearOffGetterGenericNamed<self::GenericExtension|getterCalls::T*>(#this).call<self::GenericExtension|getterCalls::S*>(value: value);
}
-static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
+static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S* value) → dynamic => self::GenericExtension|getterCalls<self::GenericExtension|get#getterCalls::T*, S*>(#this, value);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/direct_static_access.dart.outline.expect b/pkg/front_end/testcases/extensions/direct_static_access.dart.outline.expect
index 7dd4ee1..4453608 100644
--- a/pkg/front_end/testcases/extensions/direct_static_access.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/direct_static_access.dart.outline.expect
@@ -89,21 +89,21 @@
;
static method Extension|getterCallsFromStaticContext(core::int* value) → dynamic
;
-static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic
+static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic
;
-static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
+static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#invocationsFromInstanceContext::T* value) → dynamic => self::Extension|invocationsFromInstanceContext<self::Extension|get#invocationsFromInstanceContext::T*>(#this, value);
-static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic
+static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic
;
-static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
+static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#tearOffsFromInstanceContext::T* value) → dynamic => self::Extension|tearOffsFromInstanceContext<self::Extension|get#tearOffsFromInstanceContext::T*>(#this, value);
-static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic
+static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic
;
-static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
+static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|fieldAccessFromInstanceContext<self::Extension|get#fieldAccessFromInstanceContext::T*>(#this);
-static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic
+static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic
;
-static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
+static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#getterCallsFromInstanceContext::T* value) → dynamic => self::Extension|getterCallsFromInstanceContext<self::Extension|get#getterCallsFromInstanceContext::T*>(#this, value);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/direct_static_access.dart.strong.expect b/pkg/front_end/testcases/extensions/direct_static_access.dart.strong.expect
index 1a55006..f9c2886 100644
--- a/pkg/front_end/testcases/extensions/direct_static_access.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/direct_static_access.dart.strong.expect
@@ -155,7 +155,7 @@
self::Extension|tearOffGetterGenericNamed.call(value: value);
self::Extension|tearOffGetterGenericNamed.call<core::int*>(value: value);
}
-static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic {
+static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic {
self::Extension|readGetter();
self::Extension|writeSetterRequired(value);
self::Extension|writeSetterOptional();
@@ -173,9 +173,9 @@
self::Extension|genericWriteSetterNamed<self::Extension|invocationsFromInstanceContext::T*>(value: value);
self::Extension|genericWriteSetterNamed<self::Extension|invocationsFromInstanceContext::T*>(value: value);
}
-static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
+static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#invocationsFromInstanceContext::T* value) → dynamic => self::Extension|invocationsFromInstanceContext<self::Extension|get#invocationsFromInstanceContext::T*>(#this, value);
-static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic {
+static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic {
() →* dynamic tearOffNoArgs = #C2;
tearOffNoArgs.call();
(dynamic) →* dynamic tearOffRequired = #C3;
@@ -200,15 +200,15 @@
tearOffGenericNamed.call<self::Extension|tearOffsFromInstanceContext::T*>(value: value);
tearOffGenericNamed.call<self::Extension|tearOffsFromInstanceContext::T*>(value: value);
}
-static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
+static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#tearOffsFromInstanceContext::T* value) → dynamic => self::Extension|tearOffsFromInstanceContext<self::Extension|get#tearOffsFromInstanceContext::T*>(#this, value);
-static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic {
+static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic {
self::Extension|field = self::Extension|property;
self::Extension|property = self::Extension|field;
}
-static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
+static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|fieldAccessFromInstanceContext<self::Extension|get#fieldAccessFromInstanceContext::T*>(#this);
-static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic {
+static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic {
self::Extension|tearOffGetterNoArgs.call();
self::Extension|tearOffGetterRequired.call(value);
self::Extension|tearOffGetterOptional.call();
@@ -226,7 +226,7 @@
self::Extension|tearOffGetterGenericNamed.call(value: value);
self::Extension|tearOffGetterGenericNamed.call<self::Extension|getterCallsFromInstanceContext::T*>(value: value);
}
-static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
+static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#getterCallsFromInstanceContext::T* value) → dynamic => self::Extension|getterCallsFromInstanceContext<self::Extension|get#getterCallsFromInstanceContext::T*>(#this, value);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/direct_static_access.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/direct_static_access.dart.strong.transformed.expect
index 1a55006..f9c2886 100644
--- a/pkg/front_end/testcases/extensions/direct_static_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/direct_static_access.dart.strong.transformed.expect
@@ -155,7 +155,7 @@
self::Extension|tearOffGetterGenericNamed.call(value: value);
self::Extension|tearOffGetterGenericNamed.call<core::int*>(value: value);
}
-static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic {
+static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic {
self::Extension|readGetter();
self::Extension|writeSetterRequired(value);
self::Extension|writeSetterOptional();
@@ -173,9 +173,9 @@
self::Extension|genericWriteSetterNamed<self::Extension|invocationsFromInstanceContext::T*>(value: value);
self::Extension|genericWriteSetterNamed<self::Extension|invocationsFromInstanceContext::T*>(value: value);
}
-static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
+static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#invocationsFromInstanceContext::T* value) → dynamic => self::Extension|invocationsFromInstanceContext<self::Extension|get#invocationsFromInstanceContext::T*>(#this, value);
-static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic {
+static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic {
() →* dynamic tearOffNoArgs = #C2;
tearOffNoArgs.call();
(dynamic) →* dynamic tearOffRequired = #C3;
@@ -200,15 +200,15 @@
tearOffGenericNamed.call<self::Extension|tearOffsFromInstanceContext::T*>(value: value);
tearOffGenericNamed.call<self::Extension|tearOffsFromInstanceContext::T*>(value: value);
}
-static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
+static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#tearOffsFromInstanceContext::T* value) → dynamic => self::Extension|tearOffsFromInstanceContext<self::Extension|get#tearOffsFromInstanceContext::T*>(#this, value);
-static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic {
+static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic {
self::Extension|field = self::Extension|property;
self::Extension|property = self::Extension|field;
}
-static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
+static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|fieldAccessFromInstanceContext<self::Extension|get#fieldAccessFromInstanceContext::T*>(#this);
-static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic {
+static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic {
self::Extension|tearOffGetterNoArgs.call();
self::Extension|tearOffGetterRequired.call(value);
self::Extension|tearOffGetterOptional.call();
@@ -226,7 +226,7 @@
self::Extension|tearOffGetterGenericNamed.call(value: value);
self::Extension|tearOffGetterGenericNamed.call<self::Extension|getterCallsFromInstanceContext::T*>(value: value);
}
-static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
+static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#getterCallsFromInstanceContext::T* value) → dynamic => self::Extension|getterCallsFromInstanceContext<self::Extension|get#getterCallsFromInstanceContext::T*>(#this, value);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/dynamic_invoke.dart.outline.expect b/pkg/front_end/testcases/extensions/dynamic_invoke.dart.outline.expect
index a2ea0ee..1f8c07d 100644
--- a/pkg/front_end/testcases/extensions/dynamic_invoke.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/dynamic_invoke.dart.outline.expect
@@ -25,13 +25,13 @@
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
-static method ClassExtension|method(final self::Class* #this) → core::int*
+static method ClassExtension|method(lowered final self::Class* #this) → core::int*
;
-static method ClassExtension|get#method(final self::Class* #this) → () →* core::int*
+static method ClassExtension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::ClassExtension|method(#this);
-static method Extension|method(final dynamic #this) → core::int*
+static method Extension|method(lowered final dynamic #this) → core::int*
;
-static method Extension|get#method(final dynamic #this) → () →* core::int*
+static method Extension|get#method(lowered final dynamic #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/dynamic_invoke.dart.strong.expect b/pkg/front_end/testcases/extensions/dynamic_invoke.dart.strong.expect
index 627b139..3f2a400 100644
--- a/pkg/front_end/testcases/extensions/dynamic_invoke.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/dynamic_invoke.dart.strong.expect
@@ -26,13 +26,13 @@
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
-static method ClassExtension|method(final self::Class* #this) → core::int*
+static method ClassExtension|method(lowered final self::Class* #this) → core::int*
return 42;
-static method ClassExtension|get#method(final self::Class* #this) → () →* core::int*
+static method ClassExtension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::ClassExtension|method(#this);
-static method Extension|method(final dynamic #this) → core::int*
+static method Extension|method(lowered final dynamic #this) → core::int*
return 87;
-static method Extension|get#method(final dynamic #this) → () →* core::int*
+static method Extension|get#method(lowered final dynamic #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
static method main() → dynamic {
dynamic c0 = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/dynamic_invoke.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/dynamic_invoke.dart.strong.transformed.expect
index 627b139..3f2a400 100644
--- a/pkg/front_end/testcases/extensions/dynamic_invoke.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/dynamic_invoke.dart.strong.transformed.expect
@@ -26,13 +26,13 @@
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
-static method ClassExtension|method(final self::Class* #this) → core::int*
+static method ClassExtension|method(lowered final self::Class* #this) → core::int*
return 42;
-static method ClassExtension|get#method(final self::Class* #this) → () →* core::int*
+static method ClassExtension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::ClassExtension|method(#this);
-static method Extension|method(final dynamic #this) → core::int*
+static method Extension|method(lowered final dynamic #this) → core::int*
return 87;
-static method Extension|get#method(final dynamic #this) → () →* core::int*
+static method Extension|get#method(lowered final dynamic #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
static method main() → dynamic {
dynamic c0 = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.outline.expect b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.outline.expect
index 293f3df..c567e2c 100644
--- a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.outline.expect
@@ -34,29 +34,29 @@
tearoff genericMethod = self::Extension2|get#genericMethod;
set field = self::Extension2|set#field;
}
-static method Extension1|get#field(final self::Class* #this) → core::int*
+static method Extension1|get#field(lowered final self::Class* #this) → core::int*
;
-static method Extension1|set#field(final self::Class* #this, core::int* value) → void
+static method Extension1|set#field(lowered final self::Class* #this, core::int* value) → void
;
-static method Extension1|method(final self::Class* #this) → core::int*
+static method Extension1|method(lowered final self::Class* #this) → core::int*
;
-static method Extension1|get#method(final self::Class* #this) → () →* core::int*
+static method Extension1|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
;
-static method Extension1|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
-static method Extension2|get#field(final self::Class* #this) → core::int*
+static method Extension2|get#field(lowered final self::Class* #this) → core::int*
;
-static method Extension2|set#field(final self::Class* #this, core::int* value) → void
+static method Extension2|set#field(lowered final self::Class* #this, core::int* value) → void
;
-static method Extension2|method(final self::Class* #this) → core::int*
+static method Extension2|method(lowered final self::Class* #this) → core::int*
;
-static method Extension2|get#method(final self::Class* #this) → () →* core::int*
+static method Extension2|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
;
-static method Extension2|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.strong.expect b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.strong.expect
index 1de117d..c216317 100644
--- a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.strong.expect
@@ -35,31 +35,31 @@
tearoff genericMethod = self::Extension2|get#genericMethod;
set field = self::Extension2|set#field;
}
-static method Extension1|get#field(final self::Class* #this) → core::int*
+static method Extension1|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field1};
-static method Extension1|set#field(final self::Class* #this, core::int* value) → void {
+static method Extension1|set#field(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field1} = value;
}
-static method Extension1|method(final self::Class* #this) → core::int*
+static method Extension1|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field1};
-static method Extension1|get#method(final self::Class* #this) → () →* core::int*
+static method Extension1|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} core::int*;
-static method Extension1|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
-static method Extension2|get#field(final self::Class* #this) → core::int*
+static method Extension2|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
-static method Extension2|set#field(final self::Class* #this, core::int* value) → void {
+static method Extension2|set#field(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field2} = value;
}
-static method Extension2|method(final self::Class* #this) → core::int*
+static method Extension2|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
-static method Extension2|get#method(final self::Class* #this) → () →* core::int*
+static method Extension2|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} core::int*;
-static method Extension2|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::Class* c = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.strong.transformed.expect
index 47097a2..e1fd4f1 100644
--- a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.strong.transformed.expect
@@ -35,31 +35,31 @@
tearoff genericMethod = self::Extension2|get#genericMethod;
set field = self::Extension2|set#field;
}
-static method Extension1|get#field(final self::Class* #this) → core::int*
+static method Extension1|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field1};
-static method Extension1|set#field(final self::Class* #this, core::int* value) → void {
+static method Extension1|set#field(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field1} = value;
}
-static method Extension1|method(final self::Class* #this) → core::int*
+static method Extension1|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field1};
-static method Extension1|get#method(final self::Class* #this) → () →* core::int*
+static method Extension1|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} core::int*;
-static method Extension1|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
-static method Extension2|get#field(final self::Class* #this) → core::int*
+static method Extension2|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
-static method Extension2|set#field(final self::Class* #this, core::int* value) → void {
+static method Extension2|set#field(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field2} = value;
}
-static method Extension2|method(final self::Class* #this) → core::int*
+static method Extension2|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
-static method Extension2|get#method(final self::Class* #this) → () →* core::int*
+static method Extension2|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} core::int*;
-static method Extension2|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::Class* c = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.outline.expect b/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.outline.expect
index 21fc22e..eb41182 100644
--- a/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.outline.expect
@@ -45,15 +45,15 @@
method genericMethod1 = self::GenericExtension|genericMethod1;
tearoff genericMethod1 = self::GenericExtension|get#genericMethod1;
}
-static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
+static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
;
-static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
+static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
;
-static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
+static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
return (self::GenericExtension|get#method::T* t) → self::GenericExtension|get#method::T* => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this, t);
-static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
+static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
;
-static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
+static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
return <S extends core::Object* = dynamic>(S* s) → S* => self::GenericExtension|genericMethod1<self::GenericExtension|get#genericMethod1::T*, S*>(#this, s);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.strong.expect b/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.strong.expect
index 3d6532f..429ac83 100644
--- a/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.strong.expect
@@ -49,15 +49,15 @@
method genericMethod1 = self::GenericExtension|genericMethod1;
tearoff genericMethod1 = self::GenericExtension|get#genericMethod1;
}
-static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
+static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return null;
-static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
+static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
return null;
-static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
+static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
return (self::GenericExtension|get#method::T* t) → self::GenericExtension|get#method::T* => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this, t);
-static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
+static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
return null;
-static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
+static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
return <S extends core::Object* = dynamic>(S* s) → S* => self::GenericExtension|genericMethod1<self::GenericExtension|get#genericMethod1::T*, S*>(#this, s);
static method main() → dynamic {
self::A* aVariable;
diff --git a/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.strong.transformed.expect
index 3d6532f..429ac83 100644
--- a/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/explicit_extension_inference.dart.strong.transformed.expect
@@ -49,15 +49,15 @@
method genericMethod1 = self::GenericExtension|genericMethod1;
tearoff genericMethod1 = self::GenericExtension|get#genericMethod1;
}
-static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
+static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return null;
-static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
+static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
return null;
-static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
+static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
return (self::GenericExtension|get#method::T* t) → self::GenericExtension|get#method::T* => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this, t);
-static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
+static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
return null;
-static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
+static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
return <S extends core::Object* = dynamic>(S* s) → S* => self::GenericExtension|genericMethod1<self::GenericExtension|get#genericMethod1::T*, S*>(#this, s);
static method main() → dynamic {
self::A* aVariable;
diff --git a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.outline.expect b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.outline.expect
index c63ea7d..633ea25 100644
--- a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.outline.expect
@@ -36,29 +36,29 @@
set field = self::Extension2|set#field;
}
static field core::String* Extension1|latestType;
-static method Extension1|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T*
+static method Extension1|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T*
;
-static method Extension1|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void
+static method Extension1|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void
;
-static method Extension1|method<T extends core::num* = core::num*>(final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T*
+static method Extension1|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T*
;
-static method Extension1|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
+static method Extension1|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
return () → self::Extension1|get#method::T* => self::Extension1|method<self::Extension1|get#method::T*>(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T*
+static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T*
;
-static method Extension1|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
+static method Extension1|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
-static method Extension2|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
+static method Extension2|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
;
-static method Extension2|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void
+static method Extension2|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void
;
-static method Extension2|method<T extends core::num* = core::num*>(final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
+static method Extension2|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
;
-static method Extension2|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
+static method Extension2|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
return () → self::Extension2|get#method::T* => self::Extension2|method<self::Extension2|get#method::T*>(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
+static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
;
-static method Extension2|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
+static method Extension2|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.strong.expect b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.strong.expect
index adc49e4..1934541 100644
--- a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.strong.expect
@@ -37,38 +37,38 @@
set field = self::Extension2|set#field;
}
static field core::String* Extension1|latestType;
-static method Extension1|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
+static method Extension1|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
self::Extension1|latestType = "${self::Extension1|get#field::T*}";
return #this.{self::Class::field1};
}
-static method Extension1|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
+static method Extension1|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
self::Extension1|latestType = "${self::Extension1|set#field::T*}";
#this.{self::Class::field1} = value;
}
-static method Extension1|method<T extends core::num* = core::num*>(final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
+static method Extension1|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
self::Extension1|latestType = "${self::Extension1|method::T*}";
return #this.{self::Class::field1};
}
-static method Extension1|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
+static method Extension1|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
return () → self::Extension1|get#method::T* => self::Extension1|method<self::Extension1|get#method::T*>(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
+static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
self::Extension1|latestType = "${self::Extension1|genericMethod::T*}:${self::Extension1|genericMethod::S*}";
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} self::Extension1|genericMethod::T*;
}
-static method Extension1|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
+static method Extension1|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
-static method Extension2|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
+static method Extension2|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
return #this.{self::Class::field2};
-static method Extension2|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
+static method Extension2|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
#this.{self::Class::field2} = value;
}
-static method Extension2|method<T extends core::num* = core::num*>(final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
+static method Extension2|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
return #this.{self::Class::field2};
-static method Extension2|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
+static method Extension2|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
return () → self::Extension2|get#method::T* => self::Extension2|method<self::Extension2|get#method::T*>(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
+static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} self::Extension2|genericMethod::T*;
-static method Extension2|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
+static method Extension2|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>(42, 87);
diff --git a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.strong.transformed.expect
index 7239cba..c99297a 100644
--- a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.strong.transformed.expect
@@ -37,38 +37,38 @@
set field = self::Extension2|set#field;
}
static field core::String* Extension1|latestType;
-static method Extension1|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
+static method Extension1|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
self::Extension1|latestType = "${self::Extension1|get#field::T*}";
return #this.{self::Class::field1};
}
-static method Extension1|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
+static method Extension1|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
self::Extension1|latestType = "${self::Extension1|set#field::T*}";
#this.{self::Class::field1} = value;
}
-static method Extension1|method<T extends core::num* = core::num*>(final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
+static method Extension1|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
self::Extension1|latestType = "${self::Extension1|method::T*}";
return #this.{self::Class::field1};
}
-static method Extension1|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
+static method Extension1|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
return () → self::Extension1|get#method::T* => self::Extension1|method<self::Extension1|get#method::T*>(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
+static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
self::Extension1|latestType = "${self::Extension1|genericMethod::T*}:${self::Extension1|genericMethod::S*}";
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} self::Extension1|genericMethod::T*;
}
-static method Extension1|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
+static method Extension1|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
-static method Extension2|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
+static method Extension2|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
return #this.{self::Class::field2};
-static method Extension2|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
+static method Extension2|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
#this.{self::Class::field2} = value;
}
-static method Extension2|method<T extends core::num* = core::num*>(final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
+static method Extension2|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
return #this.{self::Class::field2};
-static method Extension2|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
+static method Extension2|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
return () → self::Extension2|get#method::T* => self::Extension2|method<self::Extension2|get#method::T*>(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
+static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} self::Extension2|genericMethod::T*;
-static method Extension2|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
+static method Extension2|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>(42, 87);
diff --git a/pkg/front_end/testcases/extensions/explicit_this.dart.outline.expect b/pkg/front_end/testcases/extensions/explicit_this.dart.outline.expect
index fee8d56..21fa5c7 100644
--- a/pkg/front_end/testcases/extensions/explicit_this.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/explicit_this.dart.outline.expect
@@ -27,17 +27,17 @@
method method4 = self::A2|method4;
tearoff method4 = self::A2|get#method4;
}
-static method A2|method2(final self::A1* #this) → void
+static method A2|method2(lowered final self::A1* #this) → void
;
-static method A2|get#method2(final self::A1* #this) → () →* void
+static method A2|get#method2(lowered final self::A1* #this) → () →* void
return () → void => self::A2|method2(#this);
-static method A2|method3(final self::A1* #this) → core::Object*
+static method A2|method3(lowered final self::A1* #this) → core::Object*
;
-static method A2|get#method3(final self::A1* #this) → () →* core::Object*
+static method A2|get#method3(lowered final self::A1* #this) → () →* core::Object*
return () → core::Object* => self::A2|method3(#this);
-static method A2|method4(final self::A1* #this, core::Object* o) → void
+static method A2|method4(lowered final self::A1* #this, core::Object* o) → void
;
-static method A2|get#method4(final self::A1* #this) → (core::Object*) →* void
+static method A2|get#method4(lowered final self::A1* #this) → (core::Object*) →* void
return (core::Object* o) → void => self::A2|method4(#this, o);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/explicit_this.dart.strong.expect b/pkg/front_end/testcases/extensions/explicit_this.dart.strong.expect
index ef5a89a..f13b8bd 100644
--- a/pkg/front_end/testcases/extensions/explicit_this.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/explicit_this.dart.strong.expect
@@ -27,17 +27,17 @@
method method4 = self::A2|method4;
tearoff method4 = self::A2|get#method4;
}
-static method A2|method2(final self::A1* #this) → void
+static method A2|method2(lowered final self::A1* #this) → void
return #this.{self::A1::method1}();
-static method A2|get#method2(final self::A1* #this) → () →* void
+static method A2|get#method2(lowered final self::A1* #this) → () →* void
return () → void => self::A2|method2(#this);
-static method A2|method3(final self::A1* #this) → core::Object*
+static method A2|method3(lowered final self::A1* #this) → core::Object*
return #this.{self::A1::field};
-static method A2|get#method3(final self::A1* #this) → () →* core::Object*
+static method A2|get#method3(lowered final self::A1* #this) → () →* core::Object*
return () → core::Object* => self::A2|method3(#this);
-static method A2|method4(final self::A1* #this, core::Object* o) → void {
+static method A2|method4(lowered final self::A1* #this, core::Object* o) → void {
#this.{self::A1::field} = o;
}
-static method A2|get#method4(final self::A1* #this) → (core::Object*) →* void
+static method A2|get#method4(lowered final self::A1* #this) → (core::Object*) →* void
return (core::Object* o) → void => self::A2|method4(#this, o);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/explicit_this.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/explicit_this.dart.strong.transformed.expect
index ef5a89a..f13b8bd 100644
--- a/pkg/front_end/testcases/extensions/explicit_this.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/explicit_this.dart.strong.transformed.expect
@@ -27,17 +27,17 @@
method method4 = self::A2|method4;
tearoff method4 = self::A2|get#method4;
}
-static method A2|method2(final self::A1* #this) → void
+static method A2|method2(lowered final self::A1* #this) → void
return #this.{self::A1::method1}();
-static method A2|get#method2(final self::A1* #this) → () →* void
+static method A2|get#method2(lowered final self::A1* #this) → () →* void
return () → void => self::A2|method2(#this);
-static method A2|method3(final self::A1* #this) → core::Object*
+static method A2|method3(lowered final self::A1* #this) → core::Object*
return #this.{self::A1::field};
-static method A2|get#method3(final self::A1* #this) → () →* core::Object*
+static method A2|get#method3(lowered final self::A1* #this) → () →* core::Object*
return () → core::Object* => self::A2|method3(#this);
-static method A2|method4(final self::A1* #this, core::Object* o) → void {
+static method A2|method4(lowered final self::A1* #this, core::Object* o) → void {
#this.{self::A1::field} = o;
}
-static method A2|get#method4(final self::A1* #this) → (core::Object*) →* void
+static method A2|get#method4(lowered final self::A1* #this) → (core::Object*) →* void
return (core::Object* o) → void => self::A2|method4(#this, o);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/export_from_dill/main.dart.outline.expect b/pkg/front_end/testcases/extensions/export_from_dill/main.dart.outline.expect
index e4074ca..70bd997 100644
--- a/pkg/front_end/testcases/extensions/export_from_dill/main.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/export_from_dill/main.dart.outline.expect
@@ -33,13 +33,13 @@
static field core::int* Extension|staticField;
static final field core::int* Extension|staticFinalField;
static const field core::int* Extension|staticConstField = #C1;
-static method Extension|get#instanceProperty(final core::int* #this) → core::int*
+static method Extension|get#instanceProperty(lowered final core::int* #this) → core::int*
;
-static method Extension|set#instanceProperty(final core::int* #this, core::int* value) → void
+static method Extension|set#instanceProperty(lowered final core::int* #this, core::int* value) → void
;
-static method Extension|instanceMethod(final core::int* #this) → void
+static method Extension|instanceMethod(lowered final core::int* #this) → void
;
-static method Extension|get#instanceMethod(final core::int* #this) → () →* void
+static method Extension|get#instanceMethod(lowered final core::int* #this) → () →* void
return () → void => mai::Extension|instanceMethod(#this);
static get Extension|staticProperty() → core::int*
;
diff --git a/pkg/front_end/testcases/extensions/export_from_dill/main.dart.strong.expect b/pkg/front_end/testcases/extensions/export_from_dill/main.dart.strong.expect
index 93ed84b..d7c5320 100644
--- a/pkg/front_end/testcases/extensions/export_from_dill/main.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/export_from_dill/main.dart.strong.expect
@@ -43,11 +43,11 @@
static field core::int* Extension|staticField = 42;
static final field core::int* Extension|staticFinalField = 42;
static const field core::int* Extension|staticConstField = #C1;
-static method Extension|get#instanceProperty(final core::int* #this) → core::int*
+static method Extension|get#instanceProperty(lowered final core::int* #this) → core::int*
return 42;
-static method Extension|set#instanceProperty(final core::int* #this, core::int* value) → void {}
-static method Extension|instanceMethod(final core::int* #this) → void {}
-static method Extension|get#instanceMethod(final core::int* #this) → () →* void
+static method Extension|set#instanceProperty(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|instanceMethod(lowered final core::int* #this) → void {}
+static method Extension|get#instanceMethod(lowered final core::int* #this) → () →* void
return () → void => mai::Extension|instanceMethod(#this);
static get Extension|staticProperty() → core::int*
return 42;
diff --git a/pkg/front_end/testcases/extensions/export_from_dill/main.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/export_from_dill/main.dart.strong.transformed.expect
index 93ed84b..d7c5320 100644
--- a/pkg/front_end/testcases/extensions/export_from_dill/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/export_from_dill/main.dart.strong.transformed.expect
@@ -43,11 +43,11 @@
static field core::int* Extension|staticField = 42;
static final field core::int* Extension|staticFinalField = 42;
static const field core::int* Extension|staticConstField = #C1;
-static method Extension|get#instanceProperty(final core::int* #this) → core::int*
+static method Extension|get#instanceProperty(lowered final core::int* #this) → core::int*
return 42;
-static method Extension|set#instanceProperty(final core::int* #this, core::int* value) → void {}
-static method Extension|instanceMethod(final core::int* #this) → void {}
-static method Extension|get#instanceMethod(final core::int* #this) → () →* void
+static method Extension|set#instanceProperty(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|instanceMethod(lowered final core::int* #this) → void {}
+static method Extension|get#instanceMethod(lowered final core::int* #this) → () →* void
return () → void => mai::Extension|instanceMethod(#this);
static get Extension|staticProperty() → core::int*
return 42;
diff --git a/pkg/front_end/testcases/extensions/export_twice.dart.outline.expect b/pkg/front_end/testcases/extensions/export_twice.dart.outline.expect
index 1ee21db..a7b9b7e 100644
--- a/pkg/front_end/testcases/extensions/export_twice.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/export_twice.dart.outline.expect
@@ -29,9 +29,9 @@
method method = self2::Extension|method;
tearoff method = self2::Extension|get#method;
}
-static method Extension|method(final self2::Class* #this) → dynamic
+static method Extension|method(lowered final self2::Class* #this) → dynamic
;
-static method Extension|get#method(final self2::Class* #this) → () →* dynamic
+static method Extension|get#method(lowered final self2::Class* #this) → () →* dynamic
return () → dynamic => self2::Extension|method(#this);
library;
diff --git a/pkg/front_end/testcases/extensions/export_twice.dart.strong.expect b/pkg/front_end/testcases/extensions/export_twice.dart.strong.expect
index bc0e513..d7eef99 100644
--- a/pkg/front_end/testcases/extensions/export_twice.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/export_twice.dart.strong.expect
@@ -32,8 +32,8 @@
method method = exp::Extension|method;
tearoff method = exp::Extension|get#method;
}
-static method Extension|method(final exp::Class* #this) → dynamic {}
-static method Extension|get#method(final exp::Class* #this) → () →* dynamic
+static method Extension|method(lowered final exp::Class* #this) → dynamic {}
+static method Extension|get#method(lowered final exp::Class* #this) → () →* dynamic
return () → dynamic => exp::Extension|method(#this);
library;
diff --git a/pkg/front_end/testcases/extensions/export_twice.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/export_twice.dart.strong.transformed.expect
index bc0e513..d7eef99 100644
--- a/pkg/front_end/testcases/extensions/export_twice.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/export_twice.dart.strong.transformed.expect
@@ -32,8 +32,8 @@
method method = exp::Extension|method;
tearoff method = exp::Extension|get#method;
}
-static method Extension|method(final exp::Class* #this) → dynamic {}
-static method Extension|get#method(final exp::Class* #this) → () →* dynamic
+static method Extension|method(lowered final exp::Class* #this) → dynamic {}
+static method Extension|get#method(lowered final exp::Class* #this) → () →* dynamic
return () → dynamic => exp::Extension|method(#this);
library;
diff --git a/pkg/front_end/testcases/extensions/extension_call.dart.outline.expect b/pkg/front_end/testcases/extensions/extension_call.dart.outline.expect
index b95b9c6..bb8bde3 100644
--- a/pkg/front_end/testcases/extensions/extension_call.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/extension_call.dart.outline.expect
@@ -22,9 +22,9 @@
method call = self::Extension|call;
tearoff call = self::Extension|get#call;
}
-static method Extension|call<T extends core::Object* = dynamic>(final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
+static method Extension|call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
;
-static method Extension|get#call<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
+static method Extension|get#call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
return (self::Extension|get#call::T* a) → self::Extension|get#call::T* => self::Extension|call<self::Extension|get#call::T*>(#this, a);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/extension_call.dart.strong.expect b/pkg/front_end/testcases/extensions/extension_call.dart.strong.expect
index 946cf57..12c9cd8 100644
--- a/pkg/front_end/testcases/extensions/extension_call.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/extension_call.dart.strong.expect
@@ -23,9 +23,9 @@
method call = self::Extension|call;
tearoff call = self::Extension|get#call;
}
-static method Extension|call<T extends core::Object* = dynamic>(final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
+static method Extension|call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
return #this.{self::Class::method}(a);
-static method Extension|get#call<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
+static method Extension|get#call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
return (self::Extension|get#call::T* a) → self::Extension|get#call::T* => self::Extension|call<self::Extension|get#call::T*>(#this, a);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>();
diff --git a/pkg/front_end/testcases/extensions/extension_call.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/extension_call.dart.strong.transformed.expect
index 946cf57..12c9cd8 100644
--- a/pkg/front_end/testcases/extensions/extension_call.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/extension_call.dart.strong.transformed.expect
@@ -23,9 +23,9 @@
method call = self::Extension|call;
tearoff call = self::Extension|get#call;
}
-static method Extension|call<T extends core::Object* = dynamic>(final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
+static method Extension|call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
return #this.{self::Class::method}(a);
-static method Extension|get#call<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
+static method Extension|get#call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
return (self::Extension|get#call::T* a) → self::Extension|get#call::T* => self::Extension|call<self::Extension|get#call::T*>(#this, a);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>();
diff --git a/pkg/front_end/testcases/extensions/extension_constructor.dart.outline.expect b/pkg/front_end/testcases/extensions/extension_constructor.dart.outline.expect
index 85085ee..5bcfb3c 100644
--- a/pkg/front_end/testcases/extensions/extension_constructor.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/extension_constructor.dart.outline.expect
@@ -57,9 +57,9 @@
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
-static method Extension|method(final self::Class* #this) → dynamic
+static method Extension|method(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#method(final self::Class* #this) → () →* dynamic
+static method Extension|get#method(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|method(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/extension_constructor.dart.strong.expect b/pkg/front_end/testcases/extensions/extension_constructor.dart.strong.expect
index d5d8cb2..e059431 100644
--- a/pkg/front_end/testcases/extensions/extension_constructor.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/extension_constructor.dart.strong.expect
@@ -58,7 +58,7 @@
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
-static method Extension|method(final self::Class* #this) → dynamic {}
-static method Extension|get#method(final self::Class* #this) → () →* dynamic
+static method Extension|method(lowered final self::Class* #this) → dynamic {}
+static method Extension|get#method(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|method(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/extension_constructor.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/extension_constructor.dart.strong.transformed.expect
index d5d8cb2..e059431 100644
--- a/pkg/front_end/testcases/extensions/extension_constructor.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/extension_constructor.dart.strong.transformed.expect
@@ -58,7 +58,7 @@
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
-static method Extension|method(final self::Class* #this) → dynamic {}
-static method Extension|get#method(final self::Class* #this) → () →* dynamic
+static method Extension|method(lowered final self::Class* #this) → dynamic {}
+static method Extension|get#method(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|method(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/extension_member_conflict.dart.outline.expect b/pkg/front_end/testcases/extensions/extension_member_conflict.dart.outline.expect
index 78e8afc..4010730 100644
--- a/pkg/front_end/testcases/extensions/extension_member_conflict.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/extension_member_conflict.dart.outline.expect
@@ -169,13 +169,13 @@
set instanceSetterAndStaticField = self::Extension|set#instanceSetterAndStaticField;
}
static field core::int* Extension|duplicateStaticField;
-static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
-static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
+static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
-static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → void
+static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → void
;
-static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → () →* void
+static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → () →* void
return () → void => self::Extension|duplicateInstanceMethod<self::Extension|get#duplicateInstanceMethod::T*>(#this);
static get Extension|duplicateStaticGetter() → core::int*
;
@@ -183,17 +183,17 @@
;
static method Extension|duplicateStaticMethod() → void
;
-static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
-static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
+static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
-static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
-static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
+static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
-static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
-static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
+static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
static get Extension|duplicateStaticGetterPlusSetter() → core::int*
;
@@ -207,17 +207,17 @@
;
static set Extension|duplicateStaticGetterAndSetter(core::int* value) → void
;
-static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
static set Extension|instanceGetterAndStaticSetter(core::int* value) → void
;
static get Extension|instanceSetterAndStaticGetter() → core::int*
;
-static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
+static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
-static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
-static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
+static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/extension_member_conflict.dart.strong.expect b/pkg/front_end/testcases/extensions/extension_member_conflict.dart.strong.expect
index 52aa6f4..fd72cf1 100644
--- a/pkg/front_end/testcases/extensions/extension_member_conflict.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/extension_member_conflict.dart.strong.expect
@@ -169,25 +169,25 @@
set instanceSetterAndStaticField = self::Extension|set#instanceSetterAndStaticField;
}
static field core::int* Extension|duplicateStaticField;
-static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
-static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → void {}
-static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → () →* void
+static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → void {}
+static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → () →* void
return () → void => self::Extension|duplicateInstanceMethod<self::Extension|get#duplicateInstanceMethod::T*>(#this);
static get Extension|duplicateStaticGetter() → core::int*
return 0;
static set Extension|duplicateStaticSetter(core::int* value) → void {}
static method Extension|duplicateStaticMethod() → void {}
-static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
-static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
-static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
+static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static get Extension|duplicateStaticGetterPlusSetter() → core::int*
return 0;
static set Extension|duplicateStaticGetterPlusSetter(core::int* value) → void {}
@@ -197,13 +197,13 @@
static get Extension|duplicateStaticGetterAndSetter() → core::int*
return 0;
static set Extension|duplicateStaticGetterAndSetter(core::int* value) → void {}
-static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static set Extension|instanceGetterAndStaticSetter(core::int* value) → void {}
static get Extension|instanceSetterAndStaticGetter() → core::int*
return 0;
-static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
-static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
+static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/extension_member_conflict.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/extension_member_conflict.dart.strong.transformed.expect
index 52aa6f4..fd72cf1 100644
--- a/pkg/front_end/testcases/extensions/extension_member_conflict.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/extension_member_conflict.dart.strong.transformed.expect
@@ -169,25 +169,25 @@
set instanceSetterAndStaticField = self::Extension|set#instanceSetterAndStaticField;
}
static field core::int* Extension|duplicateStaticField;
-static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
-static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → void {}
-static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → () →* void
+static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → void {}
+static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → () →* void
return () → void => self::Extension|duplicateInstanceMethod<self::Extension|get#duplicateInstanceMethod::T*>(#this);
static get Extension|duplicateStaticGetter() → core::int*
return 0;
static set Extension|duplicateStaticSetter(core::int* value) → void {}
static method Extension|duplicateStaticMethod() → void {}
-static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
-static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
-static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
+static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static get Extension|duplicateStaticGetterPlusSetter() → core::int*
return 0;
static set Extension|duplicateStaticGetterPlusSetter(core::int* value) → void {}
@@ -197,13 +197,13 @@
static get Extension|duplicateStaticGetterAndSetter() → core::int*
return 0;
static set Extension|duplicateStaticGetterAndSetter(core::int* value) → void {}
-static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static set Extension|instanceGetterAndStaticSetter(core::int* value) → void {}
static get Extension|instanceSetterAndStaticGetter() → core::int*
return 0;
-static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
-static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
+static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
+static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/extension_methods.dart.outline.expect b/pkg/front_end/testcases/extensions/extension_methods.dart.outline.expect
index f327887..20fb805 100644
--- a/pkg/front_end/testcases/extensions/extension_methods.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/extension_methods.dart.outline.expect
@@ -23,7 +23,7 @@
extension E on self::C* {
get two = self::E|get#two;
}
-static method E|get#two(final self::C* #this) → core::int*
+static method E|get#two(lowered final self::C* #this) → core::int*
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/extension_methods.dart.strong.expect b/pkg/front_end/testcases/extensions/extension_methods.dart.strong.expect
index b6a1193..fd6fddd 100644
--- a/pkg/front_end/testcases/extensions/extension_methods.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/extension_methods.dart.strong.expect
@@ -25,7 +25,7 @@
extension E on self::C* {
get two = self::E|get#two;
}
-static method E|get#two(final self::C* #this) → core::int*
+static method E|get#two(lowered final self::C* #this) → core::int*
return 2;
static method main() → dynamic {
self::C* c = new self::C::•();
diff --git a/pkg/front_end/testcases/extensions/extension_methods.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/extension_methods.dart.strong.transformed.expect
index b6a1193..fd6fddd 100644
--- a/pkg/front_end/testcases/extensions/extension_methods.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/extension_methods.dart.strong.transformed.expect
@@ -25,7 +25,7 @@
extension E on self::C* {
get two = self::E|get#two;
}
-static method E|get#two(final self::C* #this) → core::int*
+static method E|get#two(lowered final self::C* #this) → core::int*
return 2;
static method main() → dynamic {
self::C* c = new self::C::•();
diff --git a/pkg/front_end/testcases/extensions/extension_setter.dart.outline.expect b/pkg/front_end/testcases/extensions/extension_setter.dart.outline.expect
index a46d986..f2ff9b4 100644
--- a/pkg/front_end/testcases/extensions/extension_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter.dart.outline.expect
@@ -46,27 +46,27 @@
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
-static method Extension|get#simpleSetter(final self::Class* #this) → core::int*
+static method Extension|get#simpleSetter(lowered final self::Class* #this) → core::int*
;
-static method Extension|set#simpleSetter(final self::Class* #this, core::int* value) → void
+static method Extension|set#simpleSetter(lowered final self::Class* #this, core::int* value) → void
;
-static method Extension|get#mutatingSetter(final self::Class* #this) → core::int*
+static method Extension|get#mutatingSetter(lowered final self::Class* #this) → core::int*
;
-static method Extension|set#mutatingSetter(final self::Class* #this, core::int* value) → void
+static method Extension|set#mutatingSetter(lowered final self::Class* #this, core::int* value) → void
;
-static method Extension|get#setterWithReturn(final self::Class* #this) → core::int*
+static method Extension|get#setterWithReturn(lowered final self::Class* #this) → core::int*
;
-static method Extension|set#setterWithReturn(final self::Class* #this, core::int* value) → void
+static method Extension|set#setterWithReturn(lowered final self::Class* #this, core::int* value) → void
;
-static method Extension|get#setterWithClosure(final self::Class* #this) → core::int*
+static method Extension|get#setterWithClosure(lowered final self::Class* #this) → core::int*
;
-static method Extension|set#setterWithClosure(final self::Class* #this, core::int* value) → void
+static method Extension|set#setterWithClosure(lowered final self::Class* #this, core::int* value) → void
;
-static method Extension|testInternal(final self::Class* #this) → dynamic
+static method Extension|testInternal(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#testInternal(final self::Class* #this) → () →* dynamic
+static method Extension|get#testInternal(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|testInternal(#this);
-static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void
+static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/extension_setter.dart.strong.expect b/pkg/front_end/testcases/extensions/extension_setter.dart.strong.expect
index dbe9bc2..ce8e8ef 100644
--- a/pkg/front_end/testcases/extensions/extension_setter.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter.dart.strong.expect
@@ -48,35 +48,35 @@
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
-static method Extension|get#simpleSetter(final self::Class* #this) → core::int*
+static method Extension|get#simpleSetter(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#simpleSetter(final self::Class* #this, core::int* value) → void {
+static method Extension|set#simpleSetter(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field} = value;
}
-static method Extension|get#mutatingSetter(final self::Class* #this) → core::int*
+static method Extension|get#mutatingSetter(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#mutatingSetter(final self::Class* #this, core::int* value) → void {
+static method Extension|set#mutatingSetter(lowered final self::Class* #this, core::int* value) → void {
value = value.{core::num::+}(1);
#this.{self::Class::field} = value;
}
-static method Extension|get#setterWithReturn(final self::Class* #this) → core::int*
+static method Extension|get#setterWithReturn(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#setterWithReturn(final self::Class* #this, core::int* value) → void {
+static method Extension|set#setterWithReturn(lowered final self::Class* #this, core::int* value) → void {
if(value.{core::num::<}(0)) {
#this.{self::Class::field} = value.{core::int::unary-}();
return;
}
#this.{self::Class::field} = value;
}
-static method Extension|get#setterWithClosure(final self::Class* #this) → core::int*
+static method Extension|get#setterWithClosure(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#setterWithClosure(final self::Class* #this, core::int* value) → void {
+static method Extension|set#setterWithClosure(lowered final self::Class* #this, core::int* value) → void {
function abs(dynamic value) → dynamic {
return value.<(0) as{TypeError,ForDynamic} core::bool* ?{dynamic} value.unary-() : value;
}
#this.{self::Class::field} = abs.call(value) as{TypeError,ForDynamic} core::int*;
}
-static method Extension|testInternal(final self::Class* #this) → dynamic {
+static method Extension|testInternal(lowered final self::Class* #this) → dynamic {
self::expect(null, #this.{self::Class::field});
self::Extension|set#simpleSetter(#this, 0);
self::expect(0, #this.{self::Class::field});
@@ -102,9 +102,9 @@
self::expect(4.{core::int::unary-}(), let final core::int* #t11 = 4.{core::int::unary-}() in let final void #t12 = self::Extension|set#setterWithClosure(#this, #t11) in #t11);
self::expect(4, #this.{self::Class::field});
}
-static method Extension|get#testInternal(final self::Class* #this) → () →* dynamic
+static method Extension|get#testInternal(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|testInternal(#this);
-static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
+static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(null, c.{self::Class::field});
diff --git a/pkg/front_end/testcases/extensions/extension_setter.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/extension_setter.dart.strong.transformed.expect
index cb01579..37d083c 100644
--- a/pkg/front_end/testcases/extensions/extension_setter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter.dart.strong.transformed.expect
@@ -48,35 +48,35 @@
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
-static method Extension|get#simpleSetter(final self::Class* #this) → core::int*
+static method Extension|get#simpleSetter(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#simpleSetter(final self::Class* #this, core::int* value) → void {
+static method Extension|set#simpleSetter(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field} = value;
}
-static method Extension|get#mutatingSetter(final self::Class* #this) → core::int*
+static method Extension|get#mutatingSetter(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#mutatingSetter(final self::Class* #this, core::int* value) → void {
+static method Extension|set#mutatingSetter(lowered final self::Class* #this, core::int* value) → void {
value = value.{core::num::+}(1);
#this.{self::Class::field} = value;
}
-static method Extension|get#setterWithReturn(final self::Class* #this) → core::int*
+static method Extension|get#setterWithReturn(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#setterWithReturn(final self::Class* #this, core::int* value) → void {
+static method Extension|set#setterWithReturn(lowered final self::Class* #this, core::int* value) → void {
if(value.{core::num::<}(0)) {
#this.{self::Class::field} = value.{core::int::unary-}();
return;
}
#this.{self::Class::field} = value;
}
-static method Extension|get#setterWithClosure(final self::Class* #this) → core::int*
+static method Extension|get#setterWithClosure(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#setterWithClosure(final self::Class* #this, core::int* value) → void {
+static method Extension|set#setterWithClosure(lowered final self::Class* #this, core::int* value) → void {
function abs(dynamic value) → dynamic {
return value.<(0) as{TypeError,ForDynamic} core::bool* ?{dynamic} value.unary-() : value;
}
#this.{self::Class::field} = abs.call(value) as{TypeError,ForDynamic} core::int*;
}
-static method Extension|testInternal(final self::Class* #this) → dynamic {
+static method Extension|testInternal(lowered final self::Class* #this) → dynamic {
self::expect(null, #this.{self::Class::field});
self::Extension|set#simpleSetter(#this, 0);
self::expect(0, #this.{self::Class::field});
@@ -102,9 +102,9 @@
self::expect(4.{core::int::unary-}(), let final core::int* #t11 = 4.{core::int::unary-}() in let final void #t12 = self::Extension|set#setterWithClosure(#this, #t11) in #t11);
self::expect(4, #this.{self::Class::field});
}
-static method Extension|get#testInternal(final self::Class* #this) → () →* dynamic
+static method Extension|get#testInternal(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|testInternal(#this);
-static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
+static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(null, c.{self::Class::field});
diff --git a/pkg/front_end/testcases/extensions/extension_setter_error.dart.outline.expect b/pkg/front_end/testcases/extensions/extension_setter_error.dart.outline.expect
index 4044e84..2b0f430 100644
--- a/pkg/front_end/testcases/extensions/extension_setter_error.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter_error.dart.outline.expect
@@ -19,7 +19,7 @@
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
-static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void
+static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void
;
static method error() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/extension_setter_error.dart.strong.expect b/pkg/front_end/testcases/extensions/extension_setter_error.dart.strong.expect
index f0d0e30..b053b1b 100644
--- a/pkg/front_end/testcases/extensions/extension_setter_error.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/extension_setter_error.dart.strong.expect
@@ -28,7 +28,7 @@
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
-static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
+static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
static method error() → dynamic {
self::GenericClass<core::int*>* genericClass = new self::GenericClass::•<core::int*>();
self::expect(null, let final self::GenericClass<core::int*>* #t1 = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/extensions/extension_setter_error.dart:13:41: Error: A value of type 'GenericClass<int>' can't be assigned to a variable of type 'GenericClass<double>'.
diff --git a/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.outline.expect b/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.outline.expect
index 6155609..de2e8df 100644
--- a/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.outline.expect
@@ -20,9 +20,9 @@
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
-static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
+static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
;
-static method Extension|get#method<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
+static method Extension|get#method<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
return <R extends core::Object* = dynamic>(self::Extension|get#method::T* t) → R* => self::Extension|method<self::Extension|get#method::T*, R*>(#this, t);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.strong.expect b/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.strong.expect
index f7c38aa..e351a9e 100644
--- a/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.strong.expect
@@ -21,9 +21,9 @@
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
-static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
+static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
return null;
-static method Extension|get#method<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
+static method Extension|get#method<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
return <R extends core::Object* = dynamic>(self::Extension|get#method::T* t) → R* => self::Extension|method<self::Extension|get#method::T*, R*>(#this, t);
static method main() → dynamic {
let final dynamic #t1 = self::Extension|method<core::int*, dynamic>(new self::Class::•<core::int*>(), 0) in #t1.{core::Object::==}(null) ?{core::String*} null : #t1.{core::Object::toString}();
diff --git a/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.strong.transformed.expect
index f7c38aa..e351a9e 100644
--- a/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/generic_function_in_generic_extension.dart.strong.transformed.expect
@@ -21,9 +21,9 @@
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
-static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
+static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
return null;
-static method Extension|get#method<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
+static method Extension|get#method<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
return <R extends core::Object* = dynamic>(self::Extension|get#method::T* t) → R* => self::Extension|method<self::Extension|get#method::T*, R*>(#this, t);
static method main() → dynamic {
let final dynamic #t1 = self::Extension|method<core::int*, dynamic>(new self::Class::•<core::int*>(), 0) in #t1.{core::Object::==}(null) ?{core::String*} null : #t1.{core::Object::toString}();
diff --git a/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.outline.expect b/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.outline.expect
index 9d49790..c1bc20e 100644
--- a/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.outline.expect
@@ -30,17 +30,17 @@
get m3 = self::Extension1|get#m3;
set m4 = self::Extension1|set#m4;
}
-static method Extension0|set#m1(final self::Class* #this, core::int* x) → void
+static method Extension0|set#m1(lowered final self::Class* #this, core::int* x) → void
;
-static method Extension0|get#m2(final self::Class* #this) → core::int*
+static method Extension0|get#m2(lowered final self::Class* #this) → core::int*
;
-static method Extension0|set#m3(final self::Class* #this, core::int* x) → void
+static method Extension0|set#m3(lowered final self::Class* #this, core::int* x) → void
;
-static method Extension0|get#m4(final self::Class* #this) → core::int*
+static method Extension0|get#m4(lowered final self::Class* #this) → core::int*
;
-static method Extension1|get#m3(final self::Class* #this) → core::int*
+static method Extension1|get#m3(lowered final self::Class* #this) → core::int*
;
-static method Extension1|set#m4(final self::Class* #this, core::int* x) → void
+static method Extension1|set#m4(lowered final self::Class* #this, core::int* x) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.strong.expect b/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.strong.expect
index 966e6eb..4c0c516 100644
--- a/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.strong.expect
@@ -93,15 +93,15 @@
get m3 = self::Extension1|get#m3;
set m4 = self::Extension1|set#m4;
}
-static method Extension0|set#m1(final self::Class* #this, core::int* x) → void {}
-static method Extension0|get#m2(final self::Class* #this) → core::int*
+static method Extension0|set#m1(lowered final self::Class* #this, core::int* x) → void {}
+static method Extension0|get#m2(lowered final self::Class* #this) → core::int*
return 0;
-static method Extension0|set#m3(final self::Class* #this, core::int* x) → void {}
-static method Extension0|get#m4(final self::Class* #this) → core::int*
+static method Extension0|set#m3(lowered final self::Class* #this, core::int* x) → void {}
+static method Extension0|get#m4(lowered final self::Class* #this) → core::int*
return 0;
-static method Extension1|get#m3(final self::Class* #this) → core::int*
+static method Extension1|get#m3(lowered final self::Class* #this) → core::int*
return 0;
-static method Extension1|set#m4(final self::Class* #this, core::int* x) → void {}
+static method Extension1|set#m4(lowered final self::Class* #this, core::int* x) → void {}
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(0, c.{self::Class::m1});
diff --git a/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.strong.transformed.expect
index 966e6eb..4c0c516 100644
--- a/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/getter_setter_conflict.dart.strong.transformed.expect
@@ -93,15 +93,15 @@
get m3 = self::Extension1|get#m3;
set m4 = self::Extension1|set#m4;
}
-static method Extension0|set#m1(final self::Class* #this, core::int* x) → void {}
-static method Extension0|get#m2(final self::Class* #this) → core::int*
+static method Extension0|set#m1(lowered final self::Class* #this, core::int* x) → void {}
+static method Extension0|get#m2(lowered final self::Class* #this) → core::int*
return 0;
-static method Extension0|set#m3(final self::Class* #this, core::int* x) → void {}
-static method Extension0|get#m4(final self::Class* #this) → core::int*
+static method Extension0|set#m3(lowered final self::Class* #this, core::int* x) → void {}
+static method Extension0|get#m4(lowered final self::Class* #this) → core::int*
return 0;
-static method Extension1|get#m3(final self::Class* #this) → core::int*
+static method Extension1|get#m3(lowered final self::Class* #this) → core::int*
return 0;
-static method Extension1|set#m4(final self::Class* #this, core::int* x) → void {}
+static method Extension1|set#m4(lowered final self::Class* #this, core::int* x) → void {}
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(0, c.{self::Class::m1});
diff --git a/pkg/front_end/testcases/extensions/if_null.dart.outline.expect b/pkg/front_end/testcases/extensions/if_null.dart.outline.expect
index 3d3aea8..1ce7da8 100644
--- a/pkg/front_end/testcases/extensions/if_null.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/if_null.dart.outline.expect
@@ -23,13 +23,13 @@
tearoff method = self::Extension|get#method;
set property = self::Extension|set#property;
}
-static method Extension|get#property(final self::Class* #this) → core::int*
+static method Extension|get#property(lowered final self::Class* #this) → core::int*
;
-static method Extension|set#property(final self::Class* #this, core::int* value) → void
+static method Extension|set#property(lowered final self::Class* #this, core::int* value) → void
;
-static method Extension|method(final self::Class* #this) → core::int*
+static method Extension|method(lowered final self::Class* #this) → core::int*
;
-static method Extension|get#method(final self::Class* #this) → () →* core::int*
+static method Extension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/if_null.dart.strong.expect b/pkg/front_end/testcases/extensions/if_null.dart.strong.expect
index 4a04ad0..e4d6312 100644
--- a/pkg/front_end/testcases/extensions/if_null.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/if_null.dart.strong.expect
@@ -24,14 +24,14 @@
tearoff method = self::Extension|get#method;
set property = self::Extension|set#property;
}
-static method Extension|get#property(final self::Class* #this) → core::int*
+static method Extension|get#property(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#property(final self::Class* #this, core::int* value) → void {
+static method Extension|set#property(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field} = value;
}
-static method Extension|method(final self::Class* #this) → core::int*
+static method Extension|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|get#method(final self::Class* #this) → () →* core::int*
+static method Extension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
static method main() → dynamic {
self::Class* c;
diff --git a/pkg/front_end/testcases/extensions/if_null.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/if_null.dart.strong.transformed.expect
index cd0b1b3..f3e6b96 100644
--- a/pkg/front_end/testcases/extensions/if_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/if_null.dart.strong.transformed.expect
@@ -24,14 +24,14 @@
tearoff method = self::Extension|get#method;
set property = self::Extension|set#property;
}
-static method Extension|get#property(final self::Class* #this) → core::int*
+static method Extension|get#property(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#property(final self::Class* #this, core::int* value) → void {
+static method Extension|set#property(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field} = value;
}
-static method Extension|method(final self::Class* #this) → core::int*
+static method Extension|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|get#method(final self::Class* #this) → () →* core::int*
+static method Extension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
static method main() → dynamic {
self::Class* c;
diff --git a/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.outline.expect b/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.outline.expect
index 21fc22e..eb41182 100644
--- a/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.outline.expect
@@ -45,15 +45,15 @@
method genericMethod1 = self::GenericExtension|genericMethod1;
tearoff genericMethod1 = self::GenericExtension|get#genericMethod1;
}
-static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
+static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
;
-static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
+static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
;
-static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
+static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
return (self::GenericExtension|get#method::T* t) → self::GenericExtension|get#method::T* => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this, t);
-static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
+static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
;
-static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
+static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
return <S extends core::Object* = dynamic>(S* s) → S* => self::GenericExtension|genericMethod1<self::GenericExtension|get#genericMethod1::T*, S*>(#this, s);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.strong.expect b/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.strong.expect
index e9f7f82..68819f0 100644
--- a/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.strong.expect
@@ -49,15 +49,15 @@
method genericMethod1 = self::GenericExtension|genericMethod1;
tearoff genericMethod1 = self::GenericExtension|get#genericMethod1;
}
-static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
+static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return null;
-static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
+static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
return null;
-static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
+static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
return (self::GenericExtension|get#method::T* t) → self::GenericExtension|get#method::T* => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this, t);
-static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
+static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
return null;
-static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
+static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
return <S extends core::Object* = dynamic>(S* s) → S* => self::GenericExtension|genericMethod1<self::GenericExtension|get#genericMethod1::T*, S*>(#this, s);
static method main() → dynamic {
self::A* aVariable;
diff --git a/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.strong.transformed.expect
index e9f7f82..68819f0 100644
--- a/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/implicit_extension_inference.dart.strong.transformed.expect
@@ -49,15 +49,15 @@
method genericMethod1 = self::GenericExtension|genericMethod1;
tearoff genericMethod1 = self::GenericExtension|get#genericMethod1;
}
-static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
+static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return null;
-static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
+static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
return null;
-static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
+static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
return (self::GenericExtension|get#method::T* t) → self::GenericExtension|get#method::T* => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this, t);
-static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
+static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
return null;
-static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
+static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
return <S extends core::Object* = dynamic>(S* s) → S* => self::GenericExtension|genericMethod1<self::GenericExtension|get#genericMethod1::T*, S*>(#this, s);
static method main() → dynamic {
self::A* aVariable;
diff --git a/pkg/front_end/testcases/extensions/implicit_this.dart.outline.expect b/pkg/front_end/testcases/extensions/implicit_this.dart.outline.expect
index fee8d56..21fa5c7 100644
--- a/pkg/front_end/testcases/extensions/implicit_this.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/implicit_this.dart.outline.expect
@@ -27,17 +27,17 @@
method method4 = self::A2|method4;
tearoff method4 = self::A2|get#method4;
}
-static method A2|method2(final self::A1* #this) → void
+static method A2|method2(lowered final self::A1* #this) → void
;
-static method A2|get#method2(final self::A1* #this) → () →* void
+static method A2|get#method2(lowered final self::A1* #this) → () →* void
return () → void => self::A2|method2(#this);
-static method A2|method3(final self::A1* #this) → core::Object*
+static method A2|method3(lowered final self::A1* #this) → core::Object*
;
-static method A2|get#method3(final self::A1* #this) → () →* core::Object*
+static method A2|get#method3(lowered final self::A1* #this) → () →* core::Object*
return () → core::Object* => self::A2|method3(#this);
-static method A2|method4(final self::A1* #this, core::Object* o) → void
+static method A2|method4(lowered final self::A1* #this, core::Object* o) → void
;
-static method A2|get#method4(final self::A1* #this) → (core::Object*) →* void
+static method A2|get#method4(lowered final self::A1* #this) → (core::Object*) →* void
return (core::Object* o) → void => self::A2|method4(#this, o);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/implicit_this.dart.strong.expect b/pkg/front_end/testcases/extensions/implicit_this.dart.strong.expect
index ef5a89a..f13b8bd 100644
--- a/pkg/front_end/testcases/extensions/implicit_this.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/implicit_this.dart.strong.expect
@@ -27,17 +27,17 @@
method method4 = self::A2|method4;
tearoff method4 = self::A2|get#method4;
}
-static method A2|method2(final self::A1* #this) → void
+static method A2|method2(lowered final self::A1* #this) → void
return #this.{self::A1::method1}();
-static method A2|get#method2(final self::A1* #this) → () →* void
+static method A2|get#method2(lowered final self::A1* #this) → () →* void
return () → void => self::A2|method2(#this);
-static method A2|method3(final self::A1* #this) → core::Object*
+static method A2|method3(lowered final self::A1* #this) → core::Object*
return #this.{self::A1::field};
-static method A2|get#method3(final self::A1* #this) → () →* core::Object*
+static method A2|get#method3(lowered final self::A1* #this) → () →* core::Object*
return () → core::Object* => self::A2|method3(#this);
-static method A2|method4(final self::A1* #this, core::Object* o) → void {
+static method A2|method4(lowered final self::A1* #this, core::Object* o) → void {
#this.{self::A1::field} = o;
}
-static method A2|get#method4(final self::A1* #this) → (core::Object*) →* void
+static method A2|get#method4(lowered final self::A1* #this) → (core::Object*) →* void
return (core::Object* o) → void => self::A2|method4(#this, o);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/implicit_this.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/implicit_this.dart.strong.transformed.expect
index ef5a89a..f13b8bd 100644
--- a/pkg/front_end/testcases/extensions/implicit_this.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/implicit_this.dart.strong.transformed.expect
@@ -27,17 +27,17 @@
method method4 = self::A2|method4;
tearoff method4 = self::A2|get#method4;
}
-static method A2|method2(final self::A1* #this) → void
+static method A2|method2(lowered final self::A1* #this) → void
return #this.{self::A1::method1}();
-static method A2|get#method2(final self::A1* #this) → () →* void
+static method A2|get#method2(lowered final self::A1* #this) → () →* void
return () → void => self::A2|method2(#this);
-static method A2|method3(final self::A1* #this) → core::Object*
+static method A2|method3(lowered final self::A1* #this) → core::Object*
return #this.{self::A1::field};
-static method A2|get#method3(final self::A1* #this) → () →* core::Object*
+static method A2|get#method3(lowered final self::A1* #this) → () →* core::Object*
return () → core::Object* => self::A2|method3(#this);
-static method A2|method4(final self::A1* #this, core::Object* o) → void {
+static method A2|method4(lowered final self::A1* #this, core::Object* o) → void {
#this.{self::A1::field} = o;
}
-static method A2|get#method4(final self::A1* #this) → (core::Object*) →* void
+static method A2|get#method4(lowered final self::A1* #this) → (core::Object*) →* void
return (core::Object* o) → void => self::A2|method4(#this, o);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/import_from_dill/main.dart.outline.expect b/pkg/front_end/testcases/extensions/import_from_dill/main.dart.outline.expect
index ccc1535..71c7348 100644
--- a/pkg/front_end/testcases/extensions/import_from_dill/main.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/import_from_dill/main.dart.outline.expect
@@ -25,13 +25,13 @@
static field core::int* Extension|staticField;
static final field core::int* Extension|staticFinalField;
static const field core::int* Extension|staticConstField = #C1;
-static method Extension|get#instanceProperty(final core::int* #this) → core::int*
+static method Extension|get#instanceProperty(lowered final core::int* #this) → core::int*
;
-static method Extension|set#instanceProperty(final core::int* #this, core::int* value) → void
+static method Extension|set#instanceProperty(lowered final core::int* #this, core::int* value) → void
;
-static method Extension|instanceMethod(final core::int* #this) → void
+static method Extension|instanceMethod(lowered final core::int* #this) → void
;
-static method Extension|get#instanceMethod(final core::int* #this) → () →* void
+static method Extension|get#instanceMethod(lowered final core::int* #this) → () →* void
return () → void => self2::Extension|instanceMethod(#this);
static get Extension|staticProperty() → core::int*
;
diff --git a/pkg/front_end/testcases/extensions/import_from_dill/main.dart.strong.expect b/pkg/front_end/testcases/extensions/import_from_dill/main.dart.strong.expect
index 1672c049..dda54b1 100644
--- a/pkg/front_end/testcases/extensions/import_from_dill/main.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/import_from_dill/main.dart.strong.expect
@@ -35,11 +35,11 @@
static field core::int* Extension|staticField = 42;
static final field core::int* Extension|staticFinalField = 42;
static const field core::int* Extension|staticConstField = #C1;
-static method Extension|get#instanceProperty(final core::int* #this) → core::int*
+static method Extension|get#instanceProperty(lowered final core::int* #this) → core::int*
return 42;
-static method Extension|set#instanceProperty(final core::int* #this, core::int* value) → void {}
-static method Extension|instanceMethod(final core::int* #this) → void {}
-static method Extension|get#instanceMethod(final core::int* #this) → () →* void
+static method Extension|set#instanceProperty(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|instanceMethod(lowered final core::int* #this) → void {}
+static method Extension|get#instanceMethod(lowered final core::int* #this) → () →* void
return () → void => mai::Extension|instanceMethod(#this);
static get Extension|staticProperty() → core::int*
return 42;
diff --git a/pkg/front_end/testcases/extensions/import_from_dill/main.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/import_from_dill/main.dart.strong.transformed.expect
index 1672c049..dda54b1 100644
--- a/pkg/front_end/testcases/extensions/import_from_dill/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/import_from_dill/main.dart.strong.transformed.expect
@@ -35,11 +35,11 @@
static field core::int* Extension|staticField = 42;
static final field core::int* Extension|staticFinalField = 42;
static const field core::int* Extension|staticConstField = #C1;
-static method Extension|get#instanceProperty(final core::int* #this) → core::int*
+static method Extension|get#instanceProperty(lowered final core::int* #this) → core::int*
return 42;
-static method Extension|set#instanceProperty(final core::int* #this, core::int* value) → void {}
-static method Extension|instanceMethod(final core::int* #this) → void {}
-static method Extension|get#instanceMethod(final core::int* #this) → () →* void
+static method Extension|set#instanceProperty(lowered final core::int* #this, core::int* value) → void {}
+static method Extension|instanceMethod(lowered final core::int* #this) → void {}
+static method Extension|get#instanceMethod(lowered final core::int* #this) → () →* void
return () → void => mai::Extension|instanceMethod(#this);
static get Extension|staticProperty() → core::int*
return 42;
diff --git a/pkg/front_end/testcases/extensions/import_via_prefix.dart.outline.expect b/pkg/front_end/testcases/extensions/import_via_prefix.dart.outline.expect
index 4b7b4b9..920ce9c 100644
--- a/pkg/front_end/testcases/extensions/import_via_prefix.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/import_via_prefix.dart.outline.expect
@@ -16,7 +16,7 @@
method method = self2::Extension|method;
tearoff method = self2::Extension|get#method;
}
-static method Extension|method(final core::String* #this) → core::int*
+static method Extension|method(lowered final core::String* #this) → core::int*
;
-static method Extension|get#method(final core::String* #this) → () →* core::int*
+static method Extension|get#method(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self2::Extension|method(#this);
diff --git a/pkg/front_end/testcases/extensions/import_via_prefix.dart.strong.expect b/pkg/front_end/testcases/extensions/import_via_prefix.dart.strong.expect
index 7030c4a..6ffdbd7 100644
--- a/pkg/front_end/testcases/extensions/import_via_prefix.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/import_via_prefix.dart.strong.expect
@@ -21,7 +21,7 @@
method method = imp::Extension|method;
tearoff method = imp::Extension|get#method;
}
-static method Extension|method(final core::String* #this) → core::int*
+static method Extension|method(lowered final core::String* #this) → core::int*
return #this.{core::String::length};
-static method Extension|get#method(final core::String* #this) → () →* core::int*
+static method Extension|get#method(lowered final core::String* #this) → () →* core::int*
return () → core::int* => imp::Extension|method(#this);
diff --git a/pkg/front_end/testcases/extensions/import_via_prefix.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/import_via_prefix.dart.strong.transformed.expect
index 7030c4a..6ffdbd7 100644
--- a/pkg/front_end/testcases/extensions/import_via_prefix.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/import_via_prefix.dart.strong.transformed.expect
@@ -21,7 +21,7 @@
method method = imp::Extension|method;
tearoff method = imp::Extension|get#method;
}
-static method Extension|method(final core::String* #this) → core::int*
+static method Extension|method(lowered final core::String* #this) → core::int*
return #this.{core::String::length};
-static method Extension|get#method(final core::String* #this) → () →* core::int*
+static method Extension|get#method(lowered final core::String* #this) → () →* core::int*
return () → core::int* => imp::Extension|method(#this);
diff --git a/pkg/front_end/testcases/extensions/index.dart.outline.expect b/pkg/front_end/testcases/extensions/index.dart.outline.expect
index da0ddd9..8b0b1ca 100644
--- a/pkg/front_end/testcases/extensions/index.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/index.dart.outline.expect
@@ -25,9 +25,9 @@
operator [] = self::Extension|[];
operator []= = self::Extension|[]=;
}
-static method Extension|[]<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(final self::MapLike<self::Extension|[]::K*, self::Extension|[]::V*>* #this, core::Object* key) → self::Extension|[]::V*
+static method Extension|[]<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(lowered final self::MapLike<self::Extension|[]::K*, self::Extension|[]::V*>* #this, core::Object* key) → self::Extension|[]::V*
;
-static method Extension|[]=<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(final self::MapLike<self::Extension|[]=::K*, self::Extension|[]=::V*>* #this, self::Extension|[]=::K* key, self::Extension|[]=::V* value) → void
+static method Extension|[]=<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(lowered final self::MapLike<self::Extension|[]=::K*, self::Extension|[]=::V*>* #this, self::Extension|[]=::K* key, self::Extension|[]=::V* value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/index.dart.strong.expect b/pkg/front_end/testcases/extensions/index.dart.strong.expect
index 67d8909..f9f0d76 100644
--- a/pkg/front_end/testcases/extensions/index.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/index.dart.strong.expect
@@ -26,9 +26,9 @@
operator [] = self::Extension|[];
operator []= = self::Extension|[]=;
}
-static method Extension|[]<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(final self::MapLike<self::Extension|[]::K*, self::Extension|[]::V*>* #this, core::Object* key) → self::Extension|[]::V*
+static method Extension|[]<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(lowered final self::MapLike<self::Extension|[]::K*, self::Extension|[]::V*>* #this, core::Object* key) → self::Extension|[]::V*
return #this.{self::MapLike::get}(key);
-static method Extension|[]=<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(final self::MapLike<self::Extension|[]=::K*, self::Extension|[]=::V*>* #this, self::Extension|[]=::K* key, self::Extension|[]=::V* value) → void
+static method Extension|[]=<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(lowered final self::MapLike<self::Extension|[]=::K*, self::Extension|[]=::V*>* #this, self::Extension|[]=::K* key, self::Extension|[]=::V* value) → void
return #this.{self::MapLike::put}(key, value);
static method main() → dynamic {
self::implicit();
diff --git a/pkg/front_end/testcases/extensions/index.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/index.dart.strong.transformed.expect
index f406204..771f107 100644
--- a/pkg/front_end/testcases/extensions/index.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/index.dart.strong.transformed.expect
@@ -26,9 +26,9 @@
operator [] = self::Extension|[];
operator []= = self::Extension|[]=;
}
-static method Extension|[]<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(final self::MapLike<self::Extension|[]::K*, self::Extension|[]::V*>* #this, core::Object* key) → self::Extension|[]::V*
+static method Extension|[]<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(lowered final self::MapLike<self::Extension|[]::K*, self::Extension|[]::V*>* #this, core::Object* key) → self::Extension|[]::V*
return #this.{self::MapLike::get}(key);
-static method Extension|[]=<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(final self::MapLike<self::Extension|[]=::K*, self::Extension|[]=::V*>* #this, self::Extension|[]=::K* key, self::Extension|[]=::V* value) → void
+static method Extension|[]=<K extends core::Object* = dynamic, V extends core::Object* = dynamic>(lowered final self::MapLike<self::Extension|[]=::K*, self::Extension|[]=::V*>* #this, self::Extension|[]=::K* key, self::Extension|[]=::V* value) → void
return #this.{self::MapLike::put}(key, value);
static method main() → dynamic {
self::implicit();
diff --git a/pkg/front_end/testcases/extensions/instance_access.dart.outline.expect b/pkg/front_end/testcases/extensions/instance_access.dart.outline.expect
index 7bdfef2..36f5cf9 100644
--- a/pkg/front_end/testcases/extensions/instance_access.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/instance_access.dart.outline.expect
@@ -50,29 +50,29 @@
get property = self::Extension2|get#property;
set property = self::Extension2|set#property;
}
-static method Extension1|method(final self::Class1* #this) → core::int*
+static method Extension1|method(lowered final self::Class1* #this) → core::int*
;
-static method Extension1|get#method(final self::Class1* #this) → () →* core::int*
+static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int*
;
-static method Extension1|get#genericMethod(final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
-static method Extension1|get#property(final self::Class1* #this) → core::int*
+static method Extension1|get#property(lowered final self::Class1* #this) → core::int*
;
-static method Extension1|set#property(final self::Class1* #this, core::int* value) → void
+static method Extension1|set#property(lowered final self::Class1* #this, core::int* value) → void
;
-static method Extension2|method(final self::Class2* #this) → core::int*
+static method Extension2|method(lowered final self::Class2* #this) → core::int*
;
-static method Extension2|get#method(final self::Class2* #this) → () →* core::int*
+static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int*
;
-static method Extension2|get#genericMethod(final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
-static method Extension2|get#property(final self::Class2* #this) → core::int*
+static method Extension2|get#property(lowered final self::Class2* #this) → core::int*
;
-static method Extension2|set#property(final self::Class2* #this, core::int* value) → void
+static method Extension2|set#property(lowered final self::Class2* #this, core::int* value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/instance_access.dart.strong.expect b/pkg/front_end/testcases/extensions/instance_access.dart.strong.expect
index ca462d0..4fd4d22 100644
--- a/pkg/front_end/testcases/extensions/instance_access.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/instance_access.dart.strong.expect
@@ -52,44 +52,44 @@
get property = self::Extension2|get#property;
set property = self::Extension2|set#property;
}
-static method Extension1|method(final self::Class1* #this) → core::int* {
+static method Extension1|method(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.method on ${#this}");
return #this.{self::Class1::field};
}
-static method Extension1|get#method(final self::Class1* #this) → () →* core::int*
+static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
+static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::Extension1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method Extension1|get#genericMethod(final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
-static method Extension1|get#property(final self::Class1* #this) → core::int* {
+static method Extension1|get#property(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.property get on ${#this}");
return #this.{self::Class1::field};
}
-static method Extension1|set#property(final self::Class1* #this, core::int* value) → void {
+static method Extension1|set#property(lowered final self::Class1* #this, core::int* value) → void {
#this.{self::Class1::field} = value;
core::print("Extension1.property set(${value}) on ${#this}");
value = value.{core::num::+}(1);
}
-static method Extension2|method(final self::Class2* #this) → core::int* {
+static method Extension2|method(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.method on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(3);
}
-static method Extension2|get#method(final self::Class2* #this) → () →* core::int*
+static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
+static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::Extension2|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(4) as{TypeError} core::int*;
}
-static method Extension2|get#genericMethod(final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
-static method Extension2|get#property(final self::Class2* #this) → core::int* {
+static method Extension2|get#property(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.property get on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(5);
}
-static method Extension2|set#property(final self::Class2* #this, core::int* value) → void {
+static method Extension2|set#property(lowered final self::Class2* #this, core::int* value) → void {
core::print("Extension2.property set(${value}) on ${#this}");
value = value.{core::num::+}(1);
#this.{self::Class2::field} = value;
diff --git a/pkg/front_end/testcases/extensions/instance_access.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/instance_access.dart.strong.transformed.expect
index b117363..9d2558b 100644
--- a/pkg/front_end/testcases/extensions/instance_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/instance_access.dart.strong.transformed.expect
@@ -52,44 +52,44 @@
get property = self::Extension2|get#property;
set property = self::Extension2|set#property;
}
-static method Extension1|method(final self::Class1* #this) → core::int* {
+static method Extension1|method(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.method on ${#this}");
return #this.{self::Class1::field};
}
-static method Extension1|get#method(final self::Class1* #this) → () →* core::int*
+static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
+static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::Extension1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method Extension1|get#genericMethod(final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
-static method Extension1|get#property(final self::Class1* #this) → core::int* {
+static method Extension1|get#property(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.property get on ${#this}");
return #this.{self::Class1::field};
}
-static method Extension1|set#property(final self::Class1* #this, core::int* value) → void {
+static method Extension1|set#property(lowered final self::Class1* #this, core::int* value) → void {
#this.{self::Class1::field} = value;
core::print("Extension1.property set(${value}) on ${#this}");
value = value.{core::num::+}(1);
}
-static method Extension2|method(final self::Class2* #this) → core::int* {
+static method Extension2|method(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.method on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(3);
}
-static method Extension2|get#method(final self::Class2* #this) → () →* core::int*
+static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
+static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::Extension2|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(4) as{TypeError} core::int*;
}
-static method Extension2|get#genericMethod(final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
-static method Extension2|get#property(final self::Class2* #this) → core::int* {
+static method Extension2|get#property(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.property get on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(5);
}
-static method Extension2|set#property(final self::Class2* #this, core::int* value) → void {
+static method Extension2|set#property(lowered final self::Class2* #this, core::int* value) → void {
core::print("Extension2.property set(${value}) on ${#this}");
value = value.{core::num::+}(1);
#this.{self::Class2::field} = value;
diff --git a/pkg/front_end/testcases/extensions/instance_members.dart.outline.expect b/pkg/front_end/testcases/extensions/instance_members.dart.outline.expect
index 04be94e..63e9fce 100644
--- a/pkg/front_end/testcases/extensions/instance_members.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/instance_members.dart.outline.expect
@@ -46,29 +46,29 @@
method method2 = self::B2|method2;
tearoff method2 = self::B2|get#method2;
}
-static method A2|method1(final self::A1* #this) → self::A1*
+static method A2|method1(lowered final self::A1* #this) → self::A1*
;
-static method A2|get#method1(final self::A1* #this) → () →* self::A1*
+static method A2|get#method1(lowered final self::A1* #this) → () →* self::A1*
return () → self::A1* => self::A2|method1(#this);
-static method A2|method2<T extends core::Object* = dynamic>(final self::A1* #this, self::A2|method2::T* o) → self::A1*
+static method A2|method2<T extends core::Object* = dynamic>(lowered final self::A1* #this, self::A2|method2::T* o) → self::A1*
;
-static method A2|get#method2(final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
+static method A2|get#method2(lowered final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
return <T extends core::Object* = dynamic>(T* o) → self::A1* => self::A2|method2<T*>(#this, o);
-static method A2|method3<T extends core::Object* = dynamic>(final self::A1* #this, [self::A2|method3::T* o]) → self::A1*
+static method A2|method3<T extends core::Object* = dynamic>(lowered final self::A1* #this, [self::A2|method3::T* o]) → self::A1*
;
-static method A2|get#method3(final self::A1* #this) → <T extends core::Object* = dynamic>([T*]) →* self::A1*
+static method A2|get#method3(lowered final self::A1* #this) → <T extends core::Object* = dynamic>([T*]) →* self::A1*
return <T extends core::Object* = dynamic>([T* o]) → self::A1* => self::A2|method3<T*>(#this, o);
-static method A2|method4<T extends core::Object* = dynamic>(final self::A1* #this, {self::A2|method4::T* o}) → self::A1*
+static method A2|method4<T extends core::Object* = dynamic>(lowered final self::A1* #this, {self::A2|method4::T* o}) → self::A1*
;
-static method A2|get#method4(final self::A1* #this) → <T extends core::Object* = dynamic>({o: T*}) →* self::A1*
+static method A2|get#method4(lowered final self::A1* #this) → <T extends core::Object* = dynamic>({o: T*}) →* self::A1*
return <T extends core::Object* = dynamic>({T* o}) → self::A1* => self::A2|method4<T*>(#this, o: o);
-static method B2|method1<T extends core::Object* = dynamic>(final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>*
+static method B2|method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>*
;
-static method B2|get#method1<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
+static method B2|get#method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
return () → self::B1<self::B2|get#method1::T*>* => self::B2|method1<self::B2|get#method1::T*>(#this);
-static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>*
+static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>*
;
-static method B2|get#method2<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
+static method B2|get#method2<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
return <S extends core::Object* = dynamic>(S* o) → self::B1<self::B2|get#method2::T*>* => self::B2|method2<self::B2|get#method2::T*, S*>(#this, o);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/instance_members.dart.strong.expect b/pkg/front_end/testcases/extensions/instance_members.dart.strong.expect
index 72cb315d..d189b6d 100644
--- a/pkg/front_end/testcases/extensions/instance_members.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/instance_members.dart.strong.expect
@@ -48,39 +48,39 @@
method method2 = self::B2|method2;
tearoff method2 = self::B2|get#method2;
}
-static method A2|method1(final self::A1* #this) → self::A1* {
+static method A2|method1(lowered final self::A1* #this) → self::A1* {
return #this;
}
-static method A2|get#method1(final self::A1* #this) → () →* self::A1*
+static method A2|get#method1(lowered final self::A1* #this) → () →* self::A1*
return () → self::A1* => self::A2|method1(#this);
-static method A2|method2<T extends core::Object* = dynamic>(final self::A1* #this, self::A2|method2::T* o) → self::A1* {
+static method A2|method2<T extends core::Object* = dynamic>(lowered final self::A1* #this, self::A2|method2::T* o) → self::A1* {
core::print(o);
return #this;
}
-static method A2|get#method2(final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
+static method A2|get#method2(lowered final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
return <T extends core::Object* = dynamic>(T* o) → self::A1* => self::A2|method2<T*>(#this, o);
-static method A2|method3<T extends core::Object* = dynamic>(final self::A1* #this, [self::A2|method3::T* o = #C1]) → self::A1* {
+static method A2|method3<T extends core::Object* = dynamic>(lowered final self::A1* #this, [self::A2|method3::T* o = #C1]) → self::A1* {
core::print(o);
return #this;
}
-static method A2|get#method3(final self::A1* #this) → <T extends core::Object* = dynamic>([T*]) →* self::A1*
+static method A2|get#method3(lowered final self::A1* #this) → <T extends core::Object* = dynamic>([T*]) →* self::A1*
return <T extends core::Object* = dynamic>([T* o = #C1]) → self::A1* => self::A2|method3<T*>(#this, o);
-static method A2|method4<T extends core::Object* = dynamic>(final self::A1* #this, {self::A2|method4::T* o = #C1}) → self::A1* {
+static method A2|method4<T extends core::Object* = dynamic>(lowered final self::A1* #this, {self::A2|method4::T* o = #C1}) → self::A1* {
core::print(o);
return #this;
}
-static method A2|get#method4(final self::A1* #this) → <T extends core::Object* = dynamic>({o: T*}) →* self::A1*
+static method A2|get#method4(lowered final self::A1* #this) → <T extends core::Object* = dynamic>({o: T*}) →* self::A1*
return <T extends core::Object* = dynamic>({T* o = #C1}) → self::A1* => self::A2|method4<T*>(#this, o: o);
-static method B2|method1<T extends core::Object* = dynamic>(final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>* {
+static method B2|method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>* {
return #this;
}
-static method B2|get#method1<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
+static method B2|get#method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
return () → self::B1<self::B2|get#method1::T*>* => self::B2|method1<self::B2|get#method1::T*>(#this);
-static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>* {
+static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>* {
core::print(o);
return #this;
}
-static method B2|get#method2<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
+static method B2|get#method2<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
return <S extends core::Object* = dynamic>(S* o) → self::B1<self::B2|get#method2::T*>* => self::B2|method2<self::B2|get#method2::T*, S*>(#this, o);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/instance_members.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/instance_members.dart.strong.transformed.expect
index 72cb315d..d189b6d 100644
--- a/pkg/front_end/testcases/extensions/instance_members.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/instance_members.dart.strong.transformed.expect
@@ -48,39 +48,39 @@
method method2 = self::B2|method2;
tearoff method2 = self::B2|get#method2;
}
-static method A2|method1(final self::A1* #this) → self::A1* {
+static method A2|method1(lowered final self::A1* #this) → self::A1* {
return #this;
}
-static method A2|get#method1(final self::A1* #this) → () →* self::A1*
+static method A2|get#method1(lowered final self::A1* #this) → () →* self::A1*
return () → self::A1* => self::A2|method1(#this);
-static method A2|method2<T extends core::Object* = dynamic>(final self::A1* #this, self::A2|method2::T* o) → self::A1* {
+static method A2|method2<T extends core::Object* = dynamic>(lowered final self::A1* #this, self::A2|method2::T* o) → self::A1* {
core::print(o);
return #this;
}
-static method A2|get#method2(final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
+static method A2|get#method2(lowered final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
return <T extends core::Object* = dynamic>(T* o) → self::A1* => self::A2|method2<T*>(#this, o);
-static method A2|method3<T extends core::Object* = dynamic>(final self::A1* #this, [self::A2|method3::T* o = #C1]) → self::A1* {
+static method A2|method3<T extends core::Object* = dynamic>(lowered final self::A1* #this, [self::A2|method3::T* o = #C1]) → self::A1* {
core::print(o);
return #this;
}
-static method A2|get#method3(final self::A1* #this) → <T extends core::Object* = dynamic>([T*]) →* self::A1*
+static method A2|get#method3(lowered final self::A1* #this) → <T extends core::Object* = dynamic>([T*]) →* self::A1*
return <T extends core::Object* = dynamic>([T* o = #C1]) → self::A1* => self::A2|method3<T*>(#this, o);
-static method A2|method4<T extends core::Object* = dynamic>(final self::A1* #this, {self::A2|method4::T* o = #C1}) → self::A1* {
+static method A2|method4<T extends core::Object* = dynamic>(lowered final self::A1* #this, {self::A2|method4::T* o = #C1}) → self::A1* {
core::print(o);
return #this;
}
-static method A2|get#method4(final self::A1* #this) → <T extends core::Object* = dynamic>({o: T*}) →* self::A1*
+static method A2|get#method4(lowered final self::A1* #this) → <T extends core::Object* = dynamic>({o: T*}) →* self::A1*
return <T extends core::Object* = dynamic>({T* o = #C1}) → self::A1* => self::A2|method4<T*>(#this, o: o);
-static method B2|method1<T extends core::Object* = dynamic>(final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>* {
+static method B2|method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>* {
return #this;
}
-static method B2|get#method1<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
+static method B2|get#method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
return () → self::B1<self::B2|get#method1::T*>* => self::B2|method1<self::B2|get#method1::T*>(#this);
-static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>* {
+static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>* {
core::print(o);
return #this;
}
-static method B2|get#method2<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
+static method B2|get#method2<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
return <S extends core::Object* = dynamic>(S* o) → self::B1<self::B2|get#method2::T*>* => self::B2|method2<self::B2|get#method2::T*, S*>(#this, o);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/instance_tearoff.dart.outline.expect b/pkg/front_end/testcases/extensions/instance_tearoff.dart.outline.expect
index 08380b2..03756cc 100644
--- a/pkg/front_end/testcases/extensions/instance_tearoff.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/instance_tearoff.dart.outline.expect
@@ -46,21 +46,21 @@
method genericMethod = self::Extension2|genericMethod;
tearoff genericMethod = self::Extension2|get#genericMethod;
}
-static method Extension1|method(final self::Class1* #this) → core::int*
+static method Extension1|method(lowered final self::Class1* #this) → core::int*
;
-static method Extension1|get#method(final self::Class1* #this) → () →* core::int*
+static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int*
;
-static method Extension1|get#genericMethod(final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
-static method Extension2|method(final self::Class2* #this) → core::int*
+static method Extension2|method(lowered final self::Class2* #this) → core::int*
;
-static method Extension2|get#method(final self::Class2* #this) → () →* core::int*
+static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int*
;
-static method Extension2|get#genericMethod(final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/instance_tearoff.dart.strong.expect b/pkg/front_end/testcases/extensions/instance_tearoff.dart.strong.expect
index 9508bad..3e30930 100644
--- a/pkg/front_end/testcases/extensions/instance_tearoff.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/instance_tearoff.dart.strong.expect
@@ -48,29 +48,29 @@
method genericMethod = self::Extension2|genericMethod;
tearoff genericMethod = self::Extension2|get#genericMethod;
}
-static method Extension1|method(final self::Class1* #this) → core::int* {
+static method Extension1|method(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.method on ${#this}");
return #this.{self::Class1::field};
}
-static method Extension1|get#method(final self::Class1* #this) → () →* core::int*
+static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
+static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::Extension1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method Extension1|get#genericMethod(final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
-static method Extension2|method(final self::Class2* #this) → core::int* {
+static method Extension2|method(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.method on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(2);
}
-static method Extension2|get#method(final self::Class2* #this) → () →* core::int*
+static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
+static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::Extension2|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(3) as{TypeError} core::int*;
}
-static method Extension2|get#genericMethod(final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::testExtension1();
diff --git a/pkg/front_end/testcases/extensions/instance_tearoff.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/instance_tearoff.dart.strong.transformed.expect
index aabacb2..70b8f9f 100644
--- a/pkg/front_end/testcases/extensions/instance_tearoff.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/instance_tearoff.dart.strong.transformed.expect
@@ -48,29 +48,29 @@
method genericMethod = self::Extension2|genericMethod;
tearoff genericMethod = self::Extension2|get#genericMethod;
}
-static method Extension1|method(final self::Class1* #this) → core::int* {
+static method Extension1|method(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.method on ${#this}");
return #this.{self::Class1::field};
}
-static method Extension1|get#method(final self::Class1* #this) → () →* core::int*
+static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
+static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::Extension1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method Extension1|get#genericMethod(final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
-static method Extension2|method(final self::Class2* #this) → core::int* {
+static method Extension2|method(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.method on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(2);
}
-static method Extension2|get#method(final self::Class2* #this) → () →* core::int*
+static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
+static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::Extension2|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(3) as{TypeError} core::int*;
}
-static method Extension2|get#genericMethod(final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::testExtension1();
diff --git a/pkg/front_end/testcases/extensions/internal_resolution.dart.outline.expect b/pkg/front_end/testcases/extensions/internal_resolution.dart.outline.expect
index 1c64152..24d15c6 100644
--- a/pkg/front_end/testcases/extensions/internal_resolution.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/internal_resolution.dart.outline.expect
@@ -25,13 +25,13 @@
get property2 = self::_extension#1|get#property2;
set property2 = self::_extension#1|set#property2;
}
-static method _extension#0|get#property1(final self::Class* #this) → core::int*
+static method _extension#0|get#property1(lowered final self::Class* #this) → core::int*
;
-static method _extension#0|set#property1(final self::Class* #this, core::int* value) → void
+static method _extension#0|set#property1(lowered final self::Class* #this, core::int* value) → void
;
-static method _extension#1|get#property2(final self::Class* #this) → core::int*
+static method _extension#1|get#property2(lowered final self::Class* #this) → core::int*
;
-static method _extension#1|set#property2(final self::Class* #this, core::int* value) → void
+static method _extension#1|set#property2(lowered final self::Class* #this, core::int* value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/internal_resolution.dart.strong.expect b/pkg/front_end/testcases/extensions/internal_resolution.dart.strong.expect
index dadb2db..810c73b 100644
--- a/pkg/front_end/testcases/extensions/internal_resolution.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/internal_resolution.dart.strong.expect
@@ -26,13 +26,13 @@
get property2 = self::_extension#1|get#property2;
set property2 = self::_extension#1|set#property2;
}
-static method _extension#0|get#property1(final self::Class* #this) → core::int*
+static method _extension#0|get#property1(lowered final self::Class* #this) → core::int*
return self::_extension#1|get#property2(#this);
-static method _extension#0|set#property1(final self::Class* #this, core::int* value) → void
+static method _extension#0|set#property1(lowered final self::Class* #this, core::int* value) → void
return #this.{self::Class::field} = value;
-static method _extension#1|get#property2(final self::Class* #this) → core::int*
+static method _extension#1|get#property2(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method _extension#1|set#property2(final self::Class* #this, core::int* value) → void
+static method _extension#1|set#property2(lowered final self::Class* #this, core::int* value) → void
return let final core::int* #t1 = value in let final void #t2 = self::_extension#0|set#property1(#this, #t1) in #t1;
static method main() → dynamic {
self::Class* c = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/internal_resolution.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/internal_resolution.dart.strong.transformed.expect
index d9024f1..ee08d45 100644
--- a/pkg/front_end/testcases/extensions/internal_resolution.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/internal_resolution.dart.strong.transformed.expect
@@ -26,13 +26,13 @@
get property2 = self::_extension#1|get#property2;
set property2 = self::_extension#1|set#property2;
}
-static method _extension#0|get#property1(final self::Class* #this) → core::int*
+static method _extension#0|get#property1(lowered final self::Class* #this) → core::int*
return self::_extension#1|get#property2(#this);
-static method _extension#0|set#property1(final self::Class* #this, core::int* value) → void
+static method _extension#0|set#property1(lowered final self::Class* #this, core::int* value) → void
return #this.{self::Class::field} = value;
-static method _extension#1|get#property2(final self::Class* #this) → core::int*
+static method _extension#1|get#property2(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method _extension#1|set#property2(final self::Class* #this, core::int* value) → void
+static method _extension#1|set#property2(lowered final self::Class* #this, core::int* value) → void
return let final core::int* #t1 = value in let final void #t2 = self::_extension#0|set#property1(#this, #t1) in #t1;
static method main() → dynamic {
self::Class* c = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.outline.expect b/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.outline.expect
index 0b7201a..064d285 100644
--- a/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.outline.expect
@@ -38,13 +38,13 @@
method method = self::GenericExtension|method;
tearoff method = self::GenericExtension|get#method;
}
-static method Extension|method(final self::Class* #this, dynamic a) → dynamic
+static method Extension|method(lowered final self::Class* #this, dynamic a) → dynamic
;
-static method Extension|get#method(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|get#method(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic a) → dynamic => self::Extension|method(#this, a);
-static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this) → dynamic
+static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this) → dynamic
;
-static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → () →* dynamic
+static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.strong.expect b/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.strong.expect
index 431609f..3fb95ef 100644
--- a/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.strong.expect
@@ -162,11 +162,11 @@
method method = self::GenericExtension|method;
tearoff method = self::GenericExtension|get#method;
}
-static method Extension|method(final self::Class* #this, dynamic a) → dynamic {}
-static method Extension|get#method(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|method(lowered final self::Class* #this, dynamic a) → dynamic {}
+static method Extension|get#method(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic a) → dynamic => self::Extension|method(#this, a);
-static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this) → dynamic {}
-static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → () →* dynamic
+static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this) → dynamic {}
+static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this);
static method main() → dynamic {
core::String* s = "";
diff --git a/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.strong.transformed.expect
index 431609f..3fb95ef 100644
--- a/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/invalid_explicit_access.dart.strong.transformed.expect
@@ -162,11 +162,11 @@
method method = self::GenericExtension|method;
tearoff method = self::GenericExtension|get#method;
}
-static method Extension|method(final self::Class* #this, dynamic a) → dynamic {}
-static method Extension|get#method(final self::Class* #this) → (dynamic) →* dynamic
+static method Extension|method(lowered final self::Class* #this, dynamic a) → dynamic {}
+static method Extension|get#method(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic a) → dynamic => self::Extension|method(#this, a);
-static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this) → dynamic {}
-static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → () →* dynamic
+static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this) → dynamic {}
+static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this);
static method main() → dynamic {
core::String* s = "";
diff --git a/pkg/front_end/testcases/extensions/issue38713.dart.outline.expect b/pkg/front_end/testcases/extensions/issue38713.dart.outline.expect
index b1e807a..ca41f17 100644
--- a/pkg/front_end/testcases/extensions/issue38713.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue38713.dart.outline.expect
@@ -32,7 +32,7 @@
;
static set C|property3(core::int* x) → void
;
-static method C|get#property3(final core::int* #this) → core::int*
+static method C|get#property3(lowered final core::int* #this) → core::int*
;
static method main() → void
;
diff --git a/pkg/front_end/testcases/extensions/issue38713.dart.strong.expect b/pkg/front_end/testcases/extensions/issue38713.dart.strong.expect
index 3f56d65..9108ed9 100644
--- a/pkg/front_end/testcases/extensions/issue38713.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue38713.dart.strong.expect
@@ -30,7 +30,7 @@
static field core::int* C|property2;
static set C|property2(core::int* x) → void {}
static set C|property3(core::int* x) → void {}
-static method C|get#property3(final core::int* #this) → core::int*
+static method C|get#property3(lowered final core::int* #this) → core::int*
return 1;
static method main() → void {
self::C|property2;
diff --git a/pkg/front_end/testcases/extensions/issue38713.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue38713.dart.strong.transformed.expect
index 3f56d65..9108ed9 100644
--- a/pkg/front_end/testcases/extensions/issue38713.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue38713.dart.strong.transformed.expect
@@ -30,7 +30,7 @@
static field core::int* C|property2;
static set C|property2(core::int* x) → void {}
static set C|property3(core::int* x) → void {}
-static method C|get#property3(final core::int* #this) → core::int*
+static method C|get#property3(lowered final core::int* #this) → core::int*
return 1;
static method main() → void {
self::C|property2;
diff --git a/pkg/front_end/testcases/extensions/issue38745.dart.outline.expect b/pkg/front_end/testcases/extensions/issue38745.dart.outline.expect
index 166ad22..8777198 100644
--- a/pkg/front_end/testcases/extensions/issue38745.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue38745.dart.outline.expect
@@ -54,13 +54,13 @@
static field core::int* ext|field;
static final field core::int* ext|property;
static final field core::int* ext|property2;
-static method ext|set#property<T extends core::Object* = dynamic>(final self::C<self::ext|set#property::T*>* #this, core::int* value) → void
+static method ext|set#property<T extends core::Object* = dynamic>(lowered final self::C<self::ext|set#property::T*>* #this, core::int* value) → void
;
static set ext|property2(core::int* value) → void
;
-static method ext|method<T extends core::Object* = dynamic>(final self::C<self::ext|method::T*>* #this) → dynamic
+static method ext|method<T extends core::Object* = dynamic>(lowered final self::C<self::ext|method::T*>* #this) → dynamic
;
-static method ext|get#method<T extends core::Object* = dynamic>(final self::C<self::ext|get#method::T*>* #this) → () →* dynamic
+static method ext|get#method<T extends core::Object* = dynamic>(lowered final self::C<self::ext|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::ext|method<self::ext|get#method::T*>(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/issue38745.dart.strong.expect b/pkg/front_end/testcases/extensions/issue38745.dart.strong.expect
index 40c2392..13017ea 100644
--- a/pkg/front_end/testcases/extensions/issue38745.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue38745.dart.strong.expect
@@ -125,9 +125,9 @@
static field core::int* ext|field;
static final field core::int* ext|property = 42;
static final field core::int* ext|property2 = 42;
-static method ext|set#property<T extends core::Object* = dynamic>(final self::C<self::ext|set#property::T*>* #this, core::int* value) → void {}
+static method ext|set#property<T extends core::Object* = dynamic>(lowered final self::C<self::ext|set#property::T*>* #this, core::int* value) → void {}
static set ext|property2(core::int* value) → void {}
-static method ext|method<T extends core::Object* = dynamic>(final self::C<self::ext|method::T*>* #this) → dynamic {
+static method ext|method<T extends core::Object* = dynamic>(lowered final self::C<self::ext|method::T*>* #this) → dynamic {
invalid-expression "pkg/front_end/testcases/extensions/issue38745.dart:20:5: Error: Getter not found: 'field'.
field;
^^^^^";
@@ -145,7 +145,7 @@
property2 = 23;
^^^^^^^^^";
}
-static method ext|get#method<T extends core::Object* = dynamic>(final self::C<self::ext|get#method::T*>* #this) → () →* dynamic
+static method ext|get#method<T extends core::Object* = dynamic>(lowered final self::C<self::ext|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::ext|method<self::ext|get#method::T*>(#this);
static method main() → dynamic {}
static method errors() → dynamic {
diff --git a/pkg/front_end/testcases/extensions/issue38745.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue38745.dart.strong.transformed.expect
index 40c2392..13017ea 100644
--- a/pkg/front_end/testcases/extensions/issue38745.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue38745.dart.strong.transformed.expect
@@ -125,9 +125,9 @@
static field core::int* ext|field;
static final field core::int* ext|property = 42;
static final field core::int* ext|property2 = 42;
-static method ext|set#property<T extends core::Object* = dynamic>(final self::C<self::ext|set#property::T*>* #this, core::int* value) → void {}
+static method ext|set#property<T extends core::Object* = dynamic>(lowered final self::C<self::ext|set#property::T*>* #this, core::int* value) → void {}
static set ext|property2(core::int* value) → void {}
-static method ext|method<T extends core::Object* = dynamic>(final self::C<self::ext|method::T*>* #this) → dynamic {
+static method ext|method<T extends core::Object* = dynamic>(lowered final self::C<self::ext|method::T*>* #this) → dynamic {
invalid-expression "pkg/front_end/testcases/extensions/issue38745.dart:20:5: Error: Getter not found: 'field'.
field;
^^^^^";
@@ -145,7 +145,7 @@
property2 = 23;
^^^^^^^^^";
}
-static method ext|get#method<T extends core::Object* = dynamic>(final self::C<self::ext|get#method::T*>* #this) → () →* dynamic
+static method ext|get#method<T extends core::Object* = dynamic>(lowered final self::C<self::ext|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::ext|method<self::ext|get#method::T*>(#this);
static method main() → dynamic {}
static method errors() → dynamic {
diff --git a/pkg/front_end/testcases/extensions/issue38750.dart.outline.expect b/pkg/front_end/testcases/extensions/issue38750.dart.outline.expect
index 30d8538..68e7bae 100644
--- a/pkg/front_end/testcases/extensions/issue38750.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue38750.dart.outline.expect
@@ -39,9 +39,9 @@
method _bar = self2::ext|_bar;
tearoff _bar = self2::ext|get#_bar;
}
-static method ext|_bar(final self2::C* #this) → dynamic
+static method ext|_bar(lowered final self2::C* #this) → dynamic
;
-static method ext|get#_bar(final self2::C* #this) → () →* dynamic
+static method ext|get#_bar(lowered final self2::C* #this) → () →* dynamic
return () → dynamic => self2::ext|_bar(#this);
library;
diff --git a/pkg/front_end/testcases/extensions/issue38750.dart.strong.expect b/pkg/front_end/testcases/extensions/issue38750.dart.strong.expect
index ed20ca4..3935f4db 100644
--- a/pkg/front_end/testcases/extensions/issue38750.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue38750.dart.strong.expect
@@ -82,7 +82,7 @@
method _bar = iss::ext|_bar;
tearoff _bar = iss::ext|get#_bar;
}
-static method ext|_bar(final iss::C* #this) → dynamic {
+static method ext|_bar(lowered final iss::C* #this) → dynamic {
try {
throw "producing a stack trace";
}
@@ -90,7 +90,7 @@
core::print(s);
}
}
-static method ext|get#_bar(final iss::C* #this) → () →* dynamic
+static method ext|get#_bar(lowered final iss::C* #this) → () →* dynamic
return () → dynamic => iss::ext|_bar(#this);
library;
diff --git a/pkg/front_end/testcases/extensions/issue38750.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue38750.dart.strong.transformed.expect
index ed20ca4..3935f4db 100644
--- a/pkg/front_end/testcases/extensions/issue38750.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue38750.dart.strong.transformed.expect
@@ -82,7 +82,7 @@
method _bar = iss::ext|_bar;
tearoff _bar = iss::ext|get#_bar;
}
-static method ext|_bar(final iss::C* #this) → dynamic {
+static method ext|_bar(lowered final iss::C* #this) → dynamic {
try {
throw "producing a stack trace";
}
@@ -90,7 +90,7 @@
core::print(s);
}
}
-static method ext|get#_bar(final iss::C* #this) → () →* dynamic
+static method ext|get#_bar(lowered final iss::C* #this) → () →* dynamic
return () → dynamic => iss::ext|_bar(#this);
library;
diff --git a/pkg/front_end/testcases/extensions/issue38755.dart.outline.expect b/pkg/front_end/testcases/extensions/issue38755.dart.outline.expect
index f901d42..13c7102 100644
--- a/pkg/front_end/testcases/extensions/issue38755.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue38755.dart.outline.expect
@@ -7,9 +7,9 @@
tearoff myMap = self::A|get#myMap;
}
static final field core::List<core::String*>* list;
-static method A|myMap<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final core::List<self::A|myMap::T*>* #this, (self::A|myMap::T*) →* self::A|myMap::R* block) → core::List<self::A|myMap::R*>*
+static method A|myMap<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final core::List<self::A|myMap::T*>* #this, (self::A|myMap::T*) →* self::A|myMap::R* block) → core::List<self::A|myMap::R*>*
;
-static method A|get#myMap<T extends core::Object* = dynamic>(final core::List<self::A|get#myMap::T*>* #this) → <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R*) →* core::List<R*>*
+static method A|get#myMap<T extends core::Object* = dynamic>(lowered final core::List<self::A|get#myMap::T*>* #this) → <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R*) →* core::List<R*>*
return <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R* block) → core::List<R*>* => self::A|myMap<self::A|get#myMap::T*, R*>(#this, block);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/issue38755.dart.strong.expect b/pkg/front_end/testcases/extensions/issue38755.dart.strong.expect
index 31b4214..724ef26 100644
--- a/pkg/front_end/testcases/extensions/issue38755.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue38755.dart.strong.expect
@@ -7,10 +7,10 @@
tearoff myMap = self::A|get#myMap;
}
static final field core::List<core::String*>* list = self::A|myMap<core::String*, core::String*>(<core::String*>["a", "b", "c"], (core::String* it) → core::String* => it);
-static method A|myMap<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final core::List<self::A|myMap::T*>* #this, (self::A|myMap::T*) →* self::A|myMap::R* block) → core::List<self::A|myMap::R*>* {
+static method A|myMap<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final core::List<self::A|myMap::T*>* #this, (self::A|myMap::T*) →* self::A|myMap::R* block) → core::List<self::A|myMap::R*>* {
return #this.{core::Iterable::map}<self::A|myMap::R*>(block).{core::Iterable::toList}();
}
-static method A|get#myMap<T extends core::Object* = dynamic>(final core::List<self::A|get#myMap::T*>* #this) → <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R*) →* core::List<R*>*
+static method A|get#myMap<T extends core::Object* = dynamic>(lowered final core::List<self::A|get#myMap::T*>* #this) → <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R*) →* core::List<R*>*
return <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R* block) → core::List<R*>* => self::A|myMap<self::A|get#myMap::T*, R*>(#this, block);
static method main() → dynamic {
core::print(self::list);
diff --git a/pkg/front_end/testcases/extensions/issue38755.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue38755.dart.strong.transformed.expect
index 31b4214..724ef26 100644
--- a/pkg/front_end/testcases/extensions/issue38755.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue38755.dart.strong.transformed.expect
@@ -7,10 +7,10 @@
tearoff myMap = self::A|get#myMap;
}
static final field core::List<core::String*>* list = self::A|myMap<core::String*, core::String*>(<core::String*>["a", "b", "c"], (core::String* it) → core::String* => it);
-static method A|myMap<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final core::List<self::A|myMap::T*>* #this, (self::A|myMap::T*) →* self::A|myMap::R* block) → core::List<self::A|myMap::R*>* {
+static method A|myMap<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final core::List<self::A|myMap::T*>* #this, (self::A|myMap::T*) →* self::A|myMap::R* block) → core::List<self::A|myMap::R*>* {
return #this.{core::Iterable::map}<self::A|myMap::R*>(block).{core::Iterable::toList}();
}
-static method A|get#myMap<T extends core::Object* = dynamic>(final core::List<self::A|get#myMap::T*>* #this) → <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R*) →* core::List<R*>*
+static method A|get#myMap<T extends core::Object* = dynamic>(lowered final core::List<self::A|get#myMap::T*>* #this) → <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R*) →* core::List<R*>*
return <R extends core::Object* = dynamic>((self::A|get#myMap::T*) →* R* block) → core::List<R*>* => self::A|myMap<self::A|get#myMap::T*, R*>(#this, block);
static method main() → dynamic {
core::print(self::list);
diff --git a/pkg/front_end/testcases/extensions/issue38915.dart.outline.expect b/pkg/front_end/testcases/extensions/issue38915.dart.outline.expect
index 6231a80..0d8feca 100644
--- a/pkg/front_end/testcases/extensions/issue38915.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue38915.dart.outline.expect
@@ -26,21 +26,21 @@
method method4 = self::Extension|method4;
tearoff method4 = self::Extension|get#method4;
}
-static method Extension|method1(final self::Class* #this, {core::bool* b, core::String* s}) → void
+static method Extension|method1(lowered final self::Class* #this, {core::bool* b, core::String* s}) → void
;
-static method Extension|get#method1(final self::Class* #this) → ({b: core::bool*, s: core::String*}) →* void
+static method Extension|get#method1(lowered final self::Class* #this) → ({b: core::bool*, s: core::String*}) →* void
return ({core::bool* b, core::String* s}) → void => self::Extension|method1(#this, b: b, s: s);
-static method Extension|method2(final self::Class* #this, [core::bool* b, core::String* s]) → void
+static method Extension|method2(lowered final self::Class* #this, [core::bool* b, core::String* s]) → void
;
-static method Extension|get#method2(final self::Class* #this) → ([core::bool*, core::String*]) →* void
+static method Extension|get#method2(lowered final self::Class* #this) → ([core::bool*, core::String*]) →* void
return ([core::bool* b, core::String* s]) → void => self::Extension|method2(#this, b, s);
-static method Extension|method3(final self::Class* #this, core::int* i, {core::bool* b, core::String* s}) → void
+static method Extension|method3(lowered final self::Class* #this, core::int* i, {core::bool* b, core::String* s}) → void
;
-static method Extension|get#method3(final self::Class* #this) → (core::int*, {b: core::bool*, s: core::String*}) →* void
+static method Extension|get#method3(lowered final self::Class* #this) → (core::int*, {b: core::bool*, s: core::String*}) →* void
return (core::int* i, {core::bool* b, core::String* s}) → void => self::Extension|method3(#this, i, b: b, s: s);
-static method Extension|method4(final self::Class* #this, core::int* i, [core::bool* b, core::String* s]) → void
+static method Extension|method4(lowered final self::Class* #this, core::int* i, [core::bool* b, core::String* s]) → void
;
-static method Extension|get#method4(final self::Class* #this) → (core::int*, [core::bool*, core::String*]) →* void
+static method Extension|get#method4(lowered final self::Class* #this) → (core::int*, [core::bool*, core::String*]) →* void
return (core::int* i, [core::bool* b, core::String* s]) → void => self::Extension|method4(#this, i, b, s);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/issue38915.dart.strong.expect b/pkg/front_end/testcases/extensions/issue38915.dart.strong.expect
index 59a9add..ab76811 100644
--- a/pkg/front_end/testcases/extensions/issue38915.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue38915.dart.strong.expect
@@ -27,19 +27,19 @@
method method4 = self::Extension|method4;
tearoff method4 = self::Extension|get#method4;
}
-static method Extension|method1(final self::Class* #this, {core::bool* b = #C1, core::String* s = #C2}) → void
+static method Extension|method1(lowered final self::Class* #this, {core::bool* b = #C1, core::String* s = #C2}) → void
return null;
-static method Extension|get#method1(final self::Class* #this) → ({b: core::bool*, s: core::String*}) →* void
+static method Extension|get#method1(lowered final self::Class* #this) → ({b: core::bool*, s: core::String*}) →* void
return ({core::bool* b = #C1, core::String* s = #C2}) → void => self::Extension|method1(#this, b: b, s: s);
-static method Extension|method2(final self::Class* #this, [core::bool* b = #C1, core::String* s = #C2]) → void
+static method Extension|method2(lowered final self::Class* #this, [core::bool* b = #C1, core::String* s = #C2]) → void
return null;
-static method Extension|get#method2(final self::Class* #this) → ([core::bool*, core::String*]) →* void
+static method Extension|get#method2(lowered final self::Class* #this) → ([core::bool*, core::String*]) →* void
return ([core::bool* b = #C1, core::String* s = #C2]) → void => self::Extension|method2(#this, b, s);
-static method Extension|method3(final self::Class* #this, core::int* i, {core::bool* b = #C1, core::String* s = #C2}) → void {}
-static method Extension|get#method3(final self::Class* #this) → (core::int*, {b: core::bool*, s: core::String*}) →* void
+static method Extension|method3(lowered final self::Class* #this, core::int* i, {core::bool* b = #C1, core::String* s = #C2}) → void {}
+static method Extension|get#method3(lowered final self::Class* #this) → (core::int*, {b: core::bool*, s: core::String*}) →* void
return (core::int* i, {core::bool* b = #C1, core::String* s = #C2}) → void => self::Extension|method3(#this, i, b: b, s: s);
-static method Extension|method4(final self::Class* #this, core::int* i, [core::bool* b = #C1, core::String* s = #C2]) → void {}
-static method Extension|get#method4(final self::Class* #this) → (core::int*, [core::bool*, core::String*]) →* void
+static method Extension|method4(lowered final self::Class* #this, core::int* i, [core::bool* b = #C1, core::String* s = #C2]) → void {}
+static method Extension|get#method4(lowered final self::Class* #this) → (core::int*, [core::bool*, core::String*]) →* void
return (core::int* i, [core::bool* b = #C1, core::String* s = #C2]) → void => self::Extension|method4(#this, i, b, s);
static method main() → dynamic {
self::Class* c = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/issue38915.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue38915.dart.strong.transformed.expect
index 59a9add..ab76811 100644
--- a/pkg/front_end/testcases/extensions/issue38915.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue38915.dart.strong.transformed.expect
@@ -27,19 +27,19 @@
method method4 = self::Extension|method4;
tearoff method4 = self::Extension|get#method4;
}
-static method Extension|method1(final self::Class* #this, {core::bool* b = #C1, core::String* s = #C2}) → void
+static method Extension|method1(lowered final self::Class* #this, {core::bool* b = #C1, core::String* s = #C2}) → void
return null;
-static method Extension|get#method1(final self::Class* #this) → ({b: core::bool*, s: core::String*}) →* void
+static method Extension|get#method1(lowered final self::Class* #this) → ({b: core::bool*, s: core::String*}) →* void
return ({core::bool* b = #C1, core::String* s = #C2}) → void => self::Extension|method1(#this, b: b, s: s);
-static method Extension|method2(final self::Class* #this, [core::bool* b = #C1, core::String* s = #C2]) → void
+static method Extension|method2(lowered final self::Class* #this, [core::bool* b = #C1, core::String* s = #C2]) → void
return null;
-static method Extension|get#method2(final self::Class* #this) → ([core::bool*, core::String*]) →* void
+static method Extension|get#method2(lowered final self::Class* #this) → ([core::bool*, core::String*]) →* void
return ([core::bool* b = #C1, core::String* s = #C2]) → void => self::Extension|method2(#this, b, s);
-static method Extension|method3(final self::Class* #this, core::int* i, {core::bool* b = #C1, core::String* s = #C2}) → void {}
-static method Extension|get#method3(final self::Class* #this) → (core::int*, {b: core::bool*, s: core::String*}) →* void
+static method Extension|method3(lowered final self::Class* #this, core::int* i, {core::bool* b = #C1, core::String* s = #C2}) → void {}
+static method Extension|get#method3(lowered final self::Class* #this) → (core::int*, {b: core::bool*, s: core::String*}) →* void
return (core::int* i, {core::bool* b = #C1, core::String* s = #C2}) → void => self::Extension|method3(#this, i, b: b, s: s);
-static method Extension|method4(final self::Class* #this, core::int* i, [core::bool* b = #C1, core::String* s = #C2]) → void {}
-static method Extension|get#method4(final self::Class* #this) → (core::int*, [core::bool*, core::String*]) →* void
+static method Extension|method4(lowered final self::Class* #this, core::int* i, [core::bool* b = #C1, core::String* s = #C2]) → void {}
+static method Extension|get#method4(lowered final self::Class* #this) → (core::int*, [core::bool*, core::String*]) →* void
return (core::int* i, [core::bool* b = #C1, core::String* s = #C2]) → void => self::Extension|method4(#this, i, b, s);
static method main() → dynamic {
self::Class* c = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/issue39527.dart.outline.expect b/pkg/front_end/testcases/extensions/issue39527.dart.outline.expect
index 1055553..32185bf 100644
--- a/pkg/front_end/testcases/extensions/issue39527.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue39527.dart.outline.expect
@@ -22,11 +22,11 @@
operator []= = self::Extension1|[]=;
operator - = self::Extension1|-;
}
-static method Extension1|[](final self::C* #this, core::int* index) → self::C*
+static method Extension1|[](lowered final self::C* #this, core::int* index) → self::C*
;
-static method Extension1|[]=(final self::C* #this, core::int* index, self::C* other) → void
+static method Extension1|[]=(lowered final self::C* #this, core::int* index, self::C* other) → void
;
-static method Extension1|-(final self::C* #this, core::int* val) → self::C*
+static method Extension1|-(lowered final self::C* #this, core::int* val) → self::C*
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/issue39527.dart.strong.expect b/pkg/front_end/testcases/extensions/issue39527.dart.strong.expect
index 32a70a4..8131831 100644
--- a/pkg/front_end/testcases/extensions/issue39527.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue39527.dart.strong.expect
@@ -23,13 +23,13 @@
operator []= = self::Extension1|[]=;
operator - = self::Extension1|-;
}
-static method Extension1|[](final self::C* #this, core::int* index) → self::C*
+static method Extension1|[](lowered final self::C* #this, core::int* index) → self::C*
return let final self::C* #t1 = #this in block {
let final self::C* #t2 = #t1 in #t2.{self::C::value} = #t2.{self::C::value}.{core::num::+}(index.{core::num::+}(1));
} =>#t1;
-static method Extension1|[]=(final self::C* #this, core::int* index, self::C* other) → void
+static method Extension1|[]=(lowered final self::C* #this, core::int* index, self::C* other) → void
return let final self::C* #t3 = #this in #t3.{self::C::value} = #t3.{self::C::value}.{core::num::+}(other.{self::C::value}.{core::num::+}(index).{core::num::+}(1));
-static method Extension1|-(final self::C* #this, core::int* val) → self::C*
+static method Extension1|-(lowered final self::C* #this, core::int* val) → self::C*
return #this;
static method main() → dynamic {
self::C* c = new self::C::•();
diff --git a/pkg/front_end/testcases/extensions/issue39527.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue39527.dart.strong.transformed.expect
index a4adb78..85bc50b 100644
--- a/pkg/front_end/testcases/extensions/issue39527.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue39527.dart.strong.transformed.expect
@@ -23,13 +23,13 @@
operator []= = self::Extension1|[]=;
operator - = self::Extension1|-;
}
-static method Extension1|[](final self::C* #this, core::int* index) → self::C*
+static method Extension1|[](lowered final self::C* #this, core::int* index) → self::C*
return let final self::C* #t1 = #this in block {
let final self::C* #t2 = #t1 in #t2.{self::C::value} = #t2.{self::C::value}.{core::num::+}(index.{core::num::+}(1));
} =>#t1;
-static method Extension1|[]=(final self::C* #this, core::int* index, self::C* other) → void
+static method Extension1|[]=(lowered final self::C* #this, core::int* index, self::C* other) → void
return let final self::C* #t3 = #this in #t3.{self::C::value} = #t3.{self::C::value}.{core::num::+}(other.{self::C::value}.{core::num::+}(index).{core::num::+}(1));
-static method Extension1|-(final self::C* #this, core::int* val) → self::C*
+static method Extension1|-(lowered final self::C* #this, core::int* val) → self::C*
return #this;
static method main() → dynamic {
self::C* c = new self::C::•();
diff --git a/pkg/front_end/testcases/extensions/issue39889.dart.outline.expect b/pkg/front_end/testcases/extensions/issue39889.dart.outline.expect
index 1c18ba8..0569c0a 100644
--- a/pkg/front_end/testcases/extensions/issue39889.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue39889.dart.outline.expect
@@ -20,9 +20,9 @@
method f = self::E|f;
tearoff f = self::E|get#f;
}
-static method E|f(final self::C* #this, core::String* b) → void
+static method E|f(lowered final self::C* #this, core::String* b) → void
;
-static method E|get#f(final self::C* #this) → (core::String*) →* void
+static method E|get#f(lowered final self::C* #this) → (core::String*) →* void
return (core::String* b) → void => self::E|f(#this, b);
static method main() → void
;
diff --git a/pkg/front_end/testcases/extensions/issue39889.dart.strong.expect b/pkg/front_end/testcases/extensions/issue39889.dart.strong.expect
index 8d52ecb..3d65b0f 100644
--- a/pkg/front_end/testcases/extensions/issue39889.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue39889.dart.strong.expect
@@ -21,8 +21,8 @@
method f = self::E|f;
tearoff f = self::E|get#f;
}
-static method E|f(final self::C* #this, core::String* b) → void {}
-static method E|get#f(final self::C* #this) → (core::String*) →* void
+static method E|f(lowered final self::C* #this, core::String* b) → void {}
+static method E|get#f(lowered final self::C* #this) → (core::String*) →* void
return (core::String* b) → void => self::E|f(#this, b);
static method main() → void {
dynamic b = "456";
diff --git a/pkg/front_end/testcases/extensions/issue39889.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue39889.dart.strong.transformed.expect
index 8d52ecb..3d65b0f 100644
--- a/pkg/front_end/testcases/extensions/issue39889.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue39889.dart.strong.transformed.expect
@@ -21,8 +21,8 @@
method f = self::E|f;
tearoff f = self::E|get#f;
}
-static method E|f(final self::C* #this, core::String* b) → void {}
-static method E|get#f(final self::C* #this) → (core::String*) →* void
+static method E|f(lowered final self::C* #this, core::String* b) → void {}
+static method E|get#f(lowered final self::C* #this) → (core::String*) →* void
return (core::String* b) → void => self::E|f(#this, b);
static method main() → void {
dynamic b = "456";
diff --git a/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.outline.expect b/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.outline.expect
index b84871b..975b7b2 100644
--- a/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.outline.expect
@@ -15,5 +15,5 @@
extension Extension on core::bool* {
operator + = self2::Extension|+;
}
-static method Extension|+(final core::bool* #this, core::bool* other) → core::bool*
+static method Extension|+(lowered final core::bool* #this, core::bool* other) → core::bool*
;
diff --git a/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.strong.expect b/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.strong.expect
index e321b2b..687f686 100644
--- a/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.strong.expect
@@ -27,5 +27,5 @@
extension Extension on core::bool* {
operator + = iss::Extension|+;
}
-static method Extension|+(final core::bool* #this, core::bool* other) → core::bool*
+static method Extension|+(lowered final core::bool* #this, core::bool* other) → core::bool*
return #this.{core::bool::|}(other);
diff --git a/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.strong.transformed.expect
index e321b2b..687f686 100644
--- a/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue39938/issue39938.dart.strong.transformed.expect
@@ -27,5 +27,5 @@
extension Extension on core::bool* {
operator + = iss::Extension|+;
}
-static method Extension|+(final core::bool* #this, core::bool* other) → core::bool*
+static method Extension|+(lowered final core::bool* #this, core::bool* other) → core::bool*
return #this.{core::bool::|}(other);
diff --git a/pkg/front_end/testcases/extensions/issue40596.dart.outline.expect b/pkg/front_end/testcases/extensions/issue40596.dart.outline.expect
index 026a6f7..8be7c09 100644
--- a/pkg/front_end/testcases/extensions/issue40596.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue40596.dart.outline.expect
@@ -11,7 +11,7 @@
}
static method main() → void
;
-static method Extension|call<T extends core::Object* = dynamic>(final asy::Stream<self::Extension|call::T*>* #this, core::Function* onData) → asy::StreamSubscription<self::Extension|call::T*>*
+static method Extension|call<T extends core::Object* = dynamic>(lowered final asy::Stream<self::Extension|call::T*>* #this, core::Function* onData) → asy::StreamSubscription<self::Extension|call::T*>*
;
-static method Extension|get#call<T extends core::Object* = dynamic>(final asy::Stream<self::Extension|get#call::T*>* #this) → (core::Function*) →* asy::StreamSubscription<self::Extension|get#call::T*>*
+static method Extension|get#call<T extends core::Object* = dynamic>(lowered final asy::Stream<self::Extension|get#call::T*>* #this) → (core::Function*) →* asy::StreamSubscription<self::Extension|get#call::T*>*
return (core::Function* onData) → asy::StreamSubscription<self::Extension|get#call::T*>* => self::Extension|call<self::Extension|get#call::T*>(#this, onData);
diff --git a/pkg/front_end/testcases/extensions/issue40596.dart.strong.expect b/pkg/front_end/testcases/extensions/issue40596.dart.strong.expect
index 1511135..7a2fd83 100644
--- a/pkg/front_end/testcases/extensions/issue40596.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue40596.dart.strong.expect
@@ -15,10 +15,10 @@
core::print(s);
} in self::Extension|call<core::String*>(#t1.{asy::StreamController::stream}, #t2);
}
-static method Extension|call<T extends core::Object* = dynamic>(final asy::Stream<self::Extension|call::T*>* #this, core::Function* onData) → asy::StreamSubscription<self::Extension|call::T*>* {
+static method Extension|call<T extends core::Object* = dynamic>(lowered final asy::Stream<self::Extension|call::T*>* #this, core::Function* onData) → asy::StreamSubscription<self::Extension|call::T*>* {
return #this.{asy::Stream::listen}((self::Extension|call::T* d) → Null {
onData.call(d);
});
}
-static method Extension|get#call<T extends core::Object* = dynamic>(final asy::Stream<self::Extension|get#call::T*>* #this) → (core::Function*) →* asy::StreamSubscription<self::Extension|get#call::T*>*
+static method Extension|get#call<T extends core::Object* = dynamic>(lowered final asy::Stream<self::Extension|get#call::T*>* #this) → (core::Function*) →* asy::StreamSubscription<self::Extension|get#call::T*>*
return (core::Function* onData) → asy::StreamSubscription<self::Extension|get#call::T*>* => self::Extension|call<self::Extension|get#call::T*>(#this, onData);
diff --git a/pkg/front_end/testcases/extensions/issue40596.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue40596.dart.strong.transformed.expect
index 1511135..7a2fd83 100644
--- a/pkg/front_end/testcases/extensions/issue40596.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue40596.dart.strong.transformed.expect
@@ -15,10 +15,10 @@
core::print(s);
} in self::Extension|call<core::String*>(#t1.{asy::StreamController::stream}, #t2);
}
-static method Extension|call<T extends core::Object* = dynamic>(final asy::Stream<self::Extension|call::T*>* #this, core::Function* onData) → asy::StreamSubscription<self::Extension|call::T*>* {
+static method Extension|call<T extends core::Object* = dynamic>(lowered final asy::Stream<self::Extension|call::T*>* #this, core::Function* onData) → asy::StreamSubscription<self::Extension|call::T*>* {
return #this.{asy::Stream::listen}((self::Extension|call::T* d) → Null {
onData.call(d);
});
}
-static method Extension|get#call<T extends core::Object* = dynamic>(final asy::Stream<self::Extension|get#call::T*>* #this) → (core::Function*) →* asy::StreamSubscription<self::Extension|get#call::T*>*
+static method Extension|get#call<T extends core::Object* = dynamic>(lowered final asy::Stream<self::Extension|get#call::T*>* #this) → (core::Function*) →* asy::StreamSubscription<self::Extension|get#call::T*>*
return (core::Function* onData) → asy::StreamSubscription<self::Extension|get#call::T*>* => self::Extension|call<self::Extension|get#call::T*>(#this, onData);
diff --git a/pkg/front_end/testcases/extensions/issue40713.dart.outline.expect b/pkg/front_end/testcases/extensions/issue40713.dart.outline.expect
index 9afde88..a5d8dfc 100644
--- a/pkg/front_end/testcases/extensions/issue40713.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue40713.dart.outline.expect
@@ -5,7 +5,7 @@
extension SafeAccess<T extends core::Object* = dynamic> on core::Iterable<T*>* {
get safeFirst = self::SafeAccess|get#safeFirst;
}
-static method SafeAccess|get#safeFirst<T extends core::Object* = dynamic>(final core::Iterable<self::SafeAccess|get#safeFirst::T*>* #this) → self::SafeAccess|get#safeFirst::T*
+static method SafeAccess|get#safeFirst<T extends core::Object* = dynamic>(lowered final core::Iterable<self::SafeAccess|get#safeFirst::T*>* #this) → self::SafeAccess|get#safeFirst::T*
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/issue40713.dart.strong.expect b/pkg/front_end/testcases/extensions/issue40713.dart.strong.expect
index 13b8a9d..ef2e7dc 100644
--- a/pkg/front_end/testcases/extensions/issue40713.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue40713.dart.strong.expect
@@ -16,7 +16,7 @@
extension SafeAccess<T extends core::Object* = dynamic> on core::Iterable<T*>* {
get safeFirst = self::SafeAccess|get#safeFirst;
}
-static method SafeAccess|get#safeFirst<T extends core::Object* = dynamic>(final core::Iterable<self::SafeAccess|get#safeFirst::T*>* #this) → self::SafeAccess|get#safeFirst::T* {
+static method SafeAccess|get#safeFirst<T extends core::Object* = dynamic>(lowered final core::Iterable<self::SafeAccess|get#safeFirst::T*>* #this) → self::SafeAccess|get#safeFirst::T* {
return #this.{core::Iterable::isNotEmpty} ?{self::SafeAccess|get#safeFirst::T*} #this.{core::Iterable::first} : null;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/issue40816.dart.outline.expect b/pkg/front_end/testcases/extensions/issue40816.dart.outline.expect
index 6e864bd..6bf9120 100644
--- a/pkg/front_end/testcases/extensions/issue40816.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue40816.dart.outline.expect
@@ -34,9 +34,9 @@
method foo = self::_extension#0|foo;
tearoff foo = self::_extension#0|get#foo;
}
-static method _extension#0|foo(final self::A* #this, self::A* a, self::B* b) → void
+static method _extension#0|foo(lowered final self::A* #this, self::A* a, self::B* b) → void
;
-static method _extension#0|get#foo(final self::A* #this) → (self::A*, self::B*) →* void
+static method _extension#0|get#foo(lowered final self::A* #this) → (self::A*, self::B*) →* void
return (self::A* a, self::B* b) → void => self::_extension#0|foo(#this, a, b);
static method main() → void
;
diff --git a/pkg/front_end/testcases/extensions/issue40816.dart.strong.expect b/pkg/front_end/testcases/extensions/issue40816.dart.strong.expect
index cc59049..70c933c 100644
--- a/pkg/front_end/testcases/extensions/issue40816.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue40816.dart.strong.expect
@@ -36,8 +36,8 @@
method foo = self::_extension#0|foo;
tearoff foo = self::_extension#0|get#foo;
}
-static method _extension#0|foo(final self::A* #this, self::A* a, self::B* b) → void {}
-static method _extension#0|get#foo(final self::A* #this) → (self::A*, self::B*) →* void
+static method _extension#0|foo(lowered final self::A* #this, self::A* a, self::B* b) → void {}
+static method _extension#0|get#foo(lowered final self::A* #this) → (self::A*, self::B*) →* void
return (self::A* a, self::B* b) → void => self::_extension#0|foo(#this, a, b);
static method main() → void {
dynamic a = new self::A::•();
diff --git a/pkg/front_end/testcases/extensions/issue40816.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue40816.dart.strong.transformed.expect
index cc59049..70c933c 100644
--- a/pkg/front_end/testcases/extensions/issue40816.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue40816.dart.strong.transformed.expect
@@ -36,8 +36,8 @@
method foo = self::_extension#0|foo;
tearoff foo = self::_extension#0|get#foo;
}
-static method _extension#0|foo(final self::A* #this, self::A* a, self::B* b) → void {}
-static method _extension#0|get#foo(final self::A* #this) → (self::A*, self::B*) →* void
+static method _extension#0|foo(lowered final self::A* #this, self::A* a, self::B* b) → void {}
+static method _extension#0|get#foo(lowered final self::A* #this) → (self::A*, self::B*) →* void
return (self::A* a, self::B* b) → void => self::_extension#0|foo(#this, a, b);
static method main() → void {
dynamic a = new self::A::•();
diff --git a/pkg/front_end/testcases/extensions/issue43218.dart.outline.expect b/pkg/front_end/testcases/extensions/issue43218.dart.outline.expect
index 193d91e..5ca5e4a 100644
--- a/pkg/front_end/testcases/extensions/issue43218.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/issue43218.dart.outline.expect
@@ -26,7 +26,7 @@
extension Ext on self::C* {
get id = self::Ext|get#id;
}
-static method Ext|get#id(final self::C* #this) → core::int*
+static method Ext|get#id(lowered final self::C* #this) → core::int*
;
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/issue43218.dart.strong.expect b/pkg/front_end/testcases/extensions/issue43218.dart.strong.expect
index c6208d5..fd80b29 100644
--- a/pkg/front_end/testcases/extensions/issue43218.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/issue43218.dart.strong.expect
@@ -36,7 +36,7 @@
extension Ext on self::C* {
get id = self::Ext|get#id;
}
-static method Ext|get#id(final self::C* #this) → core::int*
+static method Ext|get#id(lowered final self::C* #this) → core::int*
return #this.{self::C::value}.{core::num::+}(1);
static method test() → dynamic {
self::C* c = new self::C::•();
diff --git a/pkg/front_end/testcases/extensions/issue43218.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue43218.dart.strong.transformed.expect
index c6208d5..fd80b29 100644
--- a/pkg/front_end/testcases/extensions/issue43218.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue43218.dart.strong.transformed.expect
@@ -36,7 +36,7 @@
extension Ext on self::C* {
get id = self::Ext|get#id;
}
-static method Ext|get#id(final self::C* #this) → core::int*
+static method Ext|get#id(lowered final self::C* #this) → core::int*
return #this.{self::C::value}.{core::num::+}(1);
static method test() → dynamic {
self::C* c = new self::C::•();
diff --git a/pkg/front_end/testcases/extensions/language_issue1182.dart.outline.expect b/pkg/front_end/testcases/extensions/language_issue1182.dart.outline.expect
index c989ba2..44bd9dc 100644
--- a/pkg/front_end/testcases/extensions/language_issue1182.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/language_issue1182.dart.outline.expect
@@ -21,7 +21,7 @@
extension Test<T extends core::Object* = dynamic> on T* {
get test = self::Test|get#test;
}
-static method Test|get#test<T extends core::Object* = dynamic>(final self::Test|get#test::T* #this) → (self::Test|get#test::T*) →* self::Test|get#test::T*
+static method Test|get#test<T extends core::Object* = dynamic>(lowered final self::Test|get#test::T* #this) → (self::Test|get#test::T*) →* self::Test|get#test::T*
;
static method main() → void
;
diff --git a/pkg/front_end/testcases/extensions/language_issue1182.dart.strong.expect b/pkg/front_end/testcases/extensions/language_issue1182.dart.strong.expect
index 17bdb9d..6f515b5 100644
--- a/pkg/front_end/testcases/extensions/language_issue1182.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/language_issue1182.dart.strong.expect
@@ -32,6 +32,6 @@
extension Test<T extends core::Object* = dynamic> on T* {
get test = self::Test|get#test;
}
-static method Test|get#test<T extends core::Object* = dynamic>(final self::Test|get#test::T* #this) → (self::Test|get#test::T*) →* self::Test|get#test::T*
+static method Test|get#test<T extends core::Object* = dynamic>(lowered final self::Test|get#test::T* #this) → (self::Test|get#test::T*) →* self::Test|get#test::T*
return (self::Test|get#test::T* a) → self::Test|get#test::T* => #this;
static method main() → void {}
diff --git a/pkg/front_end/testcases/extensions/language_issue1182.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/language_issue1182.dart.strong.transformed.expect
index 17bdb9d..6f515b5 100644
--- a/pkg/front_end/testcases/extensions/language_issue1182.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/language_issue1182.dart.strong.transformed.expect
@@ -32,6 +32,6 @@
extension Test<T extends core::Object* = dynamic> on T* {
get test = self::Test|get#test;
}
-static method Test|get#test<T extends core::Object* = dynamic>(final self::Test|get#test::T* #this) → (self::Test|get#test::T*) →* self::Test|get#test::T*
+static method Test|get#test<T extends core::Object* = dynamic>(lowered final self::Test|get#test::T* #this) → (self::Test|get#test::T*) →* self::Test|get#test::T*
return (self::Test|get#test::T* a) → self::Test|get#test::T* => #this;
static method main() → void {}
diff --git a/pkg/front_end/testcases/extensions/missing_toplevel.dart.outline.expect b/pkg/front_end/testcases/extensions/missing_toplevel.dart.outline.expect
index f116af6..5cbfe17 100644
--- a/pkg/front_end/testcases/extensions/missing_toplevel.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/missing_toplevel.dart.outline.expect
@@ -21,7 +21,7 @@
}
static field self::Class* c;
static field dynamic missingGetter;
-static method Extension|set#setter(final self::Class* #this, core::int* value) → void
+static method Extension|set#setter(lowered final self::Class* #this, core::int* value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/missing_toplevel.dart.strong.expect b/pkg/front_end/testcases/extensions/missing_toplevel.dart.strong.expect
index f17f432..c79acde 100644
--- a/pkg/front_end/testcases/extensions/missing_toplevel.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/missing_toplevel.dart.strong.expect
@@ -35,5 +35,5 @@
Try correcting the name to the name of an existing getter, or defining a getter or field named 'setter'.
var missingGetter = c.setter += 42;
^^^^^^".+(42) as{TypeError,ForDynamic} core::int* in let final void #t3 = self::Extension|set#setter(#t1, #t2) in #t2;
-static method Extension|set#setter(final self::Class* #this, core::int* value) → void {}
+static method Extension|set#setter(lowered final self::Class* #this, core::int* value) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/missing_toplevel.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/missing_toplevel.dart.strong.transformed.expect
index bae62c7..0a31620 100644
--- a/pkg/front_end/testcases/extensions/missing_toplevel.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/missing_toplevel.dart.strong.transformed.expect
@@ -35,5 +35,5 @@
Try correcting the name to the name of an existing getter, or defining a getter or field named 'setter'.
var missingGetter = c.setter += 42;
^^^^^^".+(42) as{TypeError,ForDynamic} core::int* in let final void #t3 = self::Extension|set#setter(#t1, #t2) in #t2;
-static method Extension|set#setter(final self::Class* #this, core::int* value) → void {}
+static method Extension|set#setter(lowered final self::Class* #this, core::int* value) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/nested_on_types.dart.outline.expect b/pkg/front_end/testcases/extensions/nested_on_types.dart.outline.expect
index e6d42c5..b5fda8d 100644
--- a/pkg/front_end/testcases/extensions/nested_on_types.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/nested_on_types.dart.outline.expect
@@ -22,13 +22,13 @@
method method2 = self::Extension|method2;
tearoff method2 = self::Extension|get#method2;
}
-static method Extension|method1<T extends core::Object* = dynamic>(final self::A<self::A<self::Extension|method1::T*>*>* #this) → dynamic
+static method Extension|method1<T extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|method1::T*>*>* #this) → dynamic
;
-static method Extension|get#method1<T extends core::Object* = dynamic>(final self::A<self::A<self::Extension|get#method1::T*>*>* #this) → () →* dynamic
+static method Extension|get#method1<T extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|get#method1::T*>*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method1<self::Extension|get#method1::T*>(#this);
-static method Extension|method2<T extends core::Object* = dynamic, A extends core::Object* = dynamic>(final self::A<self::A<self::Extension|method2::T*>*>* #this, self::Extension|method2::A* a) → dynamic
+static method Extension|method2<T extends core::Object* = dynamic, A extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|method2::T*>*>* #this, self::Extension|method2::A* a) → dynamic
;
-static method Extension|get#method2<T extends core::Object* = dynamic>(final self::A<self::A<self::Extension|get#method2::T*>*>* #this) → <A extends core::Object* = dynamic>(A*) →* dynamic
+static method Extension|get#method2<T extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|get#method2::T*>*>* #this) → <A extends core::Object* = dynamic>(A*) →* dynamic
return <A extends core::Object* = dynamic>(A* a) → dynamic => self::Extension|method2<self::Extension|get#method2::T*, A*>(#this, a);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/nested_on_types.dart.strong.expect b/pkg/front_end/testcases/extensions/nested_on_types.dart.strong.expect
index 271fc66..001a0b6 100644
--- a/pkg/front_end/testcases/extensions/nested_on_types.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/nested_on_types.dart.strong.expect
@@ -23,10 +23,10 @@
method method2 = self::Extension|method2;
tearoff method2 = self::Extension|get#method2;
}
-static method Extension|method1<T extends core::Object* = dynamic>(final self::A<self::A<self::Extension|method1::T*>*>* #this) → dynamic {}
-static method Extension|get#method1<T extends core::Object* = dynamic>(final self::A<self::A<self::Extension|get#method1::T*>*>* #this) → () →* dynamic
+static method Extension|method1<T extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|method1::T*>*>* #this) → dynamic {}
+static method Extension|get#method1<T extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|get#method1::T*>*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method1<self::Extension|get#method1::T*>(#this);
-static method Extension|method2<T extends core::Object* = dynamic, A extends core::Object* = dynamic>(final self::A<self::A<self::Extension|method2::T*>*>* #this, self::Extension|method2::A* a) → dynamic {}
-static method Extension|get#method2<T extends core::Object* = dynamic>(final self::A<self::A<self::Extension|get#method2::T*>*>* #this) → <A extends core::Object* = dynamic>(A*) →* dynamic
+static method Extension|method2<T extends core::Object* = dynamic, A extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|method2::T*>*>* #this, self::Extension|method2::A* a) → dynamic {}
+static method Extension|get#method2<T extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|get#method2::T*>*>* #this) → <A extends core::Object* = dynamic>(A*) →* dynamic
return <A extends core::Object* = dynamic>(A* a) → dynamic => self::Extension|method2<self::Extension|get#method2::T*, A*>(#this, a);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/nested_on_types.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/nested_on_types.dart.strong.transformed.expect
index 271fc66..001a0b6 100644
--- a/pkg/front_end/testcases/extensions/nested_on_types.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/nested_on_types.dart.strong.transformed.expect
@@ -23,10 +23,10 @@
method method2 = self::Extension|method2;
tearoff method2 = self::Extension|get#method2;
}
-static method Extension|method1<T extends core::Object* = dynamic>(final self::A<self::A<self::Extension|method1::T*>*>* #this) → dynamic {}
-static method Extension|get#method1<T extends core::Object* = dynamic>(final self::A<self::A<self::Extension|get#method1::T*>*>* #this) → () →* dynamic
+static method Extension|method1<T extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|method1::T*>*>* #this) → dynamic {}
+static method Extension|get#method1<T extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|get#method1::T*>*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method1<self::Extension|get#method1::T*>(#this);
-static method Extension|method2<T extends core::Object* = dynamic, A extends core::Object* = dynamic>(final self::A<self::A<self::Extension|method2::T*>*>* #this, self::Extension|method2::A* a) → dynamic {}
-static method Extension|get#method2<T extends core::Object* = dynamic>(final self::A<self::A<self::Extension|get#method2::T*>*>* #this) → <A extends core::Object* = dynamic>(A*) →* dynamic
+static method Extension|method2<T extends core::Object* = dynamic, A extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|method2::T*>*>* #this, self::Extension|method2::A* a) → dynamic {}
+static method Extension|get#method2<T extends core::Object* = dynamic>(lowered final self::A<self::A<self::Extension|get#method2::T*>*>* #this) → <A extends core::Object* = dynamic>(A*) →* dynamic
return <A extends core::Object* = dynamic>(A* a) → dynamic => self::Extension|method2<self::Extension|get#method2::T*, A*>(#this, a);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/null_aware.dart.outline.expect b/pkg/front_end/testcases/extensions/null_aware.dart.outline.expect
index ec1bb35..c3b7817 100644
--- a/pkg/front_end/testcases/extensions/null_aware.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/null_aware.dart.outline.expect
@@ -25,17 +25,17 @@
tearoff testImplicitThis = self::Extension|get#testImplicitThis;
set property = self::Extension|set#property;
}
-static method Extension|get#property(final self::Class* #this) → core::int*
+static method Extension|get#property(lowered final self::Class* #this) → core::int*
;
-static method Extension|set#property(final self::Class* #this, core::int* value) → void
+static method Extension|set#property(lowered final self::Class* #this, core::int* value) → void
;
-static method Extension|method(final self::Class* #this) → core::int*
+static method Extension|method(lowered final self::Class* #this) → core::int*
;
-static method Extension|get#method(final self::Class* #this) → () →* core::int*
+static method Extension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
-static method Extension|testImplicitThis(final self::Class* #this) → dynamic
+static method Extension|testImplicitThis(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#testImplicitThis(final self::Class* #this) → () →* dynamic
+static method Extension|get#testImplicitThis(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|testImplicitThis(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/null_aware.dart.strong.expect b/pkg/front_end/testcases/extensions/null_aware.dart.strong.expect
index fb975d6..9cff1f1 100644
--- a/pkg/front_end/testcases/extensions/null_aware.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/null_aware.dart.strong.expect
@@ -26,21 +26,21 @@
tearoff testImplicitThis = self::Extension|get#testImplicitThis;
set property = self::Extension|set#property;
}
-static method Extension|get#property(final self::Class* #this) → core::int*
+static method Extension|get#property(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#property(final self::Class* #this, core::int* value) → void {
+static method Extension|set#property(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field} = value;
}
-static method Extension|method(final self::Class* #this) → core::int*
+static method Extension|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|get#method(final self::Class* #this) → () →* core::int*
+static method Extension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
-static method Extension|testImplicitThis(final self::Class* #this) → dynamic {
+static method Extension|testImplicitThis(lowered final self::Class* #this) → dynamic {
self::expect(null, self::Extension|get#property(#this));
self::expect(42, let final core::int* #t1 = self::Extension|get#property(#this) in #t1.{core::num::==}(null) ?{core::int*} let final core::int* #t2 = 42 in let final void #t3 = self::Extension|set#property(#this, #t2) in #t2 : #t1);
self::expect(42, let final core::int* #t4 = self::Extension|get#property(#this) in #t4.{core::num::==}(null) ?{core::int*} let final core::int* #t5 = 87 in let final void #t6 = self::Extension|set#property(#this, #t5) in #t5 : #t4);
}
-static method Extension|get#testImplicitThis(final self::Class* #this) → () →* dynamic
+static method Extension|get#testImplicitThis(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|testImplicitThis(#this);
static method main() → dynamic {
self::Class* c;
diff --git a/pkg/front_end/testcases/extensions/null_aware.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/null_aware.dart.strong.transformed.expect
index 4697d39..afe8026 100644
--- a/pkg/front_end/testcases/extensions/null_aware.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/null_aware.dart.strong.transformed.expect
@@ -26,21 +26,21 @@
tearoff testImplicitThis = self::Extension|get#testImplicitThis;
set property = self::Extension|set#property;
}
-static method Extension|get#property(final self::Class* #this) → core::int*
+static method Extension|get#property(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|set#property(final self::Class* #this, core::int* value) → void {
+static method Extension|set#property(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field} = value;
}
-static method Extension|method(final self::Class* #this) → core::int*
+static method Extension|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
-static method Extension|get#method(final self::Class* #this) → () →* core::int*
+static method Extension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
-static method Extension|testImplicitThis(final self::Class* #this) → dynamic {
+static method Extension|testImplicitThis(lowered final self::Class* #this) → dynamic {
self::expect(null, self::Extension|get#property(#this));
self::expect(42, let final core::int* #t1 = self::Extension|get#property(#this) in #t1.{core::num::==}(null) ?{core::int*} let final core::int* #t2 = 42 in let final void #t3 = self::Extension|set#property(#this, #t2) in #t2 : #t1);
self::expect(42, let final core::int* #t4 = self::Extension|get#property(#this) in #t4.{core::num::==}(null) ?{core::int*} let final core::int* #t5 = 87 in let final void #t6 = self::Extension|set#property(#this, #t5) in #t5 : #t4);
}
-static method Extension|get#testImplicitThis(final self::Class* #this) → () →* dynamic
+static method Extension|get#testImplicitThis(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|testImplicitThis(#this);
static method main() → dynamic {
self::Class* c;
diff --git a/pkg/front_end/testcases/extensions/on_function_type.dart.outline.expect b/pkg/front_end/testcases/extensions/on_function_type.dart.outline.expect
index 6e6c978..3447999 100644
--- a/pkg/front_end/testcases/extensions/on_function_type.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/on_function_type.dart.outline.expect
@@ -27,11 +27,11 @@
extension _extension#1<T extends self::Class<T*>* = self::Class<dynamic>*> on <S extends T* = dynamic>(T*, S*) →* dynamic {
get parameterType = self::_extension#1|get#parameterType;
}
-static method _extension#0|get#returnType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(final (self::_extension#0|get#returnType::T*) →* self::_extension#0|get#returnType::R* #this) → core::Type*
+static method _extension#0|get#returnType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(lowered final (self::_extension#0|get#returnType::T*) →* self::_extension#0|get#returnType::R* #this) → core::Type*
;
-static method _extension#0|get#parameterType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(final (self::_extension#0|get#parameterType::T*) →* self::_extension#0|get#parameterType::R* #this) → core::Type*
+static method _extension#0|get#parameterType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(lowered final (self::_extension#0|get#parameterType::T*) →* self::_extension#0|get#parameterType::R* #this) → core::Type*
;
-static method _extension#1|get#parameterType<T extends self::Class<self::_extension#1|get#parameterType::T*>* = self::Class<dynamic>*>(final <S extends self::_extension#1|get#parameterType::T* = dynamic>(self::_extension#1|get#parameterType::T*, S*) →* dynamic #this) → core::Type*
+static method _extension#1|get#parameterType<T extends self::Class<self::_extension#1|get#parameterType::T*>* = self::Class<dynamic>*>(lowered final <S extends self::_extension#1|get#parameterType::T* = dynamic>(self::_extension#1|get#parameterType::T*, S*) →* dynamic #this) → core::Type*
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/on_function_type.dart.strong.expect b/pkg/front_end/testcases/extensions/on_function_type.dart.strong.expect
index 59a3ec8..9c1f826 100644
--- a/pkg/front_end/testcases/extensions/on_function_type.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/on_function_type.dart.strong.expect
@@ -29,11 +29,11 @@
extension _extension#1<T extends self::Class<T*>* = self::Class<dynamic>*> on <S extends T* = dynamic>(T*, S*) →* dynamic {
get parameterType = self::_extension#1|get#parameterType;
}
-static method _extension#0|get#returnType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(final (self::_extension#0|get#returnType::T*) →* self::_extension#0|get#returnType::R* #this) → core::Type*
+static method _extension#0|get#returnType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(lowered final (self::_extension#0|get#returnType::T*) →* self::_extension#0|get#returnType::R* #this) → core::Type*
return self::_extension#0|get#returnType::R*;
-static method _extension#0|get#parameterType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(final (self::_extension#0|get#parameterType::T*) →* self::_extension#0|get#parameterType::R* #this) → core::Type*
+static method _extension#0|get#parameterType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(lowered final (self::_extension#0|get#parameterType::T*) →* self::_extension#0|get#parameterType::R* #this) → core::Type*
return self::_extension#0|get#parameterType::T*;
-static method _extension#1|get#parameterType<T extends self::Class<self::_extension#1|get#parameterType::T*>* = self::Class<dynamic>*>(final <S extends self::_extension#1|get#parameterType::T* = dynamic>(self::_extension#1|get#parameterType::T*, S*) →* dynamic #this) → core::Type*
+static method _extension#1|get#parameterType<T extends self::Class<self::_extension#1|get#parameterType::T*>* = self::Class<dynamic>*>(lowered final <S extends self::_extension#1|get#parameterType::T* = dynamic>(self::_extension#1|get#parameterType::T*, S*) →* dynamic #this) → core::Type*
return self::_extension#1|get#parameterType::T*;
static method main() → dynamic {
function local1(core::int* i) → core::int*
diff --git a/pkg/front_end/testcases/extensions/on_function_type.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/on_function_type.dart.strong.transformed.expect
index 59a3ec8..9c1f826 100644
--- a/pkg/front_end/testcases/extensions/on_function_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/on_function_type.dart.strong.transformed.expect
@@ -29,11 +29,11 @@
extension _extension#1<T extends self::Class<T*>* = self::Class<dynamic>*> on <S extends T* = dynamic>(T*, S*) →* dynamic {
get parameterType = self::_extension#1|get#parameterType;
}
-static method _extension#0|get#returnType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(final (self::_extension#0|get#returnType::T*) →* self::_extension#0|get#returnType::R* #this) → core::Type*
+static method _extension#0|get#returnType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(lowered final (self::_extension#0|get#returnType::T*) →* self::_extension#0|get#returnType::R* #this) → core::Type*
return self::_extension#0|get#returnType::R*;
-static method _extension#0|get#parameterType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(final (self::_extension#0|get#parameterType::T*) →* self::_extension#0|get#parameterType::R* #this) → core::Type*
+static method _extension#0|get#parameterType<R extends core::Object* = dynamic, T extends core::Object* = dynamic>(lowered final (self::_extension#0|get#parameterType::T*) →* self::_extension#0|get#parameterType::R* #this) → core::Type*
return self::_extension#0|get#parameterType::T*;
-static method _extension#1|get#parameterType<T extends self::Class<self::_extension#1|get#parameterType::T*>* = self::Class<dynamic>*>(final <S extends self::_extension#1|get#parameterType::T* = dynamic>(self::_extension#1|get#parameterType::T*, S*) →* dynamic #this) → core::Type*
+static method _extension#1|get#parameterType<T extends self::Class<self::_extension#1|get#parameterType::T*>* = self::Class<dynamic>*>(lowered final <S extends self::_extension#1|get#parameterType::T* = dynamic>(self::_extension#1|get#parameterType::T*, S*) →* dynamic #this) → core::Type*
return self::_extension#1|get#parameterType::T*;
static method main() → dynamic {
function local1(core::int* i) → core::int*
diff --git a/pkg/front_end/testcases/extensions/on_type_inference.dart.outline.expect b/pkg/front_end/testcases/extensions/on_type_inference.dart.outline.expect
index 2753b81..f2746bb 100644
--- a/pkg/front_end/testcases/extensions/on_type_inference.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/on_type_inference.dart.outline.expect
@@ -14,17 +14,17 @@
method best = self::BestSpec|best;
tearoff best = self::BestSpec|get#best;
}
-static method BestCom|best<T extends core::num* = core::num*>(final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
+static method BestCom|best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
;
-static method BestCom|get#best<T extends core::num* = core::num*>(final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
+static method BestCom|get#best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
return () → self::BestCom|get#best::T* => self::BestCom|best<self::BestCom|get#best::T*>(#this);
-static method BestList|best<T extends core::Object* = dynamic>(final core::List<self::BestList|best::T*>* #this) → self::BestList|best::T*
+static method BestList|best<T extends core::Object* = dynamic>(lowered final core::List<self::BestList|best::T*>* #this) → self::BestList|best::T*
;
-static method BestList|get#best<T extends core::Object* = dynamic>(final core::List<self::BestList|get#best::T*>* #this) → () →* self::BestList|get#best::T*
+static method BestList|get#best<T extends core::Object* = dynamic>(lowered final core::List<self::BestList|get#best::T*>* #this) → () →* self::BestList|get#best::T*
return () → self::BestList|get#best::T* => self::BestList|best<self::BestList|get#best::T*>(#this);
-static method BestSpec|best(final core::List<core::num*>* #this) → core::num*
+static method BestSpec|best(lowered final core::List<core::num*>* #this) → core::num*
;
-static method BestSpec|get#best(final core::List<core::num*>* #this) → () →* core::num*
+static method BestSpec|get#best(lowered final core::List<core::num*>* #this) → () →* core::num*
return () → core::num* => self::BestSpec|best(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/on_type_inference.dart.strong.expect b/pkg/front_end/testcases/extensions/on_type_inference.dart.strong.expect
index b0990ec..75adac2 100644
--- a/pkg/front_end/testcases/extensions/on_type_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/on_type_inference.dart.strong.expect
@@ -14,17 +14,17 @@
method best = self::BestSpec|best;
tearoff best = self::BestSpec|get#best;
}
-static method BestCom|best<T extends core::num* = core::num*>(final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
+static method BestCom|best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
return null;
-static method BestCom|get#best<T extends core::num* = core::num*>(final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
+static method BestCom|get#best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
return () → self::BestCom|get#best::T* => self::BestCom|best<self::BestCom|get#best::T*>(#this);
-static method BestList|best<T extends core::Object* = dynamic>(final core::List<self::BestList|best::T*>* #this) → self::BestList|best::T*
+static method BestList|best<T extends core::Object* = dynamic>(lowered final core::List<self::BestList|best::T*>* #this) → self::BestList|best::T*
return null;
-static method BestList|get#best<T extends core::Object* = dynamic>(final core::List<self::BestList|get#best::T*>* #this) → () →* self::BestList|get#best::T*
+static method BestList|get#best<T extends core::Object* = dynamic>(lowered final core::List<self::BestList|get#best::T*>* #this) → () →* self::BestList|get#best::T*
return () → self::BestList|get#best::T* => self::BestList|best<self::BestList|get#best::T*>(#this);
-static method BestSpec|best(final core::List<core::num*>* #this) → core::num*
+static method BestSpec|best(lowered final core::List<core::num*>* #this) → core::num*
return null;
-static method BestSpec|get#best(final core::List<core::num*>* #this) → () →* core::num*
+static method BestSpec|get#best(lowered final core::List<core::num*>* #this) → () →* core::num*
return () → core::num* => self::BestSpec|best(#this);
static method main() → dynamic {
core::List<core::int*>* x;
diff --git a/pkg/front_end/testcases/extensions/on_type_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/on_type_inference.dart.strong.transformed.expect
index b0990ec..75adac2 100644
--- a/pkg/front_end/testcases/extensions/on_type_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/on_type_inference.dart.strong.transformed.expect
@@ -14,17 +14,17 @@
method best = self::BestSpec|best;
tearoff best = self::BestSpec|get#best;
}
-static method BestCom|best<T extends core::num* = core::num*>(final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
+static method BestCom|best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
return null;
-static method BestCom|get#best<T extends core::num* = core::num*>(final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
+static method BestCom|get#best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
return () → self::BestCom|get#best::T* => self::BestCom|best<self::BestCom|get#best::T*>(#this);
-static method BestList|best<T extends core::Object* = dynamic>(final core::List<self::BestList|best::T*>* #this) → self::BestList|best::T*
+static method BestList|best<T extends core::Object* = dynamic>(lowered final core::List<self::BestList|best::T*>* #this) → self::BestList|best::T*
return null;
-static method BestList|get#best<T extends core::Object* = dynamic>(final core::List<self::BestList|get#best::T*>* #this) → () →* self::BestList|get#best::T*
+static method BestList|get#best<T extends core::Object* = dynamic>(lowered final core::List<self::BestList|get#best::T*>* #this) → () →* self::BestList|get#best::T*
return () → self::BestList|get#best::T* => self::BestList|best<self::BestList|get#best::T*>(#this);
-static method BestSpec|best(final core::List<core::num*>* #this) → core::num*
+static method BestSpec|best(lowered final core::List<core::num*>* #this) → core::num*
return null;
-static method BestSpec|get#best(final core::List<core::num*>* #this) → () →* core::num*
+static method BestSpec|get#best(lowered final core::List<core::num*>* #this) → () →* core::num*
return () → core::num* => self::BestSpec|best(#this);
static method main() → dynamic {
core::List<core::int*>* x;
diff --git a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.outline.expect b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.outline.expect
index 2681a86..3dd1c35 100644
--- a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.outline.expect
@@ -44,13 +44,13 @@
get property = self::Extension|get#property;
set property = self::Extension|set#property;
}
-static method Extension|method<T extends self::Struct* = self::Struct*>(final self::Extension|method::T* #this) → self::Extension|method::T*
+static method Extension|method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|method::T* #this) → self::Extension|method::T*
;
-static method Extension|get#method<T extends self::Struct* = self::Struct*>(final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
+static method Extension|get#method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
return () → self::Extension|get#method::T* => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|get#property<T extends self::Struct* = self::Struct*>(final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
+static method Extension|get#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
;
-static method Extension|set#property<T extends self::Struct* = self::Struct*>(final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void
+static method Extension|set#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.strong.expect b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.strong.expect
index 0558246..21907d2 100644
--- a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.strong.expect
@@ -87,13 +87,13 @@
get property = self::Extension|get#property;
set property = self::Extension|set#property;
}
-static method Extension|method<T extends self::Struct* = self::Struct*>(final self::Extension|method::T* #this) → self::Extension|method::T*
+static method Extension|method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|method::T* #this) → self::Extension|method::T*
return #this;
-static method Extension|get#method<T extends self::Struct* = self::Struct*>(final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
+static method Extension|get#method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
return () → self::Extension|get#method::T* => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|get#property<T extends self::Struct* = self::Struct*>(final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
+static method Extension|get#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
return #this;
-static method Extension|set#property<T extends self::Struct* = self::Struct*>(final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void {}
+static method Extension|set#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void {}
static method main() → dynamic {
self::Struct* struct;
self::StructA* structA;
diff --git a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.strong.transformed.expect
index 0558246..21907d2 100644
--- a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.strong.transformed.expect
@@ -87,13 +87,13 @@
get property = self::Extension|get#property;
set property = self::Extension|set#property;
}
-static method Extension|method<T extends self::Struct* = self::Struct*>(final self::Extension|method::T* #this) → self::Extension|method::T*
+static method Extension|method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|method::T* #this) → self::Extension|method::T*
return #this;
-static method Extension|get#method<T extends self::Struct* = self::Struct*>(final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
+static method Extension|get#method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
return () → self::Extension|get#method::T* => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|get#property<T extends self::Struct* = self::Struct*>(final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
+static method Extension|get#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
return #this;
-static method Extension|set#property<T extends self::Struct* = self::Struct*>(final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void {}
+static method Extension|set#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void {}
static method main() → dynamic {
self::Struct* struct;
self::StructA* structA;
diff --git a/pkg/front_end/testcases/extensions/operators.dart.outline.expect b/pkg/front_end/testcases/extensions/operators.dart.outline.expect
index eeac9a5..479c1d6 100644
--- a/pkg/front_end/testcases/extensions/operators.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/operators.dart.outline.expect
@@ -33,11 +33,11 @@
operator - = self::Operators|-;
operator unary- = self::Operators|unary-;
}
-static method Operators|+(final self::Complex* #this, self::Complex* other) → self::Complex*
+static method Operators|+(lowered final self::Complex* #this, self::Complex* other) → self::Complex*
;
-static method Operators|-(final self::Complex* #this, self::Complex* other) → self::Complex*
+static method Operators|-(lowered final self::Complex* #this, self::Complex* other) → self::Complex*
;
-static method Operators|unary-(final self::Complex* #this) → self::Complex*
+static method Operators|unary-(lowered final self::Complex* #this) → self::Complex*
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/operators.dart.strong.expect b/pkg/front_end/testcases/extensions/operators.dart.strong.expect
index 62682da..271cbb1 100644
--- a/pkg/front_end/testcases/extensions/operators.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/operators.dart.strong.expect
@@ -50,11 +50,11 @@
operator - = self::Operators|-;
operator unary- = self::Operators|unary-;
}
-static method Operators|+(final self::Complex* #this, self::Complex* other) → self::Complex*
+static method Operators|+(lowered final self::Complex* #this, self::Complex* other) → self::Complex*
return #this.{self::Complex::add}(other);
-static method Operators|-(final self::Complex* #this, self::Complex* other) → self::Complex*
+static method Operators|-(lowered final self::Complex* #this, self::Complex* other) → self::Complex*
return #this.{self::Complex::sub}(other);
-static method Operators|unary-(final self::Complex* #this) → self::Complex*
+static method Operators|unary-(lowered final self::Complex* #this) → self::Complex*
return #this.{self::Complex::negate}();
static method main() → dynamic {
self::implicit();
diff --git a/pkg/front_end/testcases/extensions/operators.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/operators.dart.strong.transformed.expect
index 62682da..271cbb1 100644
--- a/pkg/front_end/testcases/extensions/operators.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/operators.dart.strong.transformed.expect
@@ -50,11 +50,11 @@
operator - = self::Operators|-;
operator unary- = self::Operators|unary-;
}
-static method Operators|+(final self::Complex* #this, self::Complex* other) → self::Complex*
+static method Operators|+(lowered final self::Complex* #this, self::Complex* other) → self::Complex*
return #this.{self::Complex::add}(other);
-static method Operators|-(final self::Complex* #this, self::Complex* other) → self::Complex*
+static method Operators|-(lowered final self::Complex* #this, self::Complex* other) → self::Complex*
return #this.{self::Complex::sub}(other);
-static method Operators|unary-(final self::Complex* #this) → self::Complex*
+static method Operators|unary-(lowered final self::Complex* #this) → self::Complex*
return #this.{self::Complex::negate}();
static method main() → dynamic {
self::implicit();
diff --git a/pkg/front_end/testcases/extensions/other_kinds.dart.outline.expect b/pkg/front_end/testcases/extensions/other_kinds.dart.outline.expect
index cfd012a..e2dcbf5 100644
--- a/pkg/front_end/testcases/extensions/other_kinds.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/other_kinds.dart.outline.expect
@@ -37,15 +37,15 @@
static set staticProperty = set self::A2|staticProperty;
}
static field core::int* A2|staticField;
-static method A2|get#instanceProperty(final self::A1* #this) → core::int*
+static method A2|get#instanceProperty(lowered final self::A1* #this) → core::int*
;
-static method A2|set#instanceProperty(final self::A1* #this, core::int* value) → void
+static method A2|set#instanceProperty(lowered final self::A1* #this, core::int* value) → void
;
-static method A2|+(final self::A1* #this, core::int* value) → core::int*
+static method A2|+(lowered final self::A1* #this, core::int* value) → core::int*
;
-static method A2|-(final self::A1* #this, core::int* value) → core::int*
+static method A2|-(lowered final self::A1* #this, core::int* value) → core::int*
;
-static method A2|unary-(final self::A1* #this) → core::int*
+static method A2|unary-(lowered final self::A1* #this) → core::int*
;
static get A2|staticProperty() → core::int*
;
diff --git a/pkg/front_end/testcases/extensions/other_kinds.dart.strong.expect b/pkg/front_end/testcases/extensions/other_kinds.dart.strong.expect
index a2cf3e1..c83a5d1 100644
--- a/pkg/front_end/testcases/extensions/other_kinds.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/other_kinds.dart.strong.expect
@@ -40,18 +40,18 @@
static set staticProperty = set self::A2|staticProperty;
}
static field core::int* A2|staticField = self::A1::getStaticField();
-static method A2|get#instanceProperty(final self::A1* #this) → core::int*
+static method A2|get#instanceProperty(lowered final self::A1* #this) → core::int*
return #this.{self::A1::getInstanceField}();
-static method A2|set#instanceProperty(final self::A1* #this, core::int* value) → void {
+static method A2|set#instanceProperty(lowered final self::A1* #this, core::int* value) → void {
#this.{self::A1::setInstanceField}(value);
}
-static method A2|+(final self::A1* #this, core::int* value) → core::int* {
+static method A2|+(lowered final self::A1* #this, core::int* value) → core::int* {
return #this.{self::A1::getInstanceField}().{core::num::+}(value);
}
-static method A2|-(final self::A1* #this, core::int* value) → core::int* {
+static method A2|-(lowered final self::A1* #this, core::int* value) → core::int* {
return #this.{self::A1::getInstanceField}().{core::num::-}(value);
}
-static method A2|unary-(final self::A1* #this) → core::int* {
+static method A2|unary-(lowered final self::A1* #this) → core::int* {
return #this.{self::A1::getInstanceField}().{core::int::unary-}();
}
static get A2|staticProperty() → core::int*
diff --git a/pkg/front_end/testcases/extensions/other_kinds.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/other_kinds.dart.strong.transformed.expect
index a2cf3e1..c83a5d1 100644
--- a/pkg/front_end/testcases/extensions/other_kinds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/other_kinds.dart.strong.transformed.expect
@@ -40,18 +40,18 @@
static set staticProperty = set self::A2|staticProperty;
}
static field core::int* A2|staticField = self::A1::getStaticField();
-static method A2|get#instanceProperty(final self::A1* #this) → core::int*
+static method A2|get#instanceProperty(lowered final self::A1* #this) → core::int*
return #this.{self::A1::getInstanceField}();
-static method A2|set#instanceProperty(final self::A1* #this, core::int* value) → void {
+static method A2|set#instanceProperty(lowered final self::A1* #this, core::int* value) → void {
#this.{self::A1::setInstanceField}(value);
}
-static method A2|+(final self::A1* #this, core::int* value) → core::int* {
+static method A2|+(lowered final self::A1* #this, core::int* value) → core::int* {
return #this.{self::A1::getInstanceField}().{core::num::+}(value);
}
-static method A2|-(final self::A1* #this, core::int* value) → core::int* {
+static method A2|-(lowered final self::A1* #this, core::int* value) → core::int* {
return #this.{self::A1::getInstanceField}().{core::num::-}(value);
}
-static method A2|unary-(final self::A1* #this) → core::int* {
+static method A2|unary-(lowered final self::A1* #this) → core::int* {
return #this.{self::A1::getInstanceField}().{core::int::unary-}();
}
static get A2|staticProperty() → core::int*
diff --git a/pkg/front_end/testcases/extensions/private_members.dart.outline.expect b/pkg/front_end/testcases/extensions/private_members.dart.outline.expect
index adc6463..5f25ddb 100644
--- a/pkg/front_end/testcases/extensions/private_members.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/private_members.dart.outline.expect
@@ -42,53 +42,53 @@
method test3 = self2::_extension#0|test3;
tearoff test3 = self2::_extension#0|get#test3;
}
-static method _PrivateExtension|publicMethod1(final core::String* #this) → core::int*
+static method _PrivateExtension|publicMethod1(lowered final core::String* #this) → core::int*
;
-static method _PrivateExtension|get#publicMethod1(final core::String* #this) → () →* core::int*
+static method _PrivateExtension|get#publicMethod1(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self2::_PrivateExtension|publicMethod1(#this);
-static method _PrivateExtension|_privateMethod1(final core::String* #this) → core::int*
+static method _PrivateExtension|_privateMethod1(lowered final core::String* #this) → core::int*
;
-static method _PrivateExtension|get#_privateMethod1(final core::String* #this) → () →* core::int*
+static method _PrivateExtension|get#_privateMethod1(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self2::_PrivateExtension|_privateMethod1(#this);
static method _PrivateExtension|publicStaticMethod1() → core::int*
;
static method _PrivateExtension|_privateStaticMethod1() → core::int*
;
-static method _PrivateExtension|test1(final core::String* #this) → dynamic
+static method _PrivateExtension|test1(lowered final core::String* #this) → dynamic
;
-static method _PrivateExtension|get#test1(final core::String* #this) → () →* dynamic
+static method _PrivateExtension|get#test1(lowered final core::String* #this) → () →* dynamic
return () → dynamic => self2::_PrivateExtension|test1(#this);
-static method PublicExtension|publicMethod2(final core::String* #this) → core::int*
+static method PublicExtension|publicMethod2(lowered final core::String* #this) → core::int*
;
-static method PublicExtension|get#publicMethod2(final core::String* #this) → () →* core::int*
+static method PublicExtension|get#publicMethod2(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self2::PublicExtension|publicMethod2(#this);
-static method PublicExtension|_privateMethod2(final core::String* #this) → core::int*
+static method PublicExtension|_privateMethod2(lowered final core::String* #this) → core::int*
;
-static method PublicExtension|get#_privateMethod2(final core::String* #this) → () →* core::int*
+static method PublicExtension|get#_privateMethod2(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self2::PublicExtension|_privateMethod2(#this);
static method PublicExtension|publicStaticMethod2() → core::int*
;
static method PublicExtension|_privateStaticMethod2() → core::int*
;
-static method PublicExtension|test2(final core::String* #this) → dynamic
+static method PublicExtension|test2(lowered final core::String* #this) → dynamic
;
-static method PublicExtension|get#test2(final core::String* #this) → () →* dynamic
+static method PublicExtension|get#test2(lowered final core::String* #this) → () →* dynamic
return () → dynamic => self2::PublicExtension|test2(#this);
-static method _extension#0|publicMethod3(final core::String* #this) → core::int*
+static method _extension#0|publicMethod3(lowered final core::String* #this) → core::int*
;
-static method _extension#0|get#publicMethod3(final core::String* #this) → () →* core::int*
+static method _extension#0|get#publicMethod3(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self2::_extension#0|publicMethod3(#this);
-static method _extension#0|_privateMethod3(final core::String* #this) → core::int*
+static method _extension#0|_privateMethod3(lowered final core::String* #this) → core::int*
;
-static method _extension#0|get#_privateMethod3(final core::String* #this) → () →* core::int*
+static method _extension#0|get#_privateMethod3(lowered final core::String* #this) → () →* core::int*
return () → core::int* => self2::_extension#0|_privateMethod3(#this);
static method _extension#0|publicStaticMethod3() → core::int*
;
static method _extension#0|_privateStaticMethod3() → core::int*
;
-static method _extension#0|test3(final core::String* #this) → dynamic
+static method _extension#0|test3(lowered final core::String* #this) → dynamic
;
-static method _extension#0|get#test3(final core::String* #this) → () →* dynamic
+static method _extension#0|get#test3(lowered final core::String* #this) → () →* dynamic
return () → dynamic => self2::_extension#0|test3(#this);
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/private_members.dart.strong.expect b/pkg/front_end/testcases/extensions/private_members.dart.strong.expect
index 79b67f0..344b0e7 100644
--- a/pkg/front_end/testcases/extensions/private_members.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/private_members.dart.strong.expect
@@ -137,65 +137,65 @@
method test3 = pri::_extension#0|test3;
tearoff test3 = pri::_extension#0|get#test3;
}
-static method _PrivateExtension|publicMethod1(final core::String* #this) → core::int*
+static method _PrivateExtension|publicMethod1(lowered final core::String* #this) → core::int*
return 42;
-static method _PrivateExtension|get#publicMethod1(final core::String* #this) → () →* core::int*
+static method _PrivateExtension|get#publicMethod1(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::_PrivateExtension|publicMethod1(#this);
-static method _PrivateExtension|_privateMethod1(final core::String* #this) → core::int*
+static method _PrivateExtension|_privateMethod1(lowered final core::String* #this) → core::int*
return 87;
-static method _PrivateExtension|get#_privateMethod1(final core::String* #this) → () →* core::int*
+static method _PrivateExtension|get#_privateMethod1(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::_PrivateExtension|_privateMethod1(#this);
static method _PrivateExtension|publicStaticMethod1() → core::int*
return 24;
static method _PrivateExtension|_privateStaticMethod1() → core::int*
return 78;
-static method _PrivateExtension|test1(final core::String* #this) → dynamic {
+static method _PrivateExtension|test1(lowered final core::String* #this) → dynamic {
pri::expect(42, pri::_PrivateExtension|publicMethod1(#this));
pri::expect(87, pri::_PrivateExtension|_privateMethod1(#this));
pri::expect(24, pri::_PrivateExtension|publicStaticMethod1());
pri::expect(78, pri::_PrivateExtension|_privateStaticMethod1());
}
-static method _PrivateExtension|get#test1(final core::String* #this) → () →* dynamic
+static method _PrivateExtension|get#test1(lowered final core::String* #this) → () →* dynamic
return () → dynamic => pri::_PrivateExtension|test1(#this);
-static method PublicExtension|publicMethod2(final core::String* #this) → core::int*
+static method PublicExtension|publicMethod2(lowered final core::String* #this) → core::int*
return 123;
-static method PublicExtension|get#publicMethod2(final core::String* #this) → () →* core::int*
+static method PublicExtension|get#publicMethod2(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::PublicExtension|publicMethod2(#this);
-static method PublicExtension|_privateMethod2(final core::String* #this) → core::int*
+static method PublicExtension|_privateMethod2(lowered final core::String* #this) → core::int*
return 237;
-static method PublicExtension|get#_privateMethod2(final core::String* #this) → () →* core::int*
+static method PublicExtension|get#_privateMethod2(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::PublicExtension|_privateMethod2(#this);
static method PublicExtension|publicStaticMethod2() → core::int*
return 321;
static method PublicExtension|_privateStaticMethod2() → core::int*
return 732;
-static method PublicExtension|test2(final core::String* #this) → dynamic {
+static method PublicExtension|test2(lowered final core::String* #this) → dynamic {
pri::expect(123, pri::PublicExtension|publicMethod2(#this));
pri::expect(237, pri::PublicExtension|_privateMethod2(#this));
pri::expect(321, pri::PublicExtension|publicStaticMethod2());
pri::expect(732, pri::PublicExtension|_privateStaticMethod2());
}
-static method PublicExtension|get#test2(final core::String* #this) → () →* dynamic
+static method PublicExtension|get#test2(lowered final core::String* #this) → () →* dynamic
return () → dynamic => pri::PublicExtension|test2(#this);
-static method _extension#0|publicMethod3(final core::String* #this) → core::int*
+static method _extension#0|publicMethod3(lowered final core::String* #this) → core::int*
return 473;
-static method _extension#0|get#publicMethod3(final core::String* #this) → () →* core::int*
+static method _extension#0|get#publicMethod3(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::_extension#0|publicMethod3(#this);
-static method _extension#0|_privateMethod3(final core::String* #this) → core::int*
+static method _extension#0|_privateMethod3(lowered final core::String* #this) → core::int*
return 586;
-static method _extension#0|get#_privateMethod3(final core::String* #this) → () →* core::int*
+static method _extension#0|get#_privateMethod3(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::_extension#0|_privateMethod3(#this);
static method _extension#0|publicStaticMethod3() → core::int*
return 374;
static method _extension#0|_privateStaticMethod3() → core::int*
return 685;
-static method _extension#0|test3(final core::String* #this) → dynamic {
+static method _extension#0|test3(lowered final core::String* #this) → dynamic {
pri::expect(473, pri::_extension#0|publicMethod3(#this));
pri::expect(586, pri::_extension#0|_privateMethod3(#this));
pri::expect(374, pri::_extension#0|publicStaticMethod3());
pri::expect(685, pri::_extension#0|_privateStaticMethod3());
}
-static method _extension#0|get#test3(final core::String* #this) → () →* dynamic
+static method _extension#0|get#test3(lowered final core::String* #this) → () →* dynamic
return () → dynamic => pri::_extension#0|test3(#this);
static method test() → dynamic {
pri::expect(42, pri::_PrivateExtension|publicMethod1(""));
diff --git a/pkg/front_end/testcases/extensions/private_members.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/private_members.dart.strong.transformed.expect
index 79b67f0..344b0e7 100644
--- a/pkg/front_end/testcases/extensions/private_members.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/private_members.dart.strong.transformed.expect
@@ -137,65 +137,65 @@
method test3 = pri::_extension#0|test3;
tearoff test3 = pri::_extension#0|get#test3;
}
-static method _PrivateExtension|publicMethod1(final core::String* #this) → core::int*
+static method _PrivateExtension|publicMethod1(lowered final core::String* #this) → core::int*
return 42;
-static method _PrivateExtension|get#publicMethod1(final core::String* #this) → () →* core::int*
+static method _PrivateExtension|get#publicMethod1(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::_PrivateExtension|publicMethod1(#this);
-static method _PrivateExtension|_privateMethod1(final core::String* #this) → core::int*
+static method _PrivateExtension|_privateMethod1(lowered final core::String* #this) → core::int*
return 87;
-static method _PrivateExtension|get#_privateMethod1(final core::String* #this) → () →* core::int*
+static method _PrivateExtension|get#_privateMethod1(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::_PrivateExtension|_privateMethod1(#this);
static method _PrivateExtension|publicStaticMethod1() → core::int*
return 24;
static method _PrivateExtension|_privateStaticMethod1() → core::int*
return 78;
-static method _PrivateExtension|test1(final core::String* #this) → dynamic {
+static method _PrivateExtension|test1(lowered final core::String* #this) → dynamic {
pri::expect(42, pri::_PrivateExtension|publicMethod1(#this));
pri::expect(87, pri::_PrivateExtension|_privateMethod1(#this));
pri::expect(24, pri::_PrivateExtension|publicStaticMethod1());
pri::expect(78, pri::_PrivateExtension|_privateStaticMethod1());
}
-static method _PrivateExtension|get#test1(final core::String* #this) → () →* dynamic
+static method _PrivateExtension|get#test1(lowered final core::String* #this) → () →* dynamic
return () → dynamic => pri::_PrivateExtension|test1(#this);
-static method PublicExtension|publicMethod2(final core::String* #this) → core::int*
+static method PublicExtension|publicMethod2(lowered final core::String* #this) → core::int*
return 123;
-static method PublicExtension|get#publicMethod2(final core::String* #this) → () →* core::int*
+static method PublicExtension|get#publicMethod2(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::PublicExtension|publicMethod2(#this);
-static method PublicExtension|_privateMethod2(final core::String* #this) → core::int*
+static method PublicExtension|_privateMethod2(lowered final core::String* #this) → core::int*
return 237;
-static method PublicExtension|get#_privateMethod2(final core::String* #this) → () →* core::int*
+static method PublicExtension|get#_privateMethod2(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::PublicExtension|_privateMethod2(#this);
static method PublicExtension|publicStaticMethod2() → core::int*
return 321;
static method PublicExtension|_privateStaticMethod2() → core::int*
return 732;
-static method PublicExtension|test2(final core::String* #this) → dynamic {
+static method PublicExtension|test2(lowered final core::String* #this) → dynamic {
pri::expect(123, pri::PublicExtension|publicMethod2(#this));
pri::expect(237, pri::PublicExtension|_privateMethod2(#this));
pri::expect(321, pri::PublicExtension|publicStaticMethod2());
pri::expect(732, pri::PublicExtension|_privateStaticMethod2());
}
-static method PublicExtension|get#test2(final core::String* #this) → () →* dynamic
+static method PublicExtension|get#test2(lowered final core::String* #this) → () →* dynamic
return () → dynamic => pri::PublicExtension|test2(#this);
-static method _extension#0|publicMethod3(final core::String* #this) → core::int*
+static method _extension#0|publicMethod3(lowered final core::String* #this) → core::int*
return 473;
-static method _extension#0|get#publicMethod3(final core::String* #this) → () →* core::int*
+static method _extension#0|get#publicMethod3(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::_extension#0|publicMethod3(#this);
-static method _extension#0|_privateMethod3(final core::String* #this) → core::int*
+static method _extension#0|_privateMethod3(lowered final core::String* #this) → core::int*
return 586;
-static method _extension#0|get#_privateMethod3(final core::String* #this) → () →* core::int*
+static method _extension#0|get#_privateMethod3(lowered final core::String* #this) → () →* core::int*
return () → core::int* => pri::_extension#0|_privateMethod3(#this);
static method _extension#0|publicStaticMethod3() → core::int*
return 374;
static method _extension#0|_privateStaticMethod3() → core::int*
return 685;
-static method _extension#0|test3(final core::String* #this) → dynamic {
+static method _extension#0|test3(lowered final core::String* #this) → dynamic {
pri::expect(473, pri::_extension#0|publicMethod3(#this));
pri::expect(586, pri::_extension#0|_privateMethod3(#this));
pri::expect(374, pri::_extension#0|publicStaticMethod3());
pri::expect(685, pri::_extension#0|_privateStaticMethod3());
}
-static method _extension#0|get#test3(final core::String* #this) → () →* dynamic
+static method _extension#0|get#test3(lowered final core::String* #this) → () →* dynamic
return () → dynamic => pri::_extension#0|test3(#this);
static method test() → dynamic {
pri::expect(42, pri::_PrivateExtension|publicMethod1(""));
diff --git a/pkg/front_end/testcases/extensions/static_access.dart.outline.expect b/pkg/front_end/testcases/extensions/static_access.dart.outline.expect
index 9eda9c7..362a61f 100644
--- a/pkg/front_end/testcases/extensions/static_access.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/static_access.dart.outline.expect
@@ -36,13 +36,13 @@
;
static set Extension|property(dynamic value) → void
;
-static method Extension|instanceMethod(final self::Class* #this) → dynamic
+static method Extension|instanceMethod(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#instanceMethod(final self::Class* #this) → () →* dynamic
+static method Extension|get#instanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|instanceMethod(#this);
-static method Extension|get#instanceProperty(final self::Class* #this) → dynamic
+static method Extension|get#instanceProperty(lowered final self::Class* #this) → dynamic
;
-static method Extension|set#instanceProperty(final self::Class* #this, dynamic value) → void
+static method Extension|set#instanceProperty(lowered final self::Class* #this, dynamic value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/static_access.dart.strong.expect b/pkg/front_end/testcases/extensions/static_access.dart.strong.expect
index a6390b5..5cc472a 100644
--- a/pkg/front_end/testcases/extensions/static_access.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/static_access.dart.strong.expect
@@ -34,12 +34,12 @@
static get Extension|property() → dynamic
return 42;
static set Extension|property(dynamic value) → void {}
-static method Extension|instanceMethod(final self::Class* #this) → dynamic {}
-static method Extension|get#instanceMethod(final self::Class* #this) → () →* dynamic
+static method Extension|instanceMethod(lowered final self::Class* #this) → dynamic {}
+static method Extension|get#instanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|instanceMethod(#this);
-static method Extension|get#instanceProperty(final self::Class* #this) → dynamic
+static method Extension|get#instanceProperty(lowered final self::Class* #this) → dynamic
return 42;
-static method Extension|set#instanceProperty(final self::Class* #this, dynamic value) → void {}
+static method Extension|set#instanceProperty(lowered final self::Class* #this, dynamic value) → void {}
static method main() → dynamic {
self::Extension|method();
self::Extension|genericMethod<core::int*>(42);
diff --git a/pkg/front_end/testcases/extensions/static_access.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/static_access.dart.strong.transformed.expect
index a6390b5..5cc472a 100644
--- a/pkg/front_end/testcases/extensions/static_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/static_access.dart.strong.transformed.expect
@@ -34,12 +34,12 @@
static get Extension|property() → dynamic
return 42;
static set Extension|property(dynamic value) → void {}
-static method Extension|instanceMethod(final self::Class* #this) → dynamic {}
-static method Extension|get#instanceMethod(final self::Class* #this) → () →* dynamic
+static method Extension|instanceMethod(lowered final self::Class* #this) → dynamic {}
+static method Extension|get#instanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|instanceMethod(#this);
-static method Extension|get#instanceProperty(final self::Class* #this) → dynamic
+static method Extension|get#instanceProperty(lowered final self::Class* #this) → dynamic
return 42;
-static method Extension|set#instanceProperty(final self::Class* #this, dynamic value) → void {}
+static method Extension|set#instanceProperty(lowered final self::Class* #this, dynamic value) → void {}
static method main() → dynamic {
self::Extension|method();
self::Extension|genericMethod<core::int*>(42);
diff --git a/pkg/front_end/testcases/extensions/static_access_of_instance.dart.outline.expect b/pkg/front_end/testcases/extensions/static_access_of_instance.dart.outline.expect
index b403165..a401139 100644
--- a/pkg/front_end/testcases/extensions/static_access_of_instance.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/static_access_of_instance.dart.outline.expect
@@ -22,13 +22,13 @@
get instanceProperty = self::Extension|get#instanceProperty;
set instanceProperty = self::Extension|set#instanceProperty;
}
-static method Extension|instanceMethod(final self::Class* #this) → dynamic
+static method Extension|instanceMethod(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#instanceMethod(final self::Class* #this) → () →* dynamic
+static method Extension|get#instanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|instanceMethod(#this);
-static method Extension|get#instanceProperty(final self::Class* #this) → dynamic
+static method Extension|get#instanceProperty(lowered final self::Class* #this) → dynamic
;
-static method Extension|set#instanceProperty(final self::Class* #this, dynamic value) → void
+static method Extension|set#instanceProperty(lowered final self::Class* #this, dynamic value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/static_access_of_instance.dart.strong.expect b/pkg/front_end/testcases/extensions/static_access_of_instance.dart.strong.expect
index fd0a648..09b420f 100644
--- a/pkg/front_end/testcases/extensions/static_access_of_instance.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/static_access_of_instance.dart.strong.expect
@@ -42,12 +42,12 @@
get instanceProperty = self::Extension|get#instanceProperty;
set instanceProperty = self::Extension|set#instanceProperty;
}
-static method Extension|instanceMethod(final self::Class* #this) → dynamic {}
-static method Extension|get#instanceMethod(final self::Class* #this) → () →* dynamic
+static method Extension|instanceMethod(lowered final self::Class* #this) → dynamic {}
+static method Extension|get#instanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|instanceMethod(#this);
-static method Extension|get#instanceProperty(final self::Class* #this) → dynamic
+static method Extension|get#instanceProperty(lowered final self::Class* #this) → dynamic
return 42;
-static method Extension|set#instanceProperty(final self::Class* #this, dynamic value) → void {}
+static method Extension|set#instanceProperty(lowered final self::Class* #this, dynamic value) → void {}
static method main() → dynamic {
invalid-expression "pkg/front_end/testcases/extensions/static_access_of_instance.dart:14:13: Error: Method not found: 'Extension.instanceMethod'.
Extension.instanceMethod();
diff --git a/pkg/front_end/testcases/extensions/static_access_of_instance.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/static_access_of_instance.dart.strong.transformed.expect
index fd0a648..09b420f 100644
--- a/pkg/front_end/testcases/extensions/static_access_of_instance.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/static_access_of_instance.dart.strong.transformed.expect
@@ -42,12 +42,12 @@
get instanceProperty = self::Extension|get#instanceProperty;
set instanceProperty = self::Extension|set#instanceProperty;
}
-static method Extension|instanceMethod(final self::Class* #this) → dynamic {}
-static method Extension|get#instanceMethod(final self::Class* #this) → () →* dynamic
+static method Extension|instanceMethod(lowered final self::Class* #this) → dynamic {}
+static method Extension|get#instanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|instanceMethod(#this);
-static method Extension|get#instanceProperty(final self::Class* #this) → dynamic
+static method Extension|get#instanceProperty(lowered final self::Class* #this) → dynamic
return 42;
-static method Extension|set#instanceProperty(final self::Class* #this, dynamic value) → void {}
+static method Extension|set#instanceProperty(lowered final self::Class* #this, dynamic value) → void {}
static method main() → dynamic {
invalid-expression "pkg/front_end/testcases/extensions/static_access_of_instance.dart:14:13: Error: Method not found: 'Extension.instanceMethod'.
Extension.instanceMethod();
diff --git a/pkg/front_end/testcases/extensions/tear_offs.dart.outline.expect b/pkg/front_end/testcases/extensions/tear_offs.dart.outline.expect
index 250f13d..da9b31b 100644
--- a/pkg/front_end/testcases/extensions/tear_offs.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/tear_offs.dart.outline.expect
@@ -25,19 +25,19 @@
method errors = self::Extension|errors;
tearoff errors = self::Extension|get#errors;
}
-static method Extension|id<T extends core::Object* = dynamic>(final self::Class* #this, self::Extension|id::T* t) → self::Extension|id::T*
+static method Extension|id<T extends core::Object* = dynamic>(lowered final self::Class* #this, self::Extension|id::T* t) → self::Extension|id::T*
;
-static method Extension|get#id(final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
+static method Extension|get#id(lowered final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
return <T extends core::Object* = dynamic>(T* t) → T* => self::Extension|id<T*>(#this, t);
-static method Extension|get#getter(final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
+static method Extension|get#getter(lowered final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
;
-static method Extension|method(final self::Class* #this) → dynamic
+static method Extension|method(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#method(final self::Class* #this) → () →* dynamic
+static method Extension|get#method(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|method(#this);
-static method Extension|errors(final self::Class* #this) → dynamic
+static method Extension|errors(lowered final self::Class* #this) → dynamic
;
-static method Extension|get#errors(final self::Class* #this) → () →* dynamic
+static method Extension|get#errors(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|errors(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/tear_offs.dart.strong.expect b/pkg/front_end/testcases/extensions/tear_offs.dart.strong.expect
index 6b6aaf0..d3c534e 100644
--- a/pkg/front_end/testcases/extensions/tear_offs.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/tear_offs.dart.strong.expect
@@ -41,23 +41,23 @@
method errors = self::Extension|errors;
tearoff errors = self::Extension|get#errors;
}
-static method Extension|id<T extends core::Object* = dynamic>(final self::Class* #this, self::Extension|id::T* t) → self::Extension|id::T*
+static method Extension|id<T extends core::Object* = dynamic>(lowered final self::Class* #this, self::Extension|id::T* t) → self::Extension|id::T*
return t;
-static method Extension|get#id(final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
+static method Extension|get#id(lowered final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
return <T extends core::Object* = dynamic>(T* t) → T* => self::Extension|id<T*>(#this, t);
-static method Extension|get#getter(final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
+static method Extension|get#getter(lowered final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
return self::Extension|get#id(#this);
-static method Extension|method(final self::Class* #this) → dynamic {
+static method Extension|method(lowered final self::Class* #this) → dynamic {
(core::String*) →* core::String* stringId = self::Extension|get#id(#this)<core::String*>;
}
-static method Extension|get#method(final self::Class* #this) → () →* dynamic
+static method Extension|get#method(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|method(#this);
-static method Extension|errors(final self::Class* #this) → dynamic {
+static method Extension|errors(lowered final self::Class* #this) → dynamic {
(core::int*) →* core::int* intId = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/extensions/tear_offs.dart:17:31: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
int Function(int) intId = getter;
^" in self::Extension|get#getter(#this) as{TypeError} (core::int*) →* core::int*;
}
-static method Extension|get#errors(final self::Class* #this) → () →* dynamic
+static method Extension|get#errors(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|errors(#this);
static method main() → dynamic {
self::Class* c = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/tear_offs.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/tear_offs.dart.strong.transformed.expect
index 6b6aaf0..d3c534e 100644
--- a/pkg/front_end/testcases/extensions/tear_offs.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/tear_offs.dart.strong.transformed.expect
@@ -41,23 +41,23 @@
method errors = self::Extension|errors;
tearoff errors = self::Extension|get#errors;
}
-static method Extension|id<T extends core::Object* = dynamic>(final self::Class* #this, self::Extension|id::T* t) → self::Extension|id::T*
+static method Extension|id<T extends core::Object* = dynamic>(lowered final self::Class* #this, self::Extension|id::T* t) → self::Extension|id::T*
return t;
-static method Extension|get#id(final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
+static method Extension|get#id(lowered final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
return <T extends core::Object* = dynamic>(T* t) → T* => self::Extension|id<T*>(#this, t);
-static method Extension|get#getter(final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
+static method Extension|get#getter(lowered final self::Class* #this) → <T extends core::Object* = dynamic>(T*) →* T*
return self::Extension|get#id(#this);
-static method Extension|method(final self::Class* #this) → dynamic {
+static method Extension|method(lowered final self::Class* #this) → dynamic {
(core::String*) →* core::String* stringId = self::Extension|get#id(#this)<core::String*>;
}
-static method Extension|get#method(final self::Class* #this) → () →* dynamic
+static method Extension|get#method(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|method(#this);
-static method Extension|errors(final self::Class* #this) → dynamic {
+static method Extension|errors(lowered final self::Class* #this) → dynamic {
(core::int*) →* core::int* intId = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/extensions/tear_offs.dart:17:31: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
int Function(int) intId = getter;
^" in self::Extension|get#getter(#this) as{TypeError} (core::int*) →* core::int*;
}
-static method Extension|get#errors(final self::Class* #this) → () →* dynamic
+static method Extension|get#errors(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|errors(#this);
static method main() → dynamic {
self::Class* c = new self::Class::•();
diff --git a/pkg/front_end/testcases/extensions/type_variable_bound.dart.outline.expect b/pkg/front_end/testcases/extensions/type_variable_bound.dart.outline.expect
index 6574fb9..6efbb7d 100644
--- a/pkg/front_end/testcases/extensions/type_variable_bound.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/type_variable_bound.dart.outline.expect
@@ -28,13 +28,13 @@
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
-static method Extension|method1<T extends core::Object* = dynamic>(final self::Extension|method1::T* #this) → self::Extension|method1::T*
+static method Extension|method1<T extends core::Object* = dynamic>(lowered final self::Extension|method1::T* #this) → self::Extension|method1::T*
;
-static method Extension|get#method1<T extends core::Object* = dynamic>(final self::Extension|get#method1::T* #this) → () →* self::Extension|get#method1::T*
+static method Extension|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension|get#method1::T* #this) → () →* self::Extension|get#method1::T*
return () → self::Extension|get#method1::T* => self::Extension|method1<self::Extension|get#method1::T*>(#this);
-static method BoundExtension|method2<T extends self::Class* = self::Class*>(final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
+static method BoundExtension|method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
;
-static method BoundExtension|get#method2<T extends self::Class* = self::Class*>(final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
+static method BoundExtension|get#method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
return () → self::BoundExtension|get#method2::T* => self::BoundExtension|method2<self::BoundExtension|get#method2::T*>(#this);
static method test1<T extends core::Object* = dynamic>(self::test1::T* t1) → self::Class*
;
diff --git a/pkg/front_end/testcases/extensions/type_variable_bound.dart.strong.expect b/pkg/front_end/testcases/extensions/type_variable_bound.dart.strong.expect
index 14cb1a6..3dfb6be 100644
--- a/pkg/front_end/testcases/extensions/type_variable_bound.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/type_variable_bound.dart.strong.expect
@@ -30,13 +30,13 @@
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
-static method Extension|method1<T extends core::Object* = dynamic>(final self::Extension|method1::T* #this) → self::Extension|method1::T*
+static method Extension|method1<T extends core::Object* = dynamic>(lowered final self::Extension|method1::T* #this) → self::Extension|method1::T*
return #this;
-static method Extension|get#method1<T extends core::Object* = dynamic>(final self::Extension|get#method1::T* #this) → () →* self::Extension|get#method1::T*
+static method Extension|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension|get#method1::T* #this) → () →* self::Extension|get#method1::T*
return () → self::Extension|get#method1::T* => self::Extension|method1<self::Extension|get#method1::T*>(#this);
-static method BoundExtension|method2<T extends self::Class* = self::Class*>(final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
+static method BoundExtension|method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
return #this;
-static method BoundExtension|get#method2<T extends self::Class* = self::Class*>(final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
+static method BoundExtension|get#method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
return () → self::BoundExtension|get#method2::T* => self::BoundExtension|method2<self::BoundExtension|get#method2::T*>(#this);
static method test1<T extends core::Object* = dynamic>(self::test1::T* t1) → self::Class* {
if(t1 is self::SubClass*) {
diff --git a/pkg/front_end/testcases/extensions/type_variable_bound.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/type_variable_bound.dart.strong.transformed.expect
index 0bc41be..79b6d8f 100644
--- a/pkg/front_end/testcases/extensions/type_variable_bound.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/type_variable_bound.dart.strong.transformed.expect
@@ -30,13 +30,13 @@
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
-static method Extension|method1<T extends core::Object* = dynamic>(final self::Extension|method1::T* #this) → self::Extension|method1::T*
+static method Extension|method1<T extends core::Object* = dynamic>(lowered final self::Extension|method1::T* #this) → self::Extension|method1::T*
return #this;
-static method Extension|get#method1<T extends core::Object* = dynamic>(final self::Extension|get#method1::T* #this) → () →* self::Extension|get#method1::T*
+static method Extension|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension|get#method1::T* #this) → () →* self::Extension|get#method1::T*
return () → self::Extension|get#method1::T* => self::Extension|method1<self::Extension|get#method1::T*>(#this);
-static method BoundExtension|method2<T extends self::Class* = self::Class*>(final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
+static method BoundExtension|method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
return #this;
-static method BoundExtension|get#method2<T extends self::Class* = self::Class*>(final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
+static method BoundExtension|get#method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
return () → self::BoundExtension|get#method2::T* => self::BoundExtension|method2<self::BoundExtension|get#method2::T*>(#this);
static method test1<T extends core::Object* = dynamic>(self::test1::T* t1) → self::Class* {
if(t1 is self::SubClass*) {
diff --git a/pkg/front_end/testcases/extensions/type_variables.dart.outline.expect b/pkg/front_end/testcases/extensions/type_variables.dart.outline.expect
index f786bf3..38ec5af 100644
--- a/pkg/front_end/testcases/extensions/type_variables.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/type_variables.dart.outline.expect
@@ -28,17 +28,17 @@
method method = self::A4|method;
tearoff method = self::A4|get#method;
}
-static method A2|method1<T extends core::Object* = dynamic, S extends self::A2|method1::T* = dynamic>(final self::A1<self::A2|method1::T*>* #this) → self::A1<self::A2|method1::T*>*
+static method A2|method1<T extends core::Object* = dynamic, S extends self::A2|method1::T* = dynamic>(lowered final self::A1<self::A2|method1::T*>* #this) → self::A1<self::A2|method1::T*>*
;
-static method A2|get#method1<T extends core::Object* = dynamic>(final self::A1<self::A2|get#method1::T*>* #this) → <S extends self::A2|get#method1::T* = dynamic>() →* self::A1<self::A2|get#method1::T*>*
+static method A2|get#method1<T extends core::Object* = dynamic>(lowered final self::A1<self::A2|get#method1::T*>* #this) → <S extends self::A2|get#method1::T* = dynamic>() →* self::A1<self::A2|get#method1::T*>*
return <S extends self::A2|get#method1::T* = dynamic>() → self::A1<self::A2|get#method1::T*>* => self::A2|method1<self::A2|get#method1::T*, S*>(#this);
-static method A2|method2<T extends core::Object* = dynamic, S extends self::A1<self::A2|method2::T*>* = self::A1<dynamic>*>(final self::A1<self::A2|method2::T*>* #this, self::A2|method2::S* o) → self::A1<self::A2|method2::T*>*
+static method A2|method2<T extends core::Object* = dynamic, S extends self::A1<self::A2|method2::T*>* = self::A1<dynamic>*>(lowered final self::A1<self::A2|method2::T*>* #this, self::A2|method2::S* o) → self::A1<self::A2|method2::T*>*
;
-static method A2|get#method2<T extends core::Object* = dynamic>(final self::A1<self::A2|get#method2::T*>* #this) → <S extends self::A1<self::A2|get#method2::T*>* = self::A1<dynamic>*>(S*) →* self::A1<self::A2|get#method2::T*>*
+static method A2|get#method2<T extends core::Object* = dynamic>(lowered final self::A1<self::A2|get#method2::T*>* #this) → <S extends self::A1<self::A2|get#method2::T*>* = self::A1<dynamic>*>(S*) →* self::A1<self::A2|get#method2::T*>*
return <S extends self::A1<self::A2|get#method2::T*>* = self::A1<dynamic>*>(S* o) → self::A1<self::A2|get#method2::T*>* => self::A2|method2<self::A2|get#method2::T*, S*>(#this, o);
-static method A4|method<#T extends core::Object* = dynamic, T extends core::Object* = dynamic>(final self::A1<self::A4|method::#T*>* #this) → dynamic
+static method A4|method<#T extends core::Object* = dynamic, T extends core::Object* = dynamic>(lowered final self::A1<self::A4|method::#T*>* #this) → dynamic
;
-static method A4|get#method<#T extends core::Object* = dynamic>(final self::A1<self::A4|get#method::#T*>* #this) → <T extends core::Object* = dynamic>() →* dynamic
+static method A4|get#method<#T extends core::Object* = dynamic>(lowered final self::A1<self::A4|get#method::#T*>* #this) → <T extends core::Object* = dynamic>() →* dynamic
return <T extends core::Object* = dynamic>() → dynamic => self::A4|method<self::A4|get#method::#T*, T*>(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/type_variables.dart.strong.expect b/pkg/front_end/testcases/extensions/type_variables.dart.strong.expect
index e2c6597..aeae0f7 100644
--- a/pkg/front_end/testcases/extensions/type_variables.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/type_variables.dart.strong.expect
@@ -29,20 +29,20 @@
method method = self::A4|method;
tearoff method = self::A4|get#method;
}
-static method A2|method1<T extends core::Object* = dynamic, S extends self::A2|method1::T* = dynamic>(final self::A1<self::A2|method1::T*>* #this) → self::A1<self::A2|method1::T*>* {
+static method A2|method1<T extends core::Object* = dynamic, S extends self::A2|method1::T* = dynamic>(lowered final self::A1<self::A2|method1::T*>* #this) → self::A1<self::A2|method1::T*>* {
return #this;
}
-static method A2|get#method1<T extends core::Object* = dynamic>(final self::A1<self::A2|get#method1::T*>* #this) → <S extends self::A2|get#method1::T* = dynamic>() →* self::A1<self::A2|get#method1::T*>*
+static method A2|get#method1<T extends core::Object* = dynamic>(lowered final self::A1<self::A2|get#method1::T*>* #this) → <S extends self::A2|get#method1::T* = dynamic>() →* self::A1<self::A2|get#method1::T*>*
return <S extends self::A2|get#method1::T* = dynamic>() → self::A1<self::A2|get#method1::T*>* => self::A2|method1<self::A2|get#method1::T*, S*>(#this);
-static method A2|method2<T extends core::Object* = dynamic, S extends self::A1<self::A2|method2::T*>* = self::A1<dynamic>*>(final self::A1<self::A2|method2::T*>* #this, self::A2|method2::S* o) → self::A1<self::A2|method2::T*>* {
+static method A2|method2<T extends core::Object* = dynamic, S extends self::A1<self::A2|method2::T*>* = self::A1<dynamic>*>(lowered final self::A1<self::A2|method2::T*>* #this, self::A2|method2::S* o) → self::A1<self::A2|method2::T*>* {
core::print(o);
core::print(self::A2|method2::T*);
core::print(self::A2|method2::S*);
return #this;
}
-static method A2|get#method2<T extends core::Object* = dynamic>(final self::A1<self::A2|get#method2::T*>* #this) → <S extends self::A1<self::A2|get#method2::T*>* = self::A1<dynamic>*>(S*) →* self::A1<self::A2|get#method2::T*>*
+static method A2|get#method2<T extends core::Object* = dynamic>(lowered final self::A1<self::A2|get#method2::T*>* #this) → <S extends self::A1<self::A2|get#method2::T*>* = self::A1<dynamic>*>(S*) →* self::A1<self::A2|get#method2::T*>*
return <S extends self::A1<self::A2|get#method2::T*>* = self::A1<dynamic>*>(S* o) → self::A1<self::A2|get#method2::T*>* => self::A2|method2<self::A2|get#method2::T*, S*>(#this, o);
-static method A4|method<#T extends core::Object* = dynamic, T extends core::Object* = dynamic>(final self::A1<self::A4|method::#T*>* #this) → dynamic {}
-static method A4|get#method<#T extends core::Object* = dynamic>(final self::A1<self::A4|get#method::#T*>* #this) → <T extends core::Object* = dynamic>() →* dynamic
+static method A4|method<#T extends core::Object* = dynamic, T extends core::Object* = dynamic>(lowered final self::A1<self::A4|method::#T*>* #this) → dynamic {}
+static method A4|get#method<#T extends core::Object* = dynamic>(lowered final self::A1<self::A4|get#method::#T*>* #this) → <T extends core::Object* = dynamic>() →* dynamic
return <T extends core::Object* = dynamic>() → dynamic => self::A4|method<self::A4|get#method::#T*, T*>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/type_variables.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/type_variables.dart.strong.transformed.expect
index e2c6597..aeae0f7 100644
--- a/pkg/front_end/testcases/extensions/type_variables.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/type_variables.dart.strong.transformed.expect
@@ -29,20 +29,20 @@
method method = self::A4|method;
tearoff method = self::A4|get#method;
}
-static method A2|method1<T extends core::Object* = dynamic, S extends self::A2|method1::T* = dynamic>(final self::A1<self::A2|method1::T*>* #this) → self::A1<self::A2|method1::T*>* {
+static method A2|method1<T extends core::Object* = dynamic, S extends self::A2|method1::T* = dynamic>(lowered final self::A1<self::A2|method1::T*>* #this) → self::A1<self::A2|method1::T*>* {
return #this;
}
-static method A2|get#method1<T extends core::Object* = dynamic>(final self::A1<self::A2|get#method1::T*>* #this) → <S extends self::A2|get#method1::T* = dynamic>() →* self::A1<self::A2|get#method1::T*>*
+static method A2|get#method1<T extends core::Object* = dynamic>(lowered final self::A1<self::A2|get#method1::T*>* #this) → <S extends self::A2|get#method1::T* = dynamic>() →* self::A1<self::A2|get#method1::T*>*
return <S extends self::A2|get#method1::T* = dynamic>() → self::A1<self::A2|get#method1::T*>* => self::A2|method1<self::A2|get#method1::T*, S*>(#this);
-static method A2|method2<T extends core::Object* = dynamic, S extends self::A1<self::A2|method2::T*>* = self::A1<dynamic>*>(final self::A1<self::A2|method2::T*>* #this, self::A2|method2::S* o) → self::A1<self::A2|method2::T*>* {
+static method A2|method2<T extends core::Object* = dynamic, S extends self::A1<self::A2|method2::T*>* = self::A1<dynamic>*>(lowered final self::A1<self::A2|method2::T*>* #this, self::A2|method2::S* o) → self::A1<self::A2|method2::T*>* {
core::print(o);
core::print(self::A2|method2::T*);
core::print(self::A2|method2::S*);
return #this;
}
-static method A2|get#method2<T extends core::Object* = dynamic>(final self::A1<self::A2|get#method2::T*>* #this) → <S extends self::A1<self::A2|get#method2::T*>* = self::A1<dynamic>*>(S*) →* self::A1<self::A2|get#method2::T*>*
+static method A2|get#method2<T extends core::Object* = dynamic>(lowered final self::A1<self::A2|get#method2::T*>* #this) → <S extends self::A1<self::A2|get#method2::T*>* = self::A1<dynamic>*>(S*) →* self::A1<self::A2|get#method2::T*>*
return <S extends self::A1<self::A2|get#method2::T*>* = self::A1<dynamic>*>(S* o) → self::A1<self::A2|get#method2::T*>* => self::A2|method2<self::A2|get#method2::T*, S*>(#this, o);
-static method A4|method<#T extends core::Object* = dynamic, T extends core::Object* = dynamic>(final self::A1<self::A4|method::#T*>* #this) → dynamic {}
-static method A4|get#method<#T extends core::Object* = dynamic>(final self::A1<self::A4|get#method::#T*>* #this) → <T extends core::Object* = dynamic>() →* dynamic
+static method A4|method<#T extends core::Object* = dynamic, T extends core::Object* = dynamic>(lowered final self::A1<self::A4|method::#T*>* #this) → dynamic {}
+static method A4|get#method<#T extends core::Object* = dynamic>(lowered final self::A1<self::A4|get#method::#T*>* #this) → <T extends core::Object* = dynamic>() →* dynamic
return <T extends core::Object* = dynamic>() → dynamic => self::A4|method<self::A4|get#method::#T*, T*>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.outline.expect b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.outline.expect
index c671d48..bca6081 100644
--- a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.outline.expect
@@ -50,29 +50,29 @@
get property = self::_extension#1|get#property;
set property = self::_extension#1|set#property;
}
-static method _extension#0|method(final self::Class1* #this) → core::int*
+static method _extension#0|method(lowered final self::Class1* #this) → core::int*
;
-static method _extension#0|get#method(final self::Class1* #this) → () →* core::int*
+static method _extension#0|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::_extension#0|method(#this);
-static method _extension#0|genericMethod<T extends core::num* = core::num*>(final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int*
+static method _extension#0|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int*
;
-static method _extension#0|get#genericMethod(final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method _extension#0|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#0|genericMethod<T*>(#this, t);
-static method _extension#0|get#property(final self::Class1* #this) → core::int*
+static method _extension#0|get#property(lowered final self::Class1* #this) → core::int*
;
-static method _extension#0|set#property(final self::Class1* #this, core::int* value) → void
+static method _extension#0|set#property(lowered final self::Class1* #this, core::int* value) → void
;
-static method _extension#1|method(final self::Class2* #this) → core::int*
+static method _extension#1|method(lowered final self::Class2* #this) → core::int*
;
-static method _extension#1|get#method(final self::Class2* #this) → () →* core::int*
+static method _extension#1|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::_extension#1|method(#this);
-static method _extension#1|genericMethod<T extends core::num* = core::num*>(final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int*
+static method _extension#1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int*
;
-static method _extension#1|get#genericMethod(final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method _extension#1|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#1|genericMethod<T*>(#this, t);
-static method _extension#1|get#property(final self::Class2* #this) → core::int*
+static method _extension#1|get#property(lowered final self::Class2* #this) → core::int*
;
-static method _extension#1|set#property(final self::Class2* #this, core::int* value) → void
+static method _extension#1|set#property(lowered final self::Class2* #this, core::int* value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.strong.expect b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.strong.expect
index aa753cc..1786045 100644
--- a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.strong.expect
@@ -52,44 +52,44 @@
get property = self::_extension#1|get#property;
set property = self::_extension#1|set#property;
}
-static method _extension#0|method(final self::Class1* #this) → core::int* {
+static method _extension#0|method(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.method on ${#this}");
return #this.{self::Class1::field};
}
-static method _extension#0|get#method(final self::Class1* #this) → () →* core::int*
+static method _extension#0|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::_extension#0|method(#this);
-static method _extension#0|genericMethod<T extends core::num* = core::num*>(final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int* {
+static method _extension#0|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::_extension#0|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method _extension#0|get#genericMethod(final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method _extension#0|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#0|genericMethod<T*>(#this, t);
-static method _extension#0|get#property(final self::Class1* #this) → core::int* {
+static method _extension#0|get#property(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.property get on ${#this}");
return #this.{self::Class1::field};
}
-static method _extension#0|set#property(final self::Class1* #this, core::int* value) → void {
+static method _extension#0|set#property(lowered final self::Class1* #this, core::int* value) → void {
#this.{self::Class1::field} = value;
core::print("Extension1.property set(${value}) on ${#this}");
value = value.{core::num::+}(1);
}
-static method _extension#1|method(final self::Class2* #this) → core::int* {
+static method _extension#1|method(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.method on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(3);
}
-static method _extension#1|get#method(final self::Class2* #this) → () →* core::int*
+static method _extension#1|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::_extension#1|method(#this);
-static method _extension#1|genericMethod<T extends core::num* = core::num*>(final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int* {
+static method _extension#1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::_extension#1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(4) as{TypeError} core::int*;
}
-static method _extension#1|get#genericMethod(final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method _extension#1|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#1|genericMethod<T*>(#this, t);
-static method _extension#1|get#property(final self::Class2* #this) → core::int* {
+static method _extension#1|get#property(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.property get on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(5);
}
-static method _extension#1|set#property(final self::Class2* #this, core::int* value) → void {
+static method _extension#1|set#property(lowered final self::Class2* #this, core::int* value) → void {
core::print("Extension2.property set(${value}) on ${#this}");
value = value.{core::num::+}(1);
#this.{self::Class2::field} = value;
diff --git a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.strong.transformed.expect
index 6d78eba..4e7371c 100644
--- a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.strong.transformed.expect
@@ -52,44 +52,44 @@
get property = self::_extension#1|get#property;
set property = self::_extension#1|set#property;
}
-static method _extension#0|method(final self::Class1* #this) → core::int* {
+static method _extension#0|method(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.method on ${#this}");
return #this.{self::Class1::field};
}
-static method _extension#0|get#method(final self::Class1* #this) → () →* core::int*
+static method _extension#0|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::_extension#0|method(#this);
-static method _extension#0|genericMethod<T extends core::num* = core::num*>(final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int* {
+static method _extension#0|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::_extension#0|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method _extension#0|get#genericMethod(final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method _extension#0|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#0|genericMethod<T*>(#this, t);
-static method _extension#0|get#property(final self::Class1* #this) → core::int* {
+static method _extension#0|get#property(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.property get on ${#this}");
return #this.{self::Class1::field};
}
-static method _extension#0|set#property(final self::Class1* #this, core::int* value) → void {
+static method _extension#0|set#property(lowered final self::Class1* #this, core::int* value) → void {
#this.{self::Class1::field} = value;
core::print("Extension1.property set(${value}) on ${#this}");
value = value.{core::num::+}(1);
}
-static method _extension#1|method(final self::Class2* #this) → core::int* {
+static method _extension#1|method(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.method on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(3);
}
-static method _extension#1|get#method(final self::Class2* #this) → () →* core::int*
+static method _extension#1|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::_extension#1|method(#this);
-static method _extension#1|genericMethod<T extends core::num* = core::num*>(final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int* {
+static method _extension#1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::_extension#1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(4) as{TypeError} core::int*;
}
-static method _extension#1|get#genericMethod(final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
+static method _extension#1|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#1|genericMethod<T*>(#this, t);
-static method _extension#1|get#property(final self::Class2* #this) → core::int* {
+static method _extension#1|get#property(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.property get on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(5);
}
-static method _extension#1|set#property(final self::Class2* #this, core::int* value) → void {
+static method _extension#1|set#property(lowered final self::Class2* #this, core::int* value) → void {
core::print("Extension2.property set(${value}) on ${#this}");
value = value.{core::num::+}(1);
#this.{self::Class2::field} = value;
diff --git a/pkg/front_end/testcases/extensions/use_this.dart.outline.expect b/pkg/front_end/testcases/extensions/use_this.dart.outline.expect
index 70ab4eb..f40c736 100644
--- a/pkg/front_end/testcases/extensions/use_this.dart.outline.expect
+++ b/pkg/front_end/testcases/extensions/use_this.dart.outline.expect
@@ -42,21 +42,21 @@
method method2 = self::B2|method2;
tearoff method2 = self::B2|get#method2;
}
-static method A2|method1(final self::A1* #this) → self::A1*
+static method A2|method1(lowered final self::A1* #this) → self::A1*
;
-static method A2|get#method1(final self::A1* #this) → () →* self::A1*
+static method A2|get#method1(lowered final self::A1* #this) → () →* self::A1*
return () → self::A1* => self::A2|method1(#this);
-static method A2|method2<T extends core::Object* = dynamic>(final self::A1* #this, self::A2|method2::T* o) → self::A1*
+static method A2|method2<T extends core::Object* = dynamic>(lowered final self::A1* #this, self::A2|method2::T* o) → self::A1*
;
-static method A2|get#method2(final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
+static method A2|get#method2(lowered final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
return <T extends core::Object* = dynamic>(T* o) → self::A1* => self::A2|method2<T*>(#this, o);
-static method B2|method1<T extends core::Object* = dynamic>(final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>*
+static method B2|method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>*
;
-static method B2|get#method1<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
+static method B2|get#method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
return () → self::B1<self::B2|get#method1::T*>* => self::B2|method1<self::B2|get#method1::T*>(#this);
-static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>*
+static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>*
;
-static method B2|get#method2<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
+static method B2|get#method2<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
return <S extends core::Object* = dynamic>(S* o) → self::B1<self::B2|get#method2::T*>* => self::B2|method2<self::B2|get#method2::T*, S*>(#this, o);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/use_this.dart.strong.expect b/pkg/front_end/testcases/extensions/use_this.dart.strong.expect
index f66aba6..f7ce7a4 100644
--- a/pkg/front_end/testcases/extensions/use_this.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/use_this.dart.strong.expect
@@ -44,26 +44,26 @@
method method2 = self::B2|method2;
tearoff method2 = self::B2|get#method2;
}
-static method A2|method1(final self::A1* #this) → self::A1* {
+static method A2|method1(lowered final self::A1* #this) → self::A1* {
return #this;
}
-static method A2|get#method1(final self::A1* #this) → () →* self::A1*
+static method A2|get#method1(lowered final self::A1* #this) → () →* self::A1*
return () → self::A1* => self::A2|method1(#this);
-static method A2|method2<T extends core::Object* = dynamic>(final self::A1* #this, self::A2|method2::T* o) → self::A1* {
+static method A2|method2<T extends core::Object* = dynamic>(lowered final self::A1* #this, self::A2|method2::T* o) → self::A1* {
core::print(o);
return #this;
}
-static method A2|get#method2(final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
+static method A2|get#method2(lowered final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
return <T extends core::Object* = dynamic>(T* o) → self::A1* => self::A2|method2<T*>(#this, o);
-static method B2|method1<T extends core::Object* = dynamic>(final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>* {
+static method B2|method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>* {
return #this;
}
-static method B2|get#method1<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
+static method B2|get#method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
return () → self::B1<self::B2|get#method1::T*>* => self::B2|method1<self::B2|get#method1::T*>(#this);
-static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>* {
+static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>* {
core::print(o);
return #this;
}
-static method B2|get#method2<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
+static method B2|get#method2<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
return <S extends core::Object* = dynamic>(S* o) → self::B1<self::B2|get#method2::T*>* => self::B2|method2<self::B2|get#method2::T*, S*>(#this, o);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extensions/use_this.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/use_this.dart.strong.transformed.expect
index f66aba6..f7ce7a4 100644
--- a/pkg/front_end/testcases/extensions/use_this.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/use_this.dart.strong.transformed.expect
@@ -44,26 +44,26 @@
method method2 = self::B2|method2;
tearoff method2 = self::B2|get#method2;
}
-static method A2|method1(final self::A1* #this) → self::A1* {
+static method A2|method1(lowered final self::A1* #this) → self::A1* {
return #this;
}
-static method A2|get#method1(final self::A1* #this) → () →* self::A1*
+static method A2|get#method1(lowered final self::A1* #this) → () →* self::A1*
return () → self::A1* => self::A2|method1(#this);
-static method A2|method2<T extends core::Object* = dynamic>(final self::A1* #this, self::A2|method2::T* o) → self::A1* {
+static method A2|method2<T extends core::Object* = dynamic>(lowered final self::A1* #this, self::A2|method2::T* o) → self::A1* {
core::print(o);
return #this;
}
-static method A2|get#method2(final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
+static method A2|get#method2(lowered final self::A1* #this) → <T extends core::Object* = dynamic>(T*) →* self::A1*
return <T extends core::Object* = dynamic>(T* o) → self::A1* => self::A2|method2<T*>(#this, o);
-static method B2|method1<T extends core::Object* = dynamic>(final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>* {
+static method B2|method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|method1::T*>* #this) → self::B1<self::B2|method1::T*>* {
return #this;
}
-static method B2|get#method1<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
+static method B2|get#method1<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method1::T*>* #this) → () →* self::B1<self::B2|get#method1::T*>*
return () → self::B1<self::B2|get#method1::T*>* => self::B2|method1<self::B2|get#method1::T*>(#this);
-static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>* {
+static method B2|method2<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::B1<self::B2|method2::T*>* #this, self::B2|method2::S* o) → self::B1<self::B2|method2::T*>* {
core::print(o);
return #this;
}
-static method B2|get#method2<T extends core::Object* = dynamic>(final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
+static method B2|get#method2<T extends core::Object* = dynamic>(lowered final self::B1<self::B2|get#method2::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* self::B1<self::B2|get#method2::T*>*
return <S extends core::Object* = dynamic>(S* o) → self::B1<self::B2|get#method2::T*>* => self::B2|method2<self::B2|get#method2::T*, S*>(#this, o);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.outline.expect b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.outline.expect
index f255528..587242a 100644
--- a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.outline.expect
+++ b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.outline.expect
@@ -361,37 +361,37 @@
static set property8b = set self::Extension|property8b;
static set property9 = set self::Extension|property9;
}
-static method Extension|get#property1<T extends core::num* = core::num*, S extends self::Extension|get#property1::T* = core::num*>(final core::int* #this) → core::int*
+static method Extension|get#property1<T extends core::num* = core::num*, S extends self::Extension|get#property1::T* = core::num*>(lowered final core::int* #this) → core::int*
;
-static method Extension|set#property1<T extends core::num* = core::num*, S extends self::Extension|set#property1::T* = core::num*>(final core::int* #this, core::int* i) → void
+static method Extension|set#property1<T extends core::num* = core::num*, S extends self::Extension|set#property1::T* = core::num*>(lowered final core::int* #this, core::int* i) → void
;
-static method Extension|get#property2a<T extends core::num* = core::num*, S extends self::Extension|get#property2a::T* = core::num*>(final core::int* #this) → core::num*
+static method Extension|get#property2a<T extends core::num* = core::num*, S extends self::Extension|get#property2a::T* = core::num*>(lowered final core::int* #this) → core::num*
;
-static method Extension|set#property2a<T extends core::num* = core::num*, S extends self::Extension|set#property2a::T* = core::num*>(final core::int* #this, core::int* i) → void
+static method Extension|set#property2a<T extends core::num* = core::num*, S extends self::Extension|set#property2a::T* = core::num*>(lowered final core::int* #this, core::int* i) → void
;
-static method Extension|get#property2b<T extends core::num* = core::num*, S extends self::Extension|get#property2b::T* = core::num*>(final core::int* #this) → core::int*
+static method Extension|get#property2b<T extends core::num* = core::num*, S extends self::Extension|get#property2b::T* = core::num*>(lowered final core::int* #this) → core::int*
;
-static method Extension|set#property2b<T extends core::num* = core::num*, S extends self::Extension|set#property2b::T* = core::num*>(final core::int* #this, core::num* i) → void
+static method Extension|set#property2b<T extends core::num* = core::num*, S extends self::Extension|set#property2b::T* = core::num*>(lowered final core::int* #this, core::num* i) → void
;
-static method Extension|get#property3<T extends core::num* = core::num*, S extends self::Extension|get#property3::T* = core::num*>(final core::int* #this) → core::String*
+static method Extension|get#property3<T extends core::num* = core::num*, S extends self::Extension|get#property3::T* = core::num*>(lowered final core::int* #this) → core::String*
;
-static method Extension|set#property3<T extends core::num* = core::num*, S extends self::Extension|set#property3::T* = core::num*>(final core::int* #this, core::int* i) → void
+static method Extension|set#property3<T extends core::num* = core::num*, S extends self::Extension|set#property3::T* = core::num*>(lowered final core::int* #this, core::int* i) → void
;
-static method Extension|get#property4<T extends core::num* = core::num*, S extends self::Extension|get#property4::T* = core::num*>(final core::int* #this) → self::Extension|get#property4::S*
+static method Extension|get#property4<T extends core::num* = core::num*, S extends self::Extension|get#property4::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property4::S*
;
-static method Extension|set#property4<T extends core::num* = core::num*, S extends self::Extension|set#property4::T* = core::num*>(final core::int* #this, self::Extension|set#property4::S* i) → void
+static method Extension|set#property4<T extends core::num* = core::num*, S extends self::Extension|set#property4::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property4::S* i) → void
;
-static method Extension|get#property5a<T extends core::num* = core::num*, S extends self::Extension|get#property5a::T* = core::num*>(final core::int* #this) → self::Extension|get#property5a::S*
+static method Extension|get#property5a<T extends core::num* = core::num*, S extends self::Extension|get#property5a::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5a::S*
;
-static method Extension|set#property5a<T extends core::num* = core::num*, S extends self::Extension|set#property5a::T* = core::num*>(final core::int* #this, self::Extension|set#property5a::T* i) → void
+static method Extension|set#property5a<T extends core::num* = core::num*, S extends self::Extension|set#property5a::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5a::T* i) → void
;
-static method Extension|get#property5b<T extends core::num* = core::num*, S extends self::Extension|get#property5b::T* = core::num*>(final core::int* #this) → self::Extension|get#property5b::T*
+static method Extension|get#property5b<T extends core::num* = core::num*, S extends self::Extension|get#property5b::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5b::T*
;
-static method Extension|set#property5b<T extends core::num* = core::num*, S extends self::Extension|set#property5b::T* = core::num*>(final core::int* #this, self::Extension|set#property5b::S* i) → void
+static method Extension|set#property5b<T extends core::num* = core::num*, S extends self::Extension|set#property5b::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5b::S* i) → void
;
-static method Extension|get#property6<T extends core::num* = core::num*, S extends self::Extension|get#property6::T* = core::num*>(final core::int* #this) → core::String*
+static method Extension|get#property6<T extends core::num* = core::num*, S extends self::Extension|get#property6::T* = core::num*>(lowered final core::int* #this) → core::String*
;
-static method Extension|set#property6<T extends core::num* = core::num*, S extends self::Extension|set#property6::T* = core::num*>(final core::int* #this, self::Extension|set#property6::S* i) → void
+static method Extension|set#property6<T extends core::num* = core::num*, S extends self::Extension|set#property6::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property6::S* i) → void
;
static get Extension|property7() → core::int*
;
diff --git a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.strong.expect b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.strong.expect
index 0ab82ac..1515fe4 100644
--- a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.strong.expect
+++ b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.strong.expect
@@ -378,36 +378,36 @@
static set property8b = set self::Extension|property8b;
static set property9 = set self::Extension|property9;
}
-static method Extension|get#property1<T extends core::num* = core::num*, S extends self::Extension|get#property1::T* = core::num*>(final core::int* #this) → core::int*
+static method Extension|get#property1<T extends core::num* = core::num*, S extends self::Extension|get#property1::T* = core::num*>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#property1<T extends core::num* = core::num*, S extends self::Extension|set#property1::T* = core::num*>(final core::int* #this, core::int* i) → void {}
-static method Extension|get#property2a<T extends core::num* = core::num*, S extends self::Extension|get#property2a::T* = core::num*>(final core::int* #this) → core::num*
+static method Extension|set#property1<T extends core::num* = core::num*, S extends self::Extension|set#property1::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
+static method Extension|get#property2a<T extends core::num* = core::num*, S extends self::Extension|get#property2a::T* = core::num*>(lowered final core::int* #this) → core::num*
return 0;
-static method Extension|set#property2a<T extends core::num* = core::num*, S extends self::Extension|set#property2a::T* = core::num*>(final core::int* #this, core::int* i) → void {}
-static method Extension|get#property2b<T extends core::num* = core::num*, S extends self::Extension|get#property2b::T* = core::num*>(final core::int* #this) → core::int*
+static method Extension|set#property2a<T extends core::num* = core::num*, S extends self::Extension|set#property2a::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
+static method Extension|get#property2b<T extends core::num* = core::num*, S extends self::Extension|get#property2b::T* = core::num*>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#property2b<T extends core::num* = core::num*, S extends self::Extension|set#property2b::T* = core::num*>(final core::int* #this, core::num* i) → void {}
-static method Extension|get#property3<T extends core::num* = core::num*, S extends self::Extension|get#property3::T* = core::num*>(final core::int* #this) → core::String*
+static method Extension|set#property2b<T extends core::num* = core::num*, S extends self::Extension|set#property2b::T* = core::num*>(lowered final core::int* #this, core::num* i) → void {}
+static method Extension|get#property3<T extends core::num* = core::num*, S extends self::Extension|get#property3::T* = core::num*>(lowered final core::int* #this) → core::String*
return "";
-static method Extension|set#property3<T extends core::num* = core::num*, S extends self::Extension|set#property3::T* = core::num*>(final core::int* #this, core::int* i) → void {}
-static method Extension|get#property4<T extends core::num* = core::num*, S extends self::Extension|get#property4::T* = core::num*>(final core::int* #this) → self::Extension|get#property4::S*
+static method Extension|set#property3<T extends core::num* = core::num*, S extends self::Extension|set#property3::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
+static method Extension|get#property4<T extends core::num* = core::num*, S extends self::Extension|get#property4::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property4::S*
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:133:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
S get property4 => 0; // ok
^" in 0 as{TypeError} <BottomType>;
-static method Extension|set#property4<T extends core::num* = core::num*, S extends self::Extension|set#property4::T* = core::num*>(final core::int* #this, self::Extension|set#property4::S* i) → void {}
-static method Extension|get#property5a<T extends core::num* = core::num*, S extends self::Extension|get#property5a::T* = core::num*>(final core::int* #this) → self::Extension|get#property5a::S*
+static method Extension|set#property4<T extends core::num* = core::num*, S extends self::Extension|set#property4::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property4::S* i) → void {}
+static method Extension|get#property5a<T extends core::num* = core::num*, S extends self::Extension|get#property5a::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5a::S*
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:136:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
S get property5a => 0; // ok
^" in 0 as{TypeError} <BottomType>;
-static method Extension|set#property5a<T extends core::num* = core::num*, S extends self::Extension|set#property5a::T* = core::num*>(final core::int* #this, self::Extension|set#property5a::T* i) → void {}
-static method Extension|get#property5b<T extends core::num* = core::num*, S extends self::Extension|get#property5b::T* = core::num*>(final core::int* #this) → self::Extension|get#property5b::T*
+static method Extension|set#property5a<T extends core::num* = core::num*, S extends self::Extension|set#property5a::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5a::T* i) → void {}
+static method Extension|get#property5b<T extends core::num* = core::num*, S extends self::Extension|get#property5b::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5b::T*
return let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:139:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
T get property5b => 0; // ok
^" in 0 as{TypeError} <BottomType>;
-static method Extension|set#property5b<T extends core::num* = core::num*, S extends self::Extension|set#property5b::T* = core::num*>(final core::int* #this, self::Extension|set#property5b::S* i) → void {}
-static method Extension|get#property6<T extends core::num* = core::num*, S extends self::Extension|get#property6::T* = core::num*>(final core::int* #this) → core::String*
+static method Extension|set#property5b<T extends core::num* = core::num*, S extends self::Extension|set#property5b::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5b::S* i) → void {}
+static method Extension|get#property6<T extends core::num* = core::num*, S extends self::Extension|get#property6::T* = core::num*>(lowered final core::int* #this) → core::String*
return "";
-static method Extension|set#property6<T extends core::num* = core::num*, S extends self::Extension|set#property6::T* = core::num*>(final core::int* #this, self::Extension|set#property6::S* i) → void {}
+static method Extension|set#property6<T extends core::num* = core::num*, S extends self::Extension|set#property6::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property6::S* i) → void {}
static get Extension|property7() → core::int*
return 0;
static set Extension|property7(core::int* value) → void {}
diff --git a/pkg/front_end/testcases/general/issue40242.dart.outline.expect b/pkg/front_end/testcases/general/issue40242.dart.outline.expect
index e0984be..09336b0 100644
--- a/pkg/front_end/testcases/general/issue40242.dart.outline.expect
+++ b/pkg/front_end/testcases/general/issue40242.dart.outline.expect
@@ -20,9 +20,9 @@
method errors = self::E|errors;
tearoff errors = self::E|get#errors;
}
-static method E|errors(final self::C* #this) → dynamic
+static method E|errors(lowered final self::C* #this) → dynamic
;
-static method E|get#errors(final self::C* #this) → () →* dynamic
+static method E|get#errors(lowered final self::C* #this) → () →* dynamic
return () → dynamic => self::E|errors(#this);
static method errors() → dynamic
;
diff --git a/pkg/front_end/testcases/general/issue40242.dart.strong.expect b/pkg/front_end/testcases/general/issue40242.dart.strong.expect
index 69fa368..69ece96a 100644
--- a/pkg/front_end/testcases/general/issue40242.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue40242.dart.strong.expect
@@ -44,12 +44,12 @@
method errors = self::E|errors;
tearoff errors = self::E|get#errors;
}
-static method E|errors(final self::C* #this) → dynamic {
+static method E|errors(lowered final self::C* #this) → dynamic {
invalid-expression "pkg/front_end/testcases/general/issue40242.dart:9:5: Error: Can't assign to 'this'.
this = new C();
^^^^";
}
-static method E|get#errors(final self::C* #this) → () →* dynamic
+static method E|get#errors(lowered final self::C* #this) → () →* dynamic
return () → dynamic => self::E|errors(#this);
static method errors() → dynamic {
final self::C* c1 = new self::C::•();
diff --git a/pkg/front_end/testcases/general/issue40242.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue40242.dart.strong.transformed.expect
index 69fa368..69ece96a 100644
--- a/pkg/front_end/testcases/general/issue40242.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue40242.dart.strong.transformed.expect
@@ -44,12 +44,12 @@
method errors = self::E|errors;
tearoff errors = self::E|get#errors;
}
-static method E|errors(final self::C* #this) → dynamic {
+static method E|errors(lowered final self::C* #this) → dynamic {
invalid-expression "pkg/front_end/testcases/general/issue40242.dart:9:5: Error: Can't assign to 'this'.
this = new C();
^^^^";
}
-static method E|get#errors(final self::C* #this) → () →* dynamic
+static method E|get#errors(lowered final self::C* #this) → () →* dynamic
return () → dynamic => self::E|errors(#this);
static method errors() → dynamic {
final self::C* c1 = new self::C::•();
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.outline.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.outline.expect
index bc603fc..82ff41e 100644
--- a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.outline.expect
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.outline.expect
@@ -101,17 +101,17 @@
tearoff bazOfE = self::E|get#bazOfE;
}
static field self::A<core::num*>* E|fieldOfE;
-static method E|fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → self::A<core::num*>*
+static method E|fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → self::A<core::num*>*
;
-static method E|get#fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → () →* self::A<core::num*>*
+static method E|get#fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → () →* self::A<core::num*>*
return () → self::A<core::num*>* => self::E|fooOfE<self::E|get#fooOfE::X*>(#this);
-static method E|barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this, self::A<core::num*>* a) → void
+static method E|barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this, self::A<core::num*>* a) → void
;
-static method E|get#barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → (self::A<core::num*>*) →* void
+static method E|get#barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → (self::A<core::num*>*) →* void
return (self::A<core::num*>* a) → void => self::E|barOfE<self::E|get#barOfE::X*>(#this, a);
-static method E|bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*, Y extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → void
+static method E|bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*, Y extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → void
;
-static method E|get#bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → <Y extends self::A<core::num*>* = self::A<core::num*>*>() →* void
+static method E|get#bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → <Y extends self::A<core::num*>* = self::A<core::num*>*>() →* void
return <Y extends self::A<core::num*>* = self::A<core::num*>*>() → void => self::E|bazOfE<self::E|get#bazOfE::X*, Y*>(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.strong.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.strong.expect
index fa633e1b..56d2323 100644
--- a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.strong.expect
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.strong.expect
@@ -103,14 +103,14 @@
tearoff bazOfE = self::E|get#bazOfE;
}
static field self::A<core::num*>* E|fieldOfE;
-static method E|fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → self::A<core::num*>*
+static method E|fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → self::A<core::num*>*
return null;
-static method E|get#fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → () →* self::A<core::num*>*
+static method E|get#fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → () →* self::A<core::num*>*
return () → self::A<core::num*>* => self::E|fooOfE<self::E|get#fooOfE::X*>(#this);
-static method E|barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this, self::A<core::num*>* a) → void {}
-static method E|get#barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → (self::A<core::num*>*) →* void
+static method E|barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this, self::A<core::num*>* a) → void {}
+static method E|get#barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → (self::A<core::num*>*) →* void
return (self::A<core::num*>* a) → void => self::E|barOfE<self::E|get#barOfE::X*>(#this, a);
-static method E|bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*, Y extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → void {}
-static method E|get#bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → <Y extends self::A<core::num*>* = self::A<core::num*>*>() →* void
+static method E|bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*, Y extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → void {}
+static method E|get#bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → <Y extends self::A<core::num*>* = self::A<core::num*>*>() →* void
return <Y extends self::A<core::num*>* = self::A<core::num*>*>() → void => self::E|bazOfE<self::E|get#bazOfE::X*, Y*>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.strong.transformed.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.strong.transformed.expect
index fa633e1b..56d2323 100644
--- a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.strong.transformed.expect
@@ -103,14 +103,14 @@
tearoff bazOfE = self::E|get#bazOfE;
}
static field self::A<core::num*>* E|fieldOfE;
-static method E|fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → self::A<core::num*>*
+static method E|fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → self::A<core::num*>*
return null;
-static method E|get#fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → () →* self::A<core::num*>*
+static method E|get#fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → () →* self::A<core::num*>*
return () → self::A<core::num*>* => self::E|fooOfE<self::E|get#fooOfE::X*>(#this);
-static method E|barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this, self::A<core::num*>* a) → void {}
-static method E|get#barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → (self::A<core::num*>*) →* void
+static method E|barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this, self::A<core::num*>* a) → void {}
+static method E|get#barOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → (self::A<core::num*>*) →* void
return (self::A<core::num*>* a) → void => self::E|barOfE<self::E|get#barOfE::X*>(#this, a);
-static method E|bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*, Y extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → void {}
-static method E|get#bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(final self::A<core::int*>* #this) → <Y extends self::A<core::num*>* = self::A<core::num*>*>() →* void
+static method E|bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*, Y extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → void {}
+static method E|get#bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → <Y extends self::A<core::num*>* = self::A<core::num*>*>() →* void
return <Y extends self::A<core::num*>* = self::A<core::num*>*>() → void => self::E|bazOfE<self::E|get#bazOfE::X*, Y*>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.outline.expect b/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.outline.expect
index f307bb3..3c9cb35 100644
--- a/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.outline.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.outline.expect
@@ -22,7 +22,7 @@
method foo = ext::Extension|foo;
tearoff foo = ext::Extension|get#foo;
}
-static method Extension|foo(final core::String* #this) → dynamic
+static method Extension|foo(lowered final core::String* #this) → dynamic
;
-static method Extension|get#foo(final core::String* #this) → () →* dynamic
+static method Extension|get#foo(lowered final core::String* #this) → () →* dynamic
return () → dynamic => ext::Extension|foo(#this);
diff --git a/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.strong.expect b/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.strong.expect
index 01e6ac2..aa7decf 100644
--- a/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.strong.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.strong.expect
@@ -24,7 +24,7 @@
method foo = ext::Extension|foo;
tearoff foo = ext::Extension|get#foo;
}
-static method Extension|foo(final core::String* #this) → dynamic
+static method Extension|foo(lowered final core::String* #this) → dynamic
return 42;
-static method Extension|get#foo(final core::String* #this) → () →* dynamic
+static method Extension|get#foo(lowered final core::String* #this) → () →* dynamic
return () → dynamic => ext::Extension|foo(#this);
diff --git a/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.strong.transformed.expect b/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.strong.transformed.expect
index 01e6ac2..aa7decf 100644
--- a/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/extension_from_dill/extension_from_dill.dart.strong.transformed.expect
@@ -24,7 +24,7 @@
method foo = ext::Extension|foo;
tearoff foo = ext::Extension|get#foo;
}
-static method Extension|foo(final core::String* #this) → dynamic
+static method Extension|foo(lowered final core::String* #this) → dynamic
return 42;
-static method Extension|get#foo(final core::String* #this) → () →* dynamic
+static method Extension|get#foo(lowered final core::String* #this) → () →* dynamic
return () → dynamic => ext::Extension|foo(#this);
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/extension_expression_compilation_usage.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/extension_expression_compilation_usage.yaml.world.1.expect
index 73e7fda..361ccb3 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/extension_expression_compilation_usage.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/extension_expression_compilation_usage.yaml.world.1.expect
@@ -5,9 +5,9 @@
method parseInt = main::NumberParsing|parseInt;
tearoff parseInt = main::NumberParsing|get#parseInt;
}
- static method NumberParsing|parseInt(final dart.core::String* #this) → dart.core::int* {
+ static method NumberParsing|parseInt(lowered final dart.core::String* #this) → dart.core::int* {
return dart.core::int::parse(#this);
}
- static method NumberParsing|get#parseInt(final dart.core::String* #this) → () →* dart.core::int*
+ static method NumberParsing|get#parseInt(lowered final dart.core::String* #this) → () →* dart.core::int*
return () → dart.core::int* => main::NumberParsing|parseInt(#this);
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/extension_usage_from_dill.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/extension_usage_from_dill.yaml.world.1.expect
index 58648d5..83ad3f0 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/extension_usage_from_dill.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/extension_usage_from_dill.yaml.world.1.expect
@@ -5,10 +5,10 @@
method parseInt = lib1::NumberParsing|parseInt;
tearoff parseInt = lib1::NumberParsing|get#parseInt;
}
- static method NumberParsing|parseInt(final dart.core::String* #this) → dart.core::int* {
+ static method NumberParsing|parseInt(lowered final dart.core::String* #this) → dart.core::int* {
return dart.core::int::parse(#this);
}
- static method NumberParsing|get#parseInt(final dart.core::String* #this) → () →* dart.core::int*
+ static method NumberParsing|get#parseInt(lowered final dart.core::String* #this) → () →* dart.core::int*
return () → dart.core::int* => lib1::NumberParsing|parseInt(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -17,10 +17,10 @@
method fooMe1 = lib2::DuplicateName|fooMe1;
tearoff fooMe1 = lib2::DuplicateName|get#fooMe1;
}
- static method DuplicateName|fooMe1(final dart.core::String* #this) → dart.core::String* {
+ static method DuplicateName|fooMe1(lowered final dart.core::String* #this) → dart.core::String* {
return "Foo1";
}
- static method DuplicateName|get#fooMe1(final dart.core::String* #this) → () →* dart.core::String*
+ static method DuplicateName|get#fooMe1(lowered final dart.core::String* #this) → () →* dart.core::String*
return () → dart.core::String* => lib2::DuplicateName|fooMe1(#this);
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
@@ -29,10 +29,10 @@
method fooMe2 = lib3::DuplicateName|fooMe2;
tearoff fooMe2 = lib3::DuplicateName|get#fooMe2;
}
- static method DuplicateName|fooMe2(final dart.core::String* #this) → dart.core::String* {
+ static method DuplicateName|fooMe2(lowered final dart.core::String* #this) → dart.core::String* {
return "Foo2";
}
- static method DuplicateName|get#fooMe2(final dart.core::String* #this) → () →* dart.core::String*
+ static method DuplicateName|get#fooMe2(lowered final dart.core::String* #this) → () →* dart.core::String*
return () → dart.core::String* => lib3::DuplicateName|fooMe2(#this);
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/extension_usage_from_dill.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/extension_usage_from_dill.yaml.world.2.expect
index 58648d5..83ad3f0 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/extension_usage_from_dill.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/extension_usage_from_dill.yaml.world.2.expect
@@ -5,10 +5,10 @@
method parseInt = lib1::NumberParsing|parseInt;
tearoff parseInt = lib1::NumberParsing|get#parseInt;
}
- static method NumberParsing|parseInt(final dart.core::String* #this) → dart.core::int* {
+ static method NumberParsing|parseInt(lowered final dart.core::String* #this) → dart.core::int* {
return dart.core::int::parse(#this);
}
- static method NumberParsing|get#parseInt(final dart.core::String* #this) → () →* dart.core::int*
+ static method NumberParsing|get#parseInt(lowered final dart.core::String* #this) → () →* dart.core::int*
return () → dart.core::int* => lib1::NumberParsing|parseInt(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -17,10 +17,10 @@
method fooMe1 = lib2::DuplicateName|fooMe1;
tearoff fooMe1 = lib2::DuplicateName|get#fooMe1;
}
- static method DuplicateName|fooMe1(final dart.core::String* #this) → dart.core::String* {
+ static method DuplicateName|fooMe1(lowered final dart.core::String* #this) → dart.core::String* {
return "Foo1";
}
- static method DuplicateName|get#fooMe1(final dart.core::String* #this) → () →* dart.core::String*
+ static method DuplicateName|get#fooMe1(lowered final dart.core::String* #this) → () →* dart.core::String*
return () → dart.core::String* => lib2::DuplicateName|fooMe1(#this);
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
@@ -29,10 +29,10 @@
method fooMe2 = lib3::DuplicateName|fooMe2;
tearoff fooMe2 = lib3::DuplicateName|get#fooMe2;
}
- static method DuplicateName|fooMe2(final dart.core::String* #this) → dart.core::String* {
+ static method DuplicateName|fooMe2(lowered final dart.core::String* #this) → dart.core::String* {
return "Foo2";
}
- static method DuplicateName|get#fooMe2(final dart.core::String* #this) → () →* dart.core::String*
+ static method DuplicateName|get#fooMe2(lowered final dart.core::String* #this) → () →* dart.core::String*
return () → dart.core::String* => lib3::DuplicateName|fooMe2(#this);
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_19.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_19.yaml.world.1.expect
index 07336f4..c11a0be 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_19.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_19.yaml.world.1.expect
@@ -29,14 +29,14 @@
}
static field dart.core::int* A2|staticField = 42;
static final field dart.core::int* A2|staticFinalField = 42;
- static method A2|method1(final main::A1* #this) → main::A1* {
+ static method A2|method1(lowered final main::A1* #this) → main::A1* {
return #this;
}
- static method A2|get#method1(final main::A1* #this) → () →* main::A1*
+ static method A2|get#method1(lowered final main::A1* #this) → () →* main::A1*
return () → main::A1* => main::A2|method1(#this);
- static method A2|get#getter1(final main::A1* #this) → dart.core::String*
+ static method A2|get#getter1(lowered final main::A1* #this) → dart.core::String*
return "42!";
- static method A2|set#setter1(final main::A1* #this, dart.core::String* s) → void {}
+ static method A2|set#setter1(lowered final main::A1* #this, dart.core::String* s) → void {}
static method A2|method2() → main::A1* {
return null;
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_19.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_19.yaml.world.2.expect
index 07336f4..c11a0be 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_19.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_19.yaml.world.2.expect
@@ -29,14 +29,14 @@
}
static field dart.core::int* A2|staticField = 42;
static final field dart.core::int* A2|staticFinalField = 42;
- static method A2|method1(final main::A1* #this) → main::A1* {
+ static method A2|method1(lowered final main::A1* #this) → main::A1* {
return #this;
}
- static method A2|get#method1(final main::A1* #this) → () →* main::A1*
+ static method A2|get#method1(lowered final main::A1* #this) → () →* main::A1*
return () → main::A1* => main::A2|method1(#this);
- static method A2|get#getter1(final main::A1* #this) → dart.core::String*
+ static method A2|get#getter1(lowered final main::A1* #this) → dart.core::String*
return "42!";
- static method A2|set#setter1(final main::A1* #this, dart.core::String* s) → void {}
+ static method A2|set#setter1(lowered final main::A1* #this, dart.core::String* s) → void {}
static method A2|method2() → main::A1* {
return null;
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_20.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_20.yaml.world.1.expect
index a9ef23e..c5238dd 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_20.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_20.yaml.world.1.expect
@@ -25,14 +25,14 @@
set setter1 = main::_extension#0|set#setter1;
static set setter2 = set main::_extension#0|setter2;
}
- static method _extension#0|method1(final main::A1* #this) → main::A1* {
+ static method _extension#0|method1(lowered final main::A1* #this) → main::A1* {
return #this;
}
- static method _extension#0|get#method1(final main::A1* #this) → () →* main::A1*
+ static method _extension#0|get#method1(lowered final main::A1* #this) → () →* main::A1*
return () → main::A1* => main::_extension#0|method1(#this);
- static method _extension#0|get#getter1(final main::A1* #this) → dart.core::String*
+ static method _extension#0|get#getter1(lowered final main::A1* #this) → dart.core::String*
return "42!";
- static method _extension#0|set#setter1(final main::A1* #this, dart.core::String* s) → void {}
+ static method _extension#0|set#setter1(lowered final main::A1* #this, dart.core::String* s) → void {}
static method _extension#0|method2() → main::A1* {
return null;
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_20.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_20.yaml.world.2.expect
index a9ef23e..c5238dd 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_20.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_20.yaml.world.2.expect
@@ -25,14 +25,14 @@
set setter1 = main::_extension#0|set#setter1;
static set setter2 = set main::_extension#0|setter2;
}
- static method _extension#0|method1(final main::A1* #this) → main::A1* {
+ static method _extension#0|method1(lowered final main::A1* #this) → main::A1* {
return #this;
}
- static method _extension#0|get#method1(final main::A1* #this) → () →* main::A1*
+ static method _extension#0|get#method1(lowered final main::A1* #this) → () →* main::A1*
return () → main::A1* => main::_extension#0|method1(#this);
- static method _extension#0|get#getter1(final main::A1* #this) → dart.core::String*
+ static method _extension#0|get#getter1(lowered final main::A1* #this) → dart.core::String*
return "42!";
- static method _extension#0|set#setter1(final main::A1* #this, dart.core::String* s) → void {}
+ static method _extension#0|set#setter1(lowered final main::A1* #this, dart.core::String* s) → void {}
static method _extension#0|method2() → main::A1* {
return null;
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.1.expect
index 6a509d9..c1889db 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.1.expect
@@ -12,8 +12,8 @@
method method2 = lib1::Extension2|method2;
tearoff method2 = lib1::Extension2|get#method2;
}
- static method Extension2|method2(final main::Class* #this) → void {}
- static method Extension2|get#method2(final main::Class* #this) → () →* void
+ static method Extension2|method2(lowered final main::Class* #this) → void {}
+ static method Extension2|get#method2(lowered final main::Class* #this) → () →* void
return () → void => lib1::Extension2|method2(#this);
static method lib1() → dynamic {
main::Class* a = new main::Class::•();
@@ -30,8 +30,8 @@
method method3 = lib2::Extension3|method3;
tearoff method3 = lib2::Extension3|get#method3;
}
- static method Extension3|method3(final main::Class* #this) → void {}
- static method Extension3|get#method3(final main::Class* #this) → () →* void
+ static method Extension3|method3(lowered final main::Class* #this) → void {}
+ static method Extension3|get#method3(lowered final main::Class* #this) → () →* void
return () → void => lib2::Extension3|method3(#this);
static method lib2() → dynamic {
main::Class* a = new main::Class::•();
@@ -65,8 +65,8 @@
method method = main::Extension|method;
tearoff method = main::Extension|get#method;
}
- static method Extension|method(final main::Class* #this) → void {}
- static method Extension|get#method(final main::Class* #this) → () →* void
+ static method Extension|method(lowered final main::Class* #this) → void {}
+ static method Extension|get#method(lowered final main::Class* #this) → () →* void
return () → void => main::Extension|method(#this);
static method main() → dynamic {
main::Class* a = new main::Class::•();
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.2.expect
index 2ffd6f9..7d35940 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.2.expect
@@ -12,8 +12,8 @@
method method2 = lib1::Extension2|method2;
tearoff method2 = lib1::Extension2|get#method2;
}
- static method Extension2|method2(final main::Class* #this) → void {}
- static method Extension2|get#method2(final main::Class* #this) → () →* void
+ static method Extension2|method2(lowered final main::Class* #this) → void {}
+ static method Extension2|get#method2(lowered final main::Class* #this) → () →* void
return () → void => lib1::Extension2|method2(#this);
static method lib1() → dynamic {
main::Class* a = new main::Class::•();
@@ -30,8 +30,8 @@
method method3 = lib2::Extension3|method3;
tearoff method3 = lib2::Extension3|get#method3;
}
- static method Extension3|method3(final main::Class* #this) → void {}
- static method Extension3|get#method3(final main::Class* #this) → () →* void
+ static method Extension3|method3(lowered final main::Class* #this) → void {}
+ static method Extension3|get#method3(lowered final main::Class* #this) → () →* void
return () → void => lib2::Extension3|method3(#this);
static method lib2() → dynamic {
main::Class* a = new main::Class::•();
@@ -65,8 +65,8 @@
method method = main::Extension|method;
tearoff method = main::Extension|get#method;
}
- static method Extension|method(final main::Class* #this) → void {}
- static method Extension|get#method(final main::Class* #this) → () →* void
+ static method Extension|method(lowered final main::Class* #this) → void {}
+ static method Extension|get#method(lowered final main::Class* #this) → () →* void
return () → void => main::Extension|method(#this);
static method main() → dynamic {
main::Class* a = new main::Class::•();
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.3.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.3.expect
index 9287c32..f07ce1c 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.3.expect
@@ -12,8 +12,8 @@
method method2 = lib1::Extension2|method2;
tearoff method2 = lib1::Extension2|get#method2;
}
- static method Extension2|method2(final main::Class* #this) → void {}
- static method Extension2|get#method2(final main::Class* #this) → () →* void
+ static method Extension2|method2(lowered final main::Class* #this) → void {}
+ static method Extension2|get#method2(lowered final main::Class* #this) → () →* void
return () → void => lib1::Extension2|method2(#this);
static method lib1() → dynamic {
main::Class* a = new main::Class::•();
@@ -30,8 +30,8 @@
method method3 = lib2::Extension3|method3;
tearoff method3 = lib2::Extension3|get#method3;
}
- static method Extension3|method3(final main::Class* #this) → void {}
- static method Extension3|get#method3(final main::Class* #this) → () →* void
+ static method Extension3|method3(lowered final main::Class* #this) → void {}
+ static method Extension3|get#method3(lowered final main::Class* #this) → () →* void
return () → void => lib2::Extension3|method3(#this);
static method lib2() → dynamic {
main::Class* a = new main::Class::•();
@@ -66,8 +66,8 @@
method method = main::Extension|method;
tearoff method = main::Extension|get#method;
}
- static method Extension|method(final main::Class* #this) → void {}
- static method Extension|get#method(final main::Class* #this) → () →* void
+ static method Extension|method(lowered final main::Class* #this) → void {}
+ static method Extension|get#method(lowered final main::Class* #this) → () →* void
return () → void => main::Extension|method(#this);
static method main() → dynamic {
main::Class* a = new main::Class::•();
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.4.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.4.expect
index 2e9599f..72bb927 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_34.yaml.world.4.expect
@@ -12,8 +12,8 @@
method method2 = lib1::Extension2|method2;
tearoff method2 = lib1::Extension2|get#method2;
}
- static method Extension2|method2(final main::Class* #this) → void {}
- static method Extension2|get#method2(final main::Class* #this) → () →* void
+ static method Extension2|method2(lowered final main::Class* #this) → void {}
+ static method Extension2|get#method2(lowered final main::Class* #this) → () →* void
return () → void => lib1::Extension2|method2(#this);
static method lib1() → dynamic {
main::Class* a = new main::Class::•();
@@ -31,8 +31,8 @@
method method3 = lib2::Extension3|method3;
tearoff method3 = lib2::Extension3|get#method3;
}
- static method Extension3|method3(final main::Class* #this) → void {}
- static method Extension3|get#method3(final main::Class* #this) → () →* void
+ static method Extension3|method3(lowered final main::Class* #this) → void {}
+ static method Extension3|get#method3(lowered final main::Class* #this) → () →* void
return () → void => lib2::Extension3|method3(#this);
static method lib2() → dynamic {
main::Class* a = new main::Class::•();
@@ -67,8 +67,8 @@
method method = main::Extension|method;
tearoff method = main::Extension|get#method;
}
- static method Extension|method(final main::Class* #this) → void {}
- static method Extension|get#method(final main::Class* #this) → () →* void
+ static method Extension|method(lowered final main::Class* #this) → void {}
+ static method Extension|get#method(lowered final main::Class* #this) → () →* void
return () → void => main::Extension|method(#this);
static method main() → dynamic {
main::Class* a = new main::Class::•();
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.1.expect
index 7c7bff1..e0981f7 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.1.expect
@@ -7,9 +7,9 @@
method baz = lib1::Extension1|baz;
tearoff baz = lib1::Extension1|get#baz;
}
- static method Extension1|baz(final main::A* #this) → dynamic
+ static method Extension1|baz(lowered final main::A* #this) → dynamic
return 42;
- static method Extension1|get#baz(final main::A* #this) → () →* dynamic
+ static method Extension1|get#baz(lowered final main::A* #this) → () →* dynamic
return () → dynamic => lib1::Extension1|baz(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -56,8 +56,8 @@
static method main() → dynamic {
lib2::method(new main::A::•());
}
- static method Extension2|boz(final main::A* #this) → dynamic
+ static method Extension2|boz(lowered final main::A* #this) → dynamic
return 87;
- static method Extension2|get#boz(final main::A* #this) → () →* dynamic
+ static method Extension2|get#boz(lowered final main::A* #this) → () →* dynamic
return () → dynamic => main::Extension2|boz(#this);
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.2.expect
index 3b56dcd..13f26e0 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.2.expect
@@ -7,9 +7,9 @@
method baz = lib1::Extension1|baz;
tearoff baz = lib1::Extension1|get#baz;
}
- static method Extension1|baz(final main::A* #this) → dynamic
+ static method Extension1|baz(lowered final main::A* #this) → dynamic
return 42;
- static method Extension1|get#baz(final main::A* #this) → () →* dynamic
+ static method Extension1|get#baz(lowered final main::A* #this) → () →* dynamic
return () → dynamic => lib1::Extension1|baz(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -57,8 +57,8 @@
static method main() → dynamic {
lib2::method(new main::A::•());
}
- static method Extension2|boz(final main::A* #this) → dynamic
+ static method Extension2|boz(lowered final main::A* #this) → dynamic
return 87;
- static method Extension2|get#boz(final main::A* #this) → () →* dynamic
+ static method Extension2|get#boz(lowered final main::A* #this) → () →* dynamic
return () → dynamic => main::Extension2|boz(#this);
}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.3.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.3.expect
index 0958b1c..562f9d8 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_40.yaml.world.3.expect
@@ -7,9 +7,9 @@
method baz = lib1::Extension1|baz;
tearoff baz = lib1::Extension1|get#baz;
}
- static method Extension1|baz(final main::A* #this) → dynamic
+ static method Extension1|baz(lowered final main::A* #this) → dynamic
return 42;
- static method Extension1|get#baz(final main::A* #this) → () →* dynamic
+ static method Extension1|get#baz(lowered final main::A* #this) → () →* dynamic
return () → dynamic => lib1::Extension1|baz(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -57,8 +57,8 @@
static method main() → dynamic {
lib2::method(new main::A::•());
}
- static method Extension2|boz(final main::A* #this) → dynamic
+ static method Extension2|boz(lowered final main::A* #this) → dynamic
return 123;
- static method Extension2|get#boz(final main::A* #this) → () →* dynamic
+ static method Extension2|get#boz(lowered final main::A* #this) → () →* dynamic
return () → dynamic => main::Extension2|boz(#this);
}
diff --git a/pkg/front_end/testcases/late_lowering/compound.dart.strong.expect b/pkg/front_end/testcases/late_lowering/compound.dart.strong.expect
index 43cd6f1..39a246d 100644
--- a/pkg/front_end/testcases/late_lowering/compound.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/compound.dart.strong.expect
@@ -11,31 +11,31 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? local1;
+ lowered core::int? #local1;
function #local1#get() → core::int
- return let final core::int? #t1 = local1 in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("local1") : #t1{core::int};
+ return let final core::int? #t1 = #local1 in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("local1") : #t1{core::int};
function #local1#set(core::int #t2) → dynamic
- return local1 = #t2;
+ return #local1 = #t2;
#local1#set.call(0);
self::expect(0, #local1#get.call());
#local1#set.call(#local1#get.call().{core::num::+}(2));
self::expect(2, #local1#get.call());
- core::int? local2;
+ lowered core::int? #local2;
function #local2#get() → core::int
- return let final core::int? #t3 = local2 in #t3.==(null) ?{core::int} local2 = 1 : #t3{core::int};
+ return let final core::int? #t3 = #local2 in #t3.==(null) ?{core::int} #local2 = 1 : #t3{core::int};
function #local2#set(core::int #t4) → dynamic
- return local2 = #t4;
+ return #local2 = #t4;
self::expect(1, #local2#get.call());
#local2#set.call(#local2#get.call().{core::num::+}(2));
self::expect(3, #local2#get.call());
}
static method error() → dynamic {
- final core::int? local;
+ lowered final core::int? #local;
function #local#get() → core::int
- return let final core::int? #t5 = local in #t5.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t5{core::int};
+ return let final core::int? #t5 = #local in #t5.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t5{core::int};
function #local#set(core::int #t6) → dynamic
- if(local.==(null))
- return local = #t6;
+ if(#local.==(null))
+ return #local = #t6;
else
throw new _in::LateError::localAI("local");
#local#set.call((let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/late_lowering/compound.dart:20:3: Error: Late variable 'local' without initializer is definitely unassigned.
diff --git a/pkg/front_end/testcases/late_lowering/compound.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/compound.dart.strong.transformed.expect
index 43cd6f1..39a246d 100644
--- a/pkg/front_end/testcases/late_lowering/compound.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/compound.dart.strong.transformed.expect
@@ -11,31 +11,31 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? local1;
+ lowered core::int? #local1;
function #local1#get() → core::int
- return let final core::int? #t1 = local1 in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("local1") : #t1{core::int};
+ return let final core::int? #t1 = #local1 in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("local1") : #t1{core::int};
function #local1#set(core::int #t2) → dynamic
- return local1 = #t2;
+ return #local1 = #t2;
#local1#set.call(0);
self::expect(0, #local1#get.call());
#local1#set.call(#local1#get.call().{core::num::+}(2));
self::expect(2, #local1#get.call());
- core::int? local2;
+ lowered core::int? #local2;
function #local2#get() → core::int
- return let final core::int? #t3 = local2 in #t3.==(null) ?{core::int} local2 = 1 : #t3{core::int};
+ return let final core::int? #t3 = #local2 in #t3.==(null) ?{core::int} #local2 = 1 : #t3{core::int};
function #local2#set(core::int #t4) → dynamic
- return local2 = #t4;
+ return #local2 = #t4;
self::expect(1, #local2#get.call());
#local2#set.call(#local2#get.call().{core::num::+}(2));
self::expect(3, #local2#get.call());
}
static method error() → dynamic {
- final core::int? local;
+ lowered final core::int? #local;
function #local#get() → core::int
- return let final core::int? #t5 = local in #t5.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t5{core::int};
+ return let final core::int? #t5 = #local in #t5.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t5{core::int};
function #local#set(core::int #t6) → dynamic
- if(local.==(null))
- return local = #t6;
+ if(#local.==(null))
+ return #local = #t6;
else
throw new _in::LateError::localAI("local");
#local#set.call((let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/late_lowering/compound.dart:20:3: Error: Late variable 'local' without initializer is definitely unassigned.
diff --git a/pkg/front_end/testcases/late_lowering/compound.dart.weak.expect b/pkg/front_end/testcases/late_lowering/compound.dart.weak.expect
index 991bc7a..c56967b 100644
--- a/pkg/front_end/testcases/late_lowering/compound.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/compound.dart.weak.expect
@@ -11,46 +11,46 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? local1;
- core::bool #local1#isSet = false;
+ lowered core::int? #local1;
+ lowered core::bool #local1#isSet = false;
function #local1#get() → core::int
- return #local1#isSet ?{core::int} local1{core::int} : throw new _in::LateError::localNI("local1");
+ return #local1#isSet ?{core::int} #local1{core::int} : throw new _in::LateError::localNI("local1");
function #local1#set(core::int #t1) → dynamic {
#local1#isSet = true;
- return local1 = #t1;
+ return #local1 = #t1;
}
#local1#set.call(0);
self::expect(0, #local1#get.call());
#local1#set.call(#local1#get.call().{core::num::+}(2));
self::expect(2, #local1#get.call());
- core::int? local2;
- core::bool #local2#isSet = false;
+ lowered core::int? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → core::int {
if(!#local2#isSet) {
- local2 = 1;
+ #local2 = 1;
#local2#isSet = true;
}
- return local2{core::int};
+ return #local2{core::int};
}
function #local2#set(core::int #t2) → dynamic {
#local2#isSet = true;
- return local2 = #t2;
+ return #local2 = #t2;
}
self::expect(1, #local2#get.call());
#local2#set.call(#local2#get.call().{core::num::+}(2));
self::expect(3, #local2#get.call());
}
static method error() → dynamic {
- final core::int? local;
- core::bool #local#isSet = false;
+ lowered final core::int? #local;
+ lowered core::bool #local#isSet = false;
function #local#get() → core::int
- return #local#isSet ?{core::int} local{core::int} : throw new _in::LateError::localNI("local");
+ return #local#isSet ?{core::int} #local{core::int} : throw new _in::LateError::localNI("local");
function #local#set(core::int #t3) → dynamic
if(#local#isSet)
throw new _in::LateError::localAI("local");
else {
#local#isSet = true;
- return local = #t3;
+ return #local = #t3;
}
#local#set.call((let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/late_lowering/compound.dart:20:3: Error: Late variable 'local' without initializer is definitely unassigned.
local += 0;
diff --git a/pkg/front_end/testcases/late_lowering/compound.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/compound.dart.weak.transformed.expect
index 991bc7a..c56967b 100644
--- a/pkg/front_end/testcases/late_lowering/compound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/compound.dart.weak.transformed.expect
@@ -11,46 +11,46 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? local1;
- core::bool #local1#isSet = false;
+ lowered core::int? #local1;
+ lowered core::bool #local1#isSet = false;
function #local1#get() → core::int
- return #local1#isSet ?{core::int} local1{core::int} : throw new _in::LateError::localNI("local1");
+ return #local1#isSet ?{core::int} #local1{core::int} : throw new _in::LateError::localNI("local1");
function #local1#set(core::int #t1) → dynamic {
#local1#isSet = true;
- return local1 = #t1;
+ return #local1 = #t1;
}
#local1#set.call(0);
self::expect(0, #local1#get.call());
#local1#set.call(#local1#get.call().{core::num::+}(2));
self::expect(2, #local1#get.call());
- core::int? local2;
- core::bool #local2#isSet = false;
+ lowered core::int? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → core::int {
if(!#local2#isSet) {
- local2 = 1;
+ #local2 = 1;
#local2#isSet = true;
}
- return local2{core::int};
+ return #local2{core::int};
}
function #local2#set(core::int #t2) → dynamic {
#local2#isSet = true;
- return local2 = #t2;
+ return #local2 = #t2;
}
self::expect(1, #local2#get.call());
#local2#set.call(#local2#get.call().{core::num::+}(2));
self::expect(3, #local2#get.call());
}
static method error() → dynamic {
- final core::int? local;
- core::bool #local#isSet = false;
+ lowered final core::int? #local;
+ lowered core::bool #local#isSet = false;
function #local#get() → core::int
- return #local#isSet ?{core::int} local{core::int} : throw new _in::LateError::localNI("local");
+ return #local#isSet ?{core::int} #local{core::int} : throw new _in::LateError::localNI("local");
function #local#set(core::int #t3) → dynamic
if(#local#isSet)
throw new _in::LateError::localAI("local");
else {
#local#isSet = true;
- return local = #t3;
+ return #local = #t3;
}
#local#set.call((let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/late_lowering/compound.dart:20:3: Error: Late variable 'local' without initializer is definitely unassigned.
local += 0;
diff --git a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.expect b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.expect
index ec6a51e..32bd105 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.expect
@@ -2,61 +2,61 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable '#local4' definitely assigned.
// local4 += 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable '#local4' definitely assigned.
// local4 += 0; // error
-// ^^^^^^
+// ^^^^^^^
//
import self as self;
import "dart:core" as core;
@@ -65,72 +65,72 @@
import "dart:async";
static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
- final T? local2;
- core::bool #local2#isSet = false;
+ lowered final T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t1) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t1;
+ return #local2 = #t1;
}
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t2 = local4 in #t2.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t2{core::int};
+ return let final core::int? #t2 = #local4 in #t2.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t2{core::int};
function #local4#set(core::int #t3) → dynamic
- if(local4.==(null))
- return local4 = #t3;
+ if(#local4.==(null))
+ return #local4 = #t3;
else
throw new _in::LateError::localAI("local4");
- final FutureOr<core::int>? local6;
+ lowered final FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t4 = local6 in #t4.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t4{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t4 = #local6 in #t4.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t4{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t5) → dynamic
- if(local6.==(null))
- return local6 = #t5;
+ if(#local6.==(null))
+ return #local6 = #t5;
else
throw new _in::LateError::localAI("local6");
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
};
static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
- final T? local2;
- core::bool #local2#isSet = false;
+ lowered final T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t9) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t9;
+ return #local2 = #t9;
}
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t10 = local4 in #t10.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t10{core::int};
+ return let final core::int? #t10 = #local4 in #t10.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t10{core::int};
function #local4#set(core::int #t11) → dynamic
- if(local4.==(null))
- return local4 = #t11;
+ if(#local4.==(null))
+ return #local4 = #t11;
else
throw new _in::LateError::localAI("local4");
- final FutureOr<core::int>? local6;
+ lowered final FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t12 = local6 in #t12.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t12{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t12 = #local6 in #t12.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t12{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t13) → dynamic
- if(local6.==(null))
- return local6 = #t13;
+ if(#local6.==(null))
+ return #local6 = #t13;
else
throw new _in::LateError::localAI("local6");
if(b) {
@@ -141,97 +141,97 @@
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t15 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t15 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t16 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t16 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
};
static field () → Null fieldCompound = () → Null {
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t17 = local4 in #t17.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t17{core::int};
+ return let final core::int? #t17 = #local4 in #t17.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t17{core::int};
function #local4#set(core::int #t18) → dynamic
- if(local4.==(null))
- return local4 = #t18;
+ if(#local4.==(null))
+ return #local4 = #t18;
else
throw new _in::LateError::localAI("local4");
#local4#set.call(0);
- let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
+ let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable '#local4' definitely assigned.
local4 += 0; // error
- ^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
+ ^^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
};
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic {
- final self::methodDirect::T? local2;
- core::bool #local2#isSet = false;
+ lowered final self::methodDirect::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodDirect::T%
- return #local2#isSet ?{self::methodDirect::T%} local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodDirect::T%} #local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodDirect::T% #t20) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t20;
+ return #local2 = #t20;
}
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t21 = local4 in #t21.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t21{core::int};
+ return let final core::int? #t21 = #local4 in #t21.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t21{core::int};
function #local4#set(core::int #t22) → dynamic
- if(local4.==(null))
- return local4 = #t22;
+ if(#local4.==(null))
+ return #local4 = #t22;
else
throw new _in::LateError::localAI("local4");
- final FutureOr<core::int>? local6;
+ lowered final FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t23 = local6 in #t23.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t23{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t23 = #local6 in #t23.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t23{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t24) → dynamic
- if(local6.==(null))
- return local6 = #t24;
+ if(#local6.==(null))
+ return #local6 = #t24;
else
throw new _in::LateError::localAI("local6");
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t26 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t26 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t27 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t27 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
}
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic {
- final self::methodConditional::T? local2;
- core::bool #local2#isSet = false;
+ lowered final self::methodConditional::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodConditional::T%
- return #local2#isSet ?{self::methodConditional::T%} local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodConditional::T%} #local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodConditional::T% #t28) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t28;
+ return #local2 = #t28;
}
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t29 = local4 in #t29.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t29{core::int};
+ return let final core::int? #t29 = #local4 in #t29.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t29{core::int};
function #local4#set(core::int #t30) → dynamic
- if(local4.==(null))
- return local4 = #t30;
+ if(#local4.==(null))
+ return #local4 = #t30;
else
throw new _in::LateError::localAI("local4");
- final FutureOr<core::int>? local6;
+ lowered final FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t31 = local6 in #t31.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t31{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t31 = #local6 in #t31.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t31{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t32) → dynamic
- if(local6.==(null))
- return local6 = #t32;
+ if(#local6.==(null))
+ return #local6 = #t32;
else
throw new _in::LateError::localAI("local6");
if(b) {
@@ -242,28 +242,28 @@
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t33 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t33 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t34 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t34 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t35 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t35 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
}
static method methodCompound() → dynamic {
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t36 = local4 in #t36.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t36{core::int};
+ return let final core::int? #t36 = #local4 in #t36.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t36{core::int};
function #local4#set(core::int #t37) → dynamic
- if(local4.==(null))
- return local4 = #t37;
+ if(#local4.==(null))
+ return #local4 = #t37;
else
throw new _in::LateError::localAI("local4");
#local4#set.call(0);
- let final<BottomType> #t38 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable 'local4' definitely assigned.
+ let final<BottomType> #t38 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable '#local4' definitely assigned.
local4 += 0; // error
- ^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
+ ^^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.transformed.expect
index ec6a51e..32bd105 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.strong.transformed.expect
@@ -2,61 +2,61 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable '#local4' definitely assigned.
// local4 += 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable '#local4' definitely assigned.
// local4 += 0; // error
-// ^^^^^^
+// ^^^^^^^
//
import self as self;
import "dart:core" as core;
@@ -65,72 +65,72 @@
import "dart:async";
static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
- final T? local2;
- core::bool #local2#isSet = false;
+ lowered final T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t1) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t1;
+ return #local2 = #t1;
}
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t2 = local4 in #t2.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t2{core::int};
+ return let final core::int? #t2 = #local4 in #t2.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t2{core::int};
function #local4#set(core::int #t3) → dynamic
- if(local4.==(null))
- return local4 = #t3;
+ if(#local4.==(null))
+ return #local4 = #t3;
else
throw new _in::LateError::localAI("local4");
- final FutureOr<core::int>? local6;
+ lowered final FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t4 = local6 in #t4.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t4{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t4 = #local6 in #t4.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t4{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t5) → dynamic
- if(local6.==(null))
- return local6 = #t5;
+ if(#local6.==(null))
+ return #local6 = #t5;
else
throw new _in::LateError::localAI("local6");
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
};
static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
- final T? local2;
- core::bool #local2#isSet = false;
+ lowered final T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t9) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t9;
+ return #local2 = #t9;
}
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t10 = local4 in #t10.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t10{core::int};
+ return let final core::int? #t10 = #local4 in #t10.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t10{core::int};
function #local4#set(core::int #t11) → dynamic
- if(local4.==(null))
- return local4 = #t11;
+ if(#local4.==(null))
+ return #local4 = #t11;
else
throw new _in::LateError::localAI("local4");
- final FutureOr<core::int>? local6;
+ lowered final FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t12 = local6 in #t12.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t12{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t12 = #local6 in #t12.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t12{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t13) → dynamic
- if(local6.==(null))
- return local6 = #t13;
+ if(#local6.==(null))
+ return #local6 = #t13;
else
throw new _in::LateError::localAI("local6");
if(b) {
@@ -141,97 +141,97 @@
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t15 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t15 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t16 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t16 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
};
static field () → Null fieldCompound = () → Null {
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t17 = local4 in #t17.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t17{core::int};
+ return let final core::int? #t17 = #local4 in #t17.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t17{core::int};
function #local4#set(core::int #t18) → dynamic
- if(local4.==(null))
- return local4 = #t18;
+ if(#local4.==(null))
+ return #local4 = #t18;
else
throw new _in::LateError::localAI("local4");
#local4#set.call(0);
- let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
+ let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable '#local4' definitely assigned.
local4 += 0; // error
- ^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
+ ^^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
};
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic {
- final self::methodDirect::T? local2;
- core::bool #local2#isSet = false;
+ lowered final self::methodDirect::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodDirect::T%
- return #local2#isSet ?{self::methodDirect::T%} local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodDirect::T%} #local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodDirect::T% #t20) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t20;
+ return #local2 = #t20;
}
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t21 = local4 in #t21.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t21{core::int};
+ return let final core::int? #t21 = #local4 in #t21.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t21{core::int};
function #local4#set(core::int #t22) → dynamic
- if(local4.==(null))
- return local4 = #t22;
+ if(#local4.==(null))
+ return #local4 = #t22;
else
throw new _in::LateError::localAI("local4");
- final FutureOr<core::int>? local6;
+ lowered final FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t23 = local6 in #t23.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t23{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t23 = #local6 in #t23.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t23{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t24) → dynamic
- if(local6.==(null))
- return local6 = #t24;
+ if(#local6.==(null))
+ return #local6 = #t24;
else
throw new _in::LateError::localAI("local6");
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t26 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t26 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t27 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t27 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
}
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic {
- final self::methodConditional::T? local2;
- core::bool #local2#isSet = false;
+ lowered final self::methodConditional::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodConditional::T%
- return #local2#isSet ?{self::methodConditional::T%} local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodConditional::T%} #local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodConditional::T% #t28) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t28;
+ return #local2 = #t28;
}
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t29 = local4 in #t29.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t29{core::int};
+ return let final core::int? #t29 = #local4 in #t29.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t29{core::int};
function #local4#set(core::int #t30) → dynamic
- if(local4.==(null))
- return local4 = #t30;
+ if(#local4.==(null))
+ return #local4 = #t30;
else
throw new _in::LateError::localAI("local4");
- final FutureOr<core::int>? local6;
+ lowered final FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t31 = local6 in #t31.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t31{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t31 = #local6 in #t31.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t31{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t32) → dynamic
- if(local6.==(null))
- return local6 = #t32;
+ if(#local6.==(null))
+ return #local6 = #t32;
else
throw new _in::LateError::localAI("local6");
if(b) {
@@ -242,28 +242,28 @@
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t33 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t33 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t34 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t34 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t35 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t35 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
}
static method methodCompound() → dynamic {
- final core::int? local4;
+ lowered final core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t36 = local4 in #t36.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t36{core::int};
+ return let final core::int? #t36 = #local4 in #t36.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t36{core::int};
function #local4#set(core::int #t37) → dynamic
- if(local4.==(null))
- return local4 = #t37;
+ if(#local4.==(null))
+ return #local4 = #t37;
else
throw new _in::LateError::localAI("local4");
#local4#set.call(0);
- let final<BottomType> #t38 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable 'local4' definitely assigned.
+ let final<BottomType> #t38 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable '#local4' definitely assigned.
local4 += 0; // error
- ^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
+ ^^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.expect b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.expect
index 0b4576c..aa4b724 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.expect
@@ -2,61 +2,61 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable '#local4' definitely assigned.
// local4 += 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable '#local4' definitely assigned.
// local4 += 0; // error
-// ^^^^^^
+// ^^^^^^^
//
import self as self;
import "dart:core" as core;
@@ -65,85 +65,85 @@
import "dart:async";
static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
- final T? local2;
- core::bool #local2#isSet = false;
+ lowered final T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t1) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t1;
+ return #local2 = #t1;
}
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t2) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t2;
+ return #local4 = #t2;
}
- final FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered final FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t3) → dynamic
if(#local6#isSet)
throw new _in::LateError::localAI("local6");
else {
#local6#isSet = true;
- return local6 = #t3;
+ return #local6 = #t3;
}
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
};
static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
- final T? local2;
- core::bool #local2#isSet = false;
+ lowered final T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t7) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t7;
+ return #local2 = #t7;
}
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t8) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t8;
+ return #local4 = #t8;
}
- final FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered final FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t9) → dynamic
if(#local6#isSet)
throw new _in::LateError::localAI("local6");
else {
#local6#isSet = true;
- return local6 = #t9;
+ return #local6 = #t9;
}
if(b) {
#local2#set.call(value);
@@ -153,113 +153,113 @@
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t11 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t11 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t12 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t12 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
};
static field () → Null fieldCompound = () → Null {
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t13) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t13;
+ return #local4 = #t13;
}
#local4#set.call(0);
- let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
+ let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable '#local4' definitely assigned.
local4 += 0; // error
- ^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
+ ^^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
};
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic {
- final self::methodDirect::T? local2;
- core::bool #local2#isSet = false;
+ lowered final self::methodDirect::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodDirect::T%
- return #local2#isSet ?{self::methodDirect::T%} local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodDirect::T%} #local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodDirect::T% #t15) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t15;
+ return #local2 = #t15;
}
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t16) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t16;
+ return #local4 = #t16;
}
- final FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered final FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t17) → dynamic
if(#local6#isSet)
throw new _in::LateError::localAI("local6");
else {
#local6#isSet = true;
- return local6 = #t17;
+ return #local6 = #t17;
}
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t18 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t18 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t20 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t20 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
}
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic {
- final self::methodConditional::T? local2;
- core::bool #local2#isSet = false;
+ lowered final self::methodConditional::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodConditional::T%
- return #local2#isSet ?{self::methodConditional::T%} local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodConditional::T%} #local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodConditional::T% #t21) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t21;
+ return #local2 = #t21;
}
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t22) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t22;
+ return #local4 = #t22;
}
- final FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered final FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t23) → dynamic
if(#local6#isSet)
throw new _in::LateError::localAI("local6");
else {
#local6#isSet = true;
- return local6 = #t23;
+ return #local6 = #t23;
}
if(b) {
#local2#set.call(value);
@@ -269,31 +269,31 @@
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t24 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t24 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t26 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t26 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
}
static method methodCompound() → dynamic {
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t27) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t27;
+ return #local4 = #t27;
}
#local4#set.call(0);
- let final<BottomType> #t28 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable 'local4' definitely assigned.
+ let final<BottomType> #t28 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable '#local4' definitely assigned.
local4 += 0; // error
- ^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
+ ^^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.transformed.expect
index 0b4576c..aa4b724 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_assigned.dart.weak.transformed.expect
@@ -2,61 +2,61 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable 'local2' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable '#local2' definitely assigned.
// local2 = value; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable '#local4' definitely assigned.
// local4 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable 'local6' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable '#local6' definitely assigned.
// local6 = 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable '#local4' definitely assigned.
// local4 += 0; // error
-// ^^^^^^
+// ^^^^^^^
//
-// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
+// pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable '#local4' definitely assigned.
// local4 += 0; // error
-// ^^^^^^
+// ^^^^^^^
//
import self as self;
import "dart:core" as core;
@@ -65,85 +65,85 @@
import "dart:async";
static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
- final T? local2;
- core::bool #local2#isSet = false;
+ lowered final T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t1) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t1;
+ return #local2 = #t1;
}
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t2) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t2;
+ return #local4 = #t2;
}
- final FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered final FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t3) → dynamic
if(#local6#isSet)
throw new _in::LateError::localAI("local6");
else {
#local6#isSet = true;
- return local6 = #t3;
+ return #local6 = #t3;
}
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:30:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:31:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:32:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
};
static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
- final T? local2;
- core::bool #local2#isSet = false;
+ lowered final T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t7) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t7;
+ return #local2 = #t7;
}
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t8) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t8;
+ return #local4 = #t8;
}
- final FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered final FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t9) → dynamic
if(#local6#isSet)
throw new _in::LateError::localAI("local6");
else {
#local6#isSet = true;
- return local6 = #t9;
+ return #local6 = #t9;
}
if(b) {
#local2#set.call(value);
@@ -153,113 +153,113 @@
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:70:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t11 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t11 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:71:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t12 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t12 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:72:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
};
static field () → Null fieldCompound = () → Null {
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t13) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t13;
+ return #local4 = #t13;
}
#local4#set.call(0);
- let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable 'local4' definitely assigned.
+ let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:88:3: Error: Late final variable '#local4' definitely assigned.
local4 += 0; // error
- ^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
+ ^^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
};
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic {
- final self::methodDirect::T? local2;
- core::bool #local2#isSet = false;
+ lowered final self::methodDirect::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodDirect::T%
- return #local2#isSet ?{self::methodDirect::T%} local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodDirect::T%} #local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodDirect::T% #t15) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t15;
+ return #local2 = #t15;
}
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t16) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t16;
+ return #local4 = #t16;
}
- final FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered final FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t17) → dynamic
if(#local6#isSet)
throw new _in::LateError::localAI("local6");
else {
#local6#isSet = true;
- return local6 = #t17;
+ return #local6 = #t17;
}
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t18 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t18 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:16:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:17:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t20 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t20 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:18:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
}
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic {
- final self::methodConditional::T? local2;
- core::bool #local2#isSet = false;
+ lowered final self::methodConditional::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodConditional::T%
- return #local2#isSet ?{self::methodConditional::T%} local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodConditional::T%} #local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodConditional::T% #t21) → dynamic
if(#local2#isSet)
throw new _in::LateError::localAI("local2");
else {
#local2#isSet = true;
- return local2 = #t21;
+ return #local2 = #t21;
}
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t22) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t22;
+ return #local4 = #t22;
}
- final FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered final FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t23) → dynamic
if(#local6#isSet)
throw new _in::LateError::localAI("local6");
else {
#local6#isSet = true;
- return local6 = #t23;
+ return #local6 = #t23;
}
if(b) {
#local2#set.call(value);
@@ -269,31 +269,31 @@
#local2#set.call(value);
#local4#set.call(0);
#local6#set.call(0);
- let final<BottomType> #t24 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable 'local2' definitely assigned.
+ let final<BottomType> #t24 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:50:3: Error: Late final variable '#local2' definitely assigned.
local2 = value; // error
- ^^^^^^" in #local2#set.call(value);
- let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable 'local4' definitely assigned.
+ ^^^^^^^" in #local2#set.call(value);
+ let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:51:3: Error: Late final variable '#local4' definitely assigned.
local4 = 0; // error
- ^^^^^^" in #local4#set.call(0);
- let final<BottomType> #t26 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable 'local6' definitely assigned.
+ ^^^^^^^" in #local4#set.call(0);
+ let final<BottomType> #t26 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:52:3: Error: Late final variable '#local6' definitely assigned.
local6 = 0; // error
- ^^^^^^" in #local6#set.call(0);
+ ^^^^^^^" in #local6#set.call(0);
}
static method methodCompound() → dynamic {
- final core::int? local4;
- core::bool #local4#isSet = false;
+ lowered final core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t27) → dynamic
if(#local4#isSet)
throw new _in::LateError::localAI("local4");
else {
#local4#isSet = true;
- return local4 = #t27;
+ return #local4 = #t27;
}
#local4#set.call(0);
- let final<BottomType> #t28 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable 'local4' definitely assigned.
+ let final<BottomType> #t28 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_assigned.dart:80:3: Error: Late final variable '#local4' definitely assigned.
local4 += 0; // error
- ^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
+ ^^^^^^^" in #local4#set.call(#local4#get.call().{core::num::+}(0));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.expect b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.expect
index 9fd2c07..a3ede2a 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.expect
@@ -98,38 +98,38 @@
static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
- T? local2;
- core::bool #local2#isSet = false;
+ lowered T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t1) → dynamic {
#local2#isSet = true;
- return local2 = #t1;
+ return #local2 = #t1;
}
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t2 = local4 in #t2.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t2{core::int};
+ return let final core::int? #t2 = #local4 in #t2.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t2{core::int};
function #local4#set(core::int #t3) → dynamic
- return local4 = #t3;
+ return #local4 = #t3;
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
+ lowered FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t4 = local6 in #t4.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t4{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t4 = #local6 in #t4.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t4{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t5) → dynamic
- return local6 = #t5;
- T? local7;
- core::bool #local7#isSet = false;
+ return #local6 = #t5;
+ lowered T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{T%};
+ return #local7{T%};
}
function #local7#set(T% #t6) → dynamic {
#local7#isSet = true;
- return local7 = #t6;
+ return #local7 = #t6;
}
let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:34:3: Error: Non-nullable variable 'local1' must be assigned before it can be used.
local1; // error
@@ -153,38 +153,38 @@
};
static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
- T? local2;
- core::bool #local2#isSet = false;
+ lowered T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t13) → dynamic {
#local2#isSet = true;
- return local2 = #t13;
+ return #local2 = #t13;
}
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t14 = local4 in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t14{core::int};
+ return let final core::int? #t14 = #local4 in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t14{core::int};
function #local4#set(core::int #t15) → dynamic
- return local4 = #t15;
+ return #local4 = #t15;
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
+ lowered FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t16 = local6 in #t16.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t16{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t16 = #local6 in #t16.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t16{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t17) → dynamic
- return local6 = #t17;
- T? local7;
- core::bool #local7#isSet = false;
+ return #local6 = #t17;
+ lowered T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{T%};
+ return #local7{T%};
}
function #local7#set(T% #t18) → dynamic {
#local7#isSet = true;
- return local7 = #t18;
+ return #local7 = #t18;
}
if(b) {
local1 = value;
@@ -211,11 +211,11 @@
};
static field () → Null fieldCompound = () → Null {
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t22 = local4 in #t22.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t22{core::int};
+ return let final core::int? #t22 = #local4 in #t22.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t22{core::int};
function #local4#set(core::int #t23) → dynamic
- return local4 = #t23;
+ return #local4 = #t23;
local3 = (let final<BottomType> #t24 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:111:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
local3 += 0; // error
^^^^^^" in local3).{core::num::+}(0);
@@ -225,38 +225,38 @@
};
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic {
self::methodDirect::T% local1;
- self::methodDirect::T? local2;
- core::bool #local2#isSet = false;
+ lowered self::methodDirect::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodDirect::T%
- return #local2#isSet ?{self::methodDirect::T%} local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodDirect::T%} #local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodDirect::T% #t26) → dynamic {
#local2#isSet = true;
- return local2 = #t26;
+ return #local2 = #t26;
}
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t27 = local4 in #t27.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t27{core::int};
+ return let final core::int? #t27 = #local4 in #t27.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t27{core::int};
function #local4#set(core::int #t28) → dynamic
- return local4 = #t28;
+ return #local4 = #t28;
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
+ lowered FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t29 = local6 in #t29.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t29{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t29 = #local6 in #t29.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t29{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t30) → dynamic
- return local6 = #t30;
- self::methodDirect::T? local7;
- core::bool #local7#isSet = false;
+ return #local6 = #t30;
+ lowered self::methodDirect::T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → self::methodDirect::T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{self::methodDirect::T%};
+ return #local7{self::methodDirect::T%};
}
function #local7#set(self::methodDirect::T% #t31) → dynamic {
#local7#isSet = true;
- return local7 = #t31;
+ return #local7 = #t31;
}
let final<BottomType> #t32 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:16:3: Error: Non-nullable variable 'local1' must be assigned before it can be used.
local1; // error
@@ -280,38 +280,38 @@
}
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic {
self::methodConditional::T% local1;
- self::methodConditional::T? local2;
- core::bool #local2#isSet = false;
+ lowered self::methodConditional::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodConditional::T%
- return #local2#isSet ?{self::methodConditional::T%} local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodConditional::T%} #local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodConditional::T% #t38) → dynamic {
#local2#isSet = true;
- return local2 = #t38;
+ return #local2 = #t38;
}
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t39 = local4 in #t39.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t39{core::int};
+ return let final core::int? #t39 = #local4 in #t39.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t39{core::int};
function #local4#set(core::int #t40) → dynamic
- return local4 = #t40;
+ return #local4 = #t40;
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
+ lowered FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t41 = local6 in #t41.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t41{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t41 = #local6 in #t41.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t41{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t42) → dynamic
- return local6 = #t42;
- self::methodConditional::T? local7;
- core::bool #local7#isSet = false;
+ return #local6 = #t42;
+ lowered self::methodConditional::T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → self::methodConditional::T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{self::methodConditional::T%};
+ return #local7{self::methodConditional::T%};
}
function #local7#set(self::methodConditional::T% #t43) → dynamic {
#local7#isSet = true;
- return local7 = #t43;
+ return #local7 = #t43;
}
if(b) {
local1 = value;
@@ -338,11 +338,11 @@
}
static method methodCompound() → dynamic {
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t47 = local4 in #t47.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t47{core::int};
+ return let final core::int? #t47 = #local4 in #t47.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t47{core::int};
function #local4#set(core::int #t48) → dynamic
- return local4 = #t48;
+ return #local4 = #t48;
local3 = (let final<BottomType> #t49 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:103:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
local3 += 0; // error
^^^^^^" in local3).{core::num::+}(0);
diff --git a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.transformed.expect
index 9fd2c07..a3ede2a 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.strong.transformed.expect
@@ -98,38 +98,38 @@
static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
- T? local2;
- core::bool #local2#isSet = false;
+ lowered T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t1) → dynamic {
#local2#isSet = true;
- return local2 = #t1;
+ return #local2 = #t1;
}
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t2 = local4 in #t2.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t2{core::int};
+ return let final core::int? #t2 = #local4 in #t2.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t2{core::int};
function #local4#set(core::int #t3) → dynamic
- return local4 = #t3;
+ return #local4 = #t3;
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
+ lowered FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t4 = local6 in #t4.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t4{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t4 = #local6 in #t4.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t4{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t5) → dynamic
- return local6 = #t5;
- T? local7;
- core::bool #local7#isSet = false;
+ return #local6 = #t5;
+ lowered T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{T%};
+ return #local7{T%};
}
function #local7#set(T% #t6) → dynamic {
#local7#isSet = true;
- return local7 = #t6;
+ return #local7 = #t6;
}
let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:34:3: Error: Non-nullable variable 'local1' must be assigned before it can be used.
local1; // error
@@ -153,38 +153,38 @@
};
static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
- T? local2;
- core::bool #local2#isSet = false;
+ lowered T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t13) → dynamic {
#local2#isSet = true;
- return local2 = #t13;
+ return #local2 = #t13;
}
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t14 = local4 in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t14{core::int};
+ return let final core::int? #t14 = #local4 in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t14{core::int};
function #local4#set(core::int #t15) → dynamic
- return local4 = #t15;
+ return #local4 = #t15;
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
+ lowered FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t16 = local6 in #t16.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t16{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t16 = #local6 in #t16.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t16{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t17) → dynamic
- return local6 = #t17;
- T? local7;
- core::bool #local7#isSet = false;
+ return #local6 = #t17;
+ lowered T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{T%};
+ return #local7{T%};
}
function #local7#set(T% #t18) → dynamic {
#local7#isSet = true;
- return local7 = #t18;
+ return #local7 = #t18;
}
if(b) {
local1 = value;
@@ -211,11 +211,11 @@
};
static field () → Null fieldCompound = () → Null {
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t22 = local4 in #t22.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t22{core::int};
+ return let final core::int? #t22 = #local4 in #t22.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t22{core::int};
function #local4#set(core::int #t23) → dynamic
- return local4 = #t23;
+ return #local4 = #t23;
local3 = (let final<BottomType> #t24 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:111:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
local3 += 0; // error
^^^^^^" in local3).{core::num::+}(0);
@@ -225,38 +225,38 @@
};
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic {
self::methodDirect::T% local1;
- self::methodDirect::T? local2;
- core::bool #local2#isSet = false;
+ lowered self::methodDirect::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodDirect::T%
- return #local2#isSet ?{self::methodDirect::T%} local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodDirect::T%} #local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodDirect::T% #t26) → dynamic {
#local2#isSet = true;
- return local2 = #t26;
+ return #local2 = #t26;
}
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t27 = local4 in #t27.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t27{core::int};
+ return let final core::int? #t27 = #local4 in #t27.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t27{core::int};
function #local4#set(core::int #t28) → dynamic
- return local4 = #t28;
+ return #local4 = #t28;
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
+ lowered FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t29 = local6 in #t29.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t29{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t29 = #local6 in #t29.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t29{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t30) → dynamic
- return local6 = #t30;
- self::methodDirect::T? local7;
- core::bool #local7#isSet = false;
+ return #local6 = #t30;
+ lowered self::methodDirect::T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → self::methodDirect::T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{self::methodDirect::T%};
+ return #local7{self::methodDirect::T%};
}
function #local7#set(self::methodDirect::T% #t31) → dynamic {
#local7#isSet = true;
- return local7 = #t31;
+ return #local7 = #t31;
}
let final<BottomType> #t32 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:16:3: Error: Non-nullable variable 'local1' must be assigned before it can be used.
local1; // error
@@ -280,38 +280,38 @@
}
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic {
self::methodConditional::T% local1;
- self::methodConditional::T? local2;
- core::bool #local2#isSet = false;
+ lowered self::methodConditional::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodConditional::T%
- return #local2#isSet ?{self::methodConditional::T%} local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodConditional::T%} #local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodConditional::T% #t38) → dynamic {
#local2#isSet = true;
- return local2 = #t38;
+ return #local2 = #t38;
}
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t39 = local4 in #t39.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t39{core::int};
+ return let final core::int? #t39 = #local4 in #t39.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t39{core::int};
function #local4#set(core::int #t40) → dynamic
- return local4 = #t40;
+ return #local4 = #t40;
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
+ lowered FutureOr<core::int>? #local6;
function #local6#get() → FutureOr<core::int>
- return let final FutureOr<core::int>? #t41 = local6 in #t41.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t41{FutureOr<core::int>};
+ return let final FutureOr<core::int>? #t41 = #local6 in #t41.==(null) ?{FutureOr<core::int>} throw new _in::LateError::localNI("local6") : #t41{FutureOr<core::int>};
function #local6#set(FutureOr<core::int>#t42) → dynamic
- return local6 = #t42;
- self::methodConditional::T? local7;
- core::bool #local7#isSet = false;
+ return #local6 = #t42;
+ lowered self::methodConditional::T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → self::methodConditional::T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{self::methodConditional::T%};
+ return #local7{self::methodConditional::T%};
}
function #local7#set(self::methodConditional::T% #t43) → dynamic {
#local7#isSet = true;
- return local7 = #t43;
+ return #local7 = #t43;
}
if(b) {
local1 = value;
@@ -338,11 +338,11 @@
}
static method methodCompound() → dynamic {
core::int local3;
- core::int? local4;
+ lowered core::int? #local4;
function #local4#get() → core::int
- return let final core::int? #t47 = local4 in #t47.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t47{core::int};
+ return let final core::int? #t47 = #local4 in #t47.==(null) ?{core::int} throw new _in::LateError::localNI("local4") : #t47{core::int};
function #local4#set(core::int #t48) → dynamic
- return local4 = #t48;
+ return #local4 = #t48;
local3 = (let final<BottomType> #t49 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:103:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
local3 += 0; // error
^^^^^^" in local3).{core::num::+}(0);
diff --git a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.expect b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.expect
index be1e0a1..9372b12 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.expect
@@ -98,44 +98,44 @@
static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
- T? local2;
- core::bool #local2#isSet = false;
+ lowered T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t1) → dynamic {
#local2#isSet = true;
- return local2 = #t1;
+ return #local2 = #t1;
}
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t2) → dynamic {
#local4#isSet = true;
- return local4 = #t2;
+ return #local4 = #t2;
}
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t3) → dynamic {
#local6#isSet = true;
- return local6 = #t3;
+ return #local6 = #t3;
}
- T? local7;
- core::bool #local7#isSet = false;
+ lowered T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{T%};
+ return #local7{T%};
}
function #local7#set(T% #t4) → dynamic {
#local7#isSet = true;
- return local7 = #t4;
+ return #local7 = #t4;
}
let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:34:3: Error: Non-nullable variable 'local1' must be assigned before it can be used.
local1; // error
@@ -159,44 +159,44 @@
};
static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
- T? local2;
- core::bool #local2#isSet = false;
+ lowered T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t11) → dynamic {
#local2#isSet = true;
- return local2 = #t11;
+ return #local2 = #t11;
}
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t12) → dynamic {
#local4#isSet = true;
- return local4 = #t12;
+ return #local4 = #t12;
}
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t13) → dynamic {
#local6#isSet = true;
- return local6 = #t13;
+ return #local6 = #t13;
}
- T? local7;
- core::bool #local7#isSet = false;
+ lowered T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{T%};
+ return #local7{T%};
}
function #local7#set(T% #t14) → dynamic {
#local7#isSet = true;
- return local7 = #t14;
+ return #local7 = #t14;
}
if(b) {
local1 = value;
@@ -223,13 +223,13 @@
};
static field () → Null fieldCompound = () → Null {
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t18) → dynamic {
#local4#isSet = true;
- return local4 = #t18;
+ return #local4 = #t18;
}
local3 = (let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:111:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
local3 += 0; // error
@@ -240,44 +240,44 @@
};
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic {
self::methodDirect::T% local1;
- self::methodDirect::T? local2;
- core::bool #local2#isSet = false;
+ lowered self::methodDirect::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodDirect::T%
- return #local2#isSet ?{self::methodDirect::T%} local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodDirect::T%} #local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodDirect::T% #t21) → dynamic {
#local2#isSet = true;
- return local2 = #t21;
+ return #local2 = #t21;
}
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t22) → dynamic {
#local4#isSet = true;
- return local4 = #t22;
+ return #local4 = #t22;
}
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t23) → dynamic {
#local6#isSet = true;
- return local6 = #t23;
+ return #local6 = #t23;
}
- self::methodDirect::T? local7;
- core::bool #local7#isSet = false;
+ lowered self::methodDirect::T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → self::methodDirect::T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{self::methodDirect::T%};
+ return #local7{self::methodDirect::T%};
}
function #local7#set(self::methodDirect::T% #t24) → dynamic {
#local7#isSet = true;
- return local7 = #t24;
+ return #local7 = #t24;
}
let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:16:3: Error: Non-nullable variable 'local1' must be assigned before it can be used.
local1; // error
@@ -301,44 +301,44 @@
}
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic {
self::methodConditional::T% local1;
- self::methodConditional::T? local2;
- core::bool #local2#isSet = false;
+ lowered self::methodConditional::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodConditional::T%
- return #local2#isSet ?{self::methodConditional::T%} local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodConditional::T%} #local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodConditional::T% #t31) → dynamic {
#local2#isSet = true;
- return local2 = #t31;
+ return #local2 = #t31;
}
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t32) → dynamic {
#local4#isSet = true;
- return local4 = #t32;
+ return #local4 = #t32;
}
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t33) → dynamic {
#local6#isSet = true;
- return local6 = #t33;
+ return #local6 = #t33;
}
- self::methodConditional::T? local7;
- core::bool #local7#isSet = false;
+ lowered self::methodConditional::T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → self::methodConditional::T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{self::methodConditional::T%};
+ return #local7{self::methodConditional::T%};
}
function #local7#set(self::methodConditional::T% #t34) → dynamic {
#local7#isSet = true;
- return local7 = #t34;
+ return #local7 = #t34;
}
if(b) {
local1 = value;
@@ -365,13 +365,13 @@
}
static method methodCompound() → dynamic {
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t38) → dynamic {
#local4#isSet = true;
- return local4 = #t38;
+ return #local4 = #t38;
}
local3 = (let final<BottomType> #t39 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:103:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
local3 += 0; // error
diff --git a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.transformed.expect
index be1e0a1..9372b12 100644
--- a/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/definitely_unassigned.dart.weak.transformed.expect
@@ -98,44 +98,44 @@
static field <T extends core::Object? = dynamic>(T%) → Null fieldDirect = <T extends core::Object? = dynamic>(T% value) → Null {
T% local1;
- T? local2;
- core::bool #local2#isSet = false;
+ lowered T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t1) → dynamic {
#local2#isSet = true;
- return local2 = #t1;
+ return #local2 = #t1;
}
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t2) → dynamic {
#local4#isSet = true;
- return local4 = #t2;
+ return #local4 = #t2;
}
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t3) → dynamic {
#local6#isSet = true;
- return local6 = #t3;
+ return #local6 = #t3;
}
- T? local7;
- core::bool #local7#isSet = false;
+ lowered T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{T%};
+ return #local7{T%};
}
function #local7#set(T% #t4) → dynamic {
#local7#isSet = true;
- return local7 = #t4;
+ return #local7 = #t4;
}
let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:34:3: Error: Non-nullable variable 'local1' must be assigned before it can be used.
local1; // error
@@ -159,44 +159,44 @@
};
static field <T extends core::Object? = dynamic>(core::bool, T%) → Null fieldConditional = <T extends core::Object? = dynamic>(core::bool b, T% value) → Null {
T% local1;
- T? local2;
- core::bool #local2#isSet = false;
+ lowered T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → T%
- return #local2#isSet ?{T%} local2{T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{T%} #local2{T%} : throw new _in::LateError::localNI("local2");
function #local2#set(T% #t11) → dynamic {
#local2#isSet = true;
- return local2 = #t11;
+ return #local2 = #t11;
}
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t12) → dynamic {
#local4#isSet = true;
- return local4 = #t12;
+ return #local4 = #t12;
}
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t13) → dynamic {
#local6#isSet = true;
- return local6 = #t13;
+ return #local6 = #t13;
}
- T? local7;
- core::bool #local7#isSet = false;
+ lowered T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{T%};
+ return #local7{T%};
}
function #local7#set(T% #t14) → dynamic {
#local7#isSet = true;
- return local7 = #t14;
+ return #local7 = #t14;
}
if(b) {
local1 = value;
@@ -223,13 +223,13 @@
};
static field () → Null fieldCompound = () → Null {
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t18) → dynamic {
#local4#isSet = true;
- return local4 = #t18;
+ return #local4 = #t18;
}
local3 = (let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:111:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
local3 += 0; // error
@@ -240,44 +240,44 @@
};
static method methodDirect<T extends core::Object? = dynamic>(self::methodDirect::T% value) → dynamic {
self::methodDirect::T% local1;
- self::methodDirect::T? local2;
- core::bool #local2#isSet = false;
+ lowered self::methodDirect::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodDirect::T%
- return #local2#isSet ?{self::methodDirect::T%} local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodDirect::T%} #local2{self::methodDirect::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodDirect::T% #t21) → dynamic {
#local2#isSet = true;
- return local2 = #t21;
+ return #local2 = #t21;
}
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t22) → dynamic {
#local4#isSet = true;
- return local4 = #t22;
+ return #local4 = #t22;
}
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t23) → dynamic {
#local6#isSet = true;
- return local6 = #t23;
+ return #local6 = #t23;
}
- self::methodDirect::T? local7;
- core::bool #local7#isSet = false;
+ lowered self::methodDirect::T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → self::methodDirect::T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{self::methodDirect::T%};
+ return #local7{self::methodDirect::T%};
}
function #local7#set(self::methodDirect::T% #t24) → dynamic {
#local7#isSet = true;
- return local7 = #t24;
+ return #local7 = #t24;
}
let final<BottomType> #t25 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:16:3: Error: Non-nullable variable 'local1' must be assigned before it can be used.
local1; // error
@@ -301,44 +301,44 @@
}
static method methodConditional<T extends core::Object? = dynamic>(core::bool b, self::methodConditional::T% value) → dynamic {
self::methodConditional::T% local1;
- self::methodConditional::T? local2;
- core::bool #local2#isSet = false;
+ lowered self::methodConditional::T? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → self::methodConditional::T%
- return #local2#isSet ?{self::methodConditional::T%} local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{self::methodConditional::T%} #local2{self::methodConditional::T%} : throw new _in::LateError::localNI("local2");
function #local2#set(self::methodConditional::T% #t31) → dynamic {
#local2#isSet = true;
- return local2 = #t31;
+ return #local2 = #t31;
}
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t32) → dynamic {
#local4#isSet = true;
- return local4 = #t32;
+ return #local4 = #t32;
}
FutureOr<core::int>local5;
- FutureOr<core::int>? local6;
- core::bool #local6#isSet = false;
+ lowered FutureOr<core::int>? #local6;
+ lowered core::bool #local6#isSet = false;
function #local6#get() → FutureOr<core::int>
- return #local6#isSet ?{FutureOr<core::int>} local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
+ return #local6#isSet ?{FutureOr<core::int>} #local6{FutureOr<core::int>} : throw new _in::LateError::localNI("local6");
function #local6#set(FutureOr<core::int>#t33) → dynamic {
#local6#isSet = true;
- return local6 = #t33;
+ return #local6 = #t33;
}
- self::methodConditional::T? local7;
- core::bool #local7#isSet = false;
+ lowered self::methodConditional::T? #local7;
+ lowered core::bool #local7#isSet = false;
function #local7#get() → self::methodConditional::T% {
if(!#local7#isSet) {
- local7 = value;
+ #local7 = value;
#local7#isSet = true;
}
- return local7{self::methodConditional::T%};
+ return #local7{self::methodConditional::T%};
}
function #local7#set(self::methodConditional::T% #t34) → dynamic {
#local7#isSet = true;
- return local7 = #t34;
+ return #local7 = #t34;
}
if(b) {
local1 = value;
@@ -365,13 +365,13 @@
}
static method methodCompound() → dynamic {
core::int local3;
- core::int? local4;
- core::bool #local4#isSet = false;
+ lowered core::int? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → core::int
- return #local4#isSet ?{core::int} local4{core::int} : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{core::int} #local4{core::int} : throw new _in::LateError::localNI("local4");
function #local4#set(core::int #t38) → dynamic {
#local4#isSet = true;
- return local4 = #t38;
+ return #local4 = #t38;
}
local3 = (let final<BottomType> #t39 = invalid-expression "pkg/front_end/testcases/late_lowering/definitely_unassigned.dart:103:3: Error: Non-nullable variable 'local3' must be assigned before it can be used.
local3 += 0; // error
diff --git a/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.strong.expect b/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.strong.expect
index 18df179..b34786e 100644
--- a/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.strong.expect
@@ -6,10 +6,10 @@
static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {
- core::int? local;
+ lowered core::int? #local;
function #local#get() → core::int
- return let final core::int? #t1 = local in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t1{core::int};
+ return let final core::int? #t1 = #local in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t1{core::int};
function #local#set(core::int #t2) → dynamic
- return local = #t2;
+ return #local = #t2;
#local#set.call(self::f<core::int>(0));
}
diff --git a/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.strong.transformed.expect
index 18df179..b34786e 100644
--- a/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.strong.transformed.expect
@@ -6,10 +6,10 @@
static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {
- core::int? local;
+ lowered core::int? #local;
function #local#get() → core::int
- return let final core::int? #t1 = local in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t1{core::int};
+ return let final core::int? #t1 = #local in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t1{core::int};
function #local#set(core::int #t2) → dynamic
- return local = #t2;
+ return #local = #t2;
#local#set.call(self::f<core::int>(0));
}
diff --git a/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.weak.expect b/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.weak.expect
index a9eee6d..4a7ba84 100644
--- a/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.weak.expect
@@ -6,13 +6,13 @@
static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {
- core::int? local;
- core::bool #local#isSet = false;
+ lowered core::int? #local;
+ lowered core::bool #local#isSet = false;
function #local#get() → core::int
- return #local#isSet ?{core::int} local{core::int} : throw new _in::LateError::localNI("local");
+ return #local#isSet ?{core::int} #local{core::int} : throw new _in::LateError::localNI("local");
function #local#set(core::int #t1) → dynamic {
#local#isSet = true;
- return local = #t1;
+ return #local = #t1;
}
#local#set.call(self::f<core::int>(0));
}
diff --git a/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.weak.transformed.expect
index a9eee6d..4a7ba84 100644
--- a/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/infer_from_late_variable.dart.weak.transformed.expect
@@ -6,13 +6,13 @@
static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {
- core::int? local;
- core::bool #local#isSet = false;
+ lowered core::int? #local;
+ lowered core::bool #local#isSet = false;
function #local#get() → core::int
- return #local#isSet ?{core::int} local{core::int} : throw new _in::LateError::localNI("local");
+ return #local#isSet ?{core::int} #local{core::int} : throw new _in::LateError::localNI("local");
function #local#set(core::int #t1) → dynamic {
#local#isSet = true;
- return local = #t1;
+ return #local = #t1;
}
#local#set.call(self::f<core::int>(0));
}
diff --git a/pkg/front_end/testcases/late_lowering/issue40373b.dart.strong.expect b/pkg/front_end/testcases/late_lowering/issue40373b.dart.strong.expect
index 8eb1418..b788f31 100644
--- a/pkg/front_end/testcases/late_lowering/issue40373b.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40373b.dart.strong.expect
@@ -42,16 +42,16 @@
self::_#g = #t3;
}
static method main() → dynamic {
- final dynamic l;
- core::bool #l#isSet = false;
+ lowered final dynamic #l;
+ lowered core::bool #l#isSet = false;
function #l#get() → dynamic
- return #l#isSet ?{dynamic} l : throw new _in::LateError::localNI("l");
+ return #l#isSet ?{dynamic} #l : throw new _in::LateError::localNI("l");
function #l#set(dynamic #t4) → dynamic
if(#l#isSet)
throw new _in::LateError::localAI("l");
else {
#l#isSet = true;
- return l = #t4;
+ return #l = #t4;
}
self::g = "Lily";
self::C::s = "was";
diff --git a/pkg/front_end/testcases/late_lowering/issue40373b.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/issue40373b.dart.strong.transformed.expect
index 8eb1418..b788f31 100644
--- a/pkg/front_end/testcases/late_lowering/issue40373b.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40373b.dart.strong.transformed.expect
@@ -42,16 +42,16 @@
self::_#g = #t3;
}
static method main() → dynamic {
- final dynamic l;
- core::bool #l#isSet = false;
+ lowered final dynamic #l;
+ lowered core::bool #l#isSet = false;
function #l#get() → dynamic
- return #l#isSet ?{dynamic} l : throw new _in::LateError::localNI("l");
+ return #l#isSet ?{dynamic} #l : throw new _in::LateError::localNI("l");
function #l#set(dynamic #t4) → dynamic
if(#l#isSet)
throw new _in::LateError::localAI("l");
else {
#l#isSet = true;
- return l = #t4;
+ return #l = #t4;
}
self::g = "Lily";
self::C::s = "was";
diff --git a/pkg/front_end/testcases/late_lowering/issue40373b.dart.weak.expect b/pkg/front_end/testcases/late_lowering/issue40373b.dart.weak.expect
index 8eb1418..b788f31 100644
--- a/pkg/front_end/testcases/late_lowering/issue40373b.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40373b.dart.weak.expect
@@ -42,16 +42,16 @@
self::_#g = #t3;
}
static method main() → dynamic {
- final dynamic l;
- core::bool #l#isSet = false;
+ lowered final dynamic #l;
+ lowered core::bool #l#isSet = false;
function #l#get() → dynamic
- return #l#isSet ?{dynamic} l : throw new _in::LateError::localNI("l");
+ return #l#isSet ?{dynamic} #l : throw new _in::LateError::localNI("l");
function #l#set(dynamic #t4) → dynamic
if(#l#isSet)
throw new _in::LateError::localAI("l");
else {
#l#isSet = true;
- return l = #t4;
+ return #l = #t4;
}
self::g = "Lily";
self::C::s = "was";
diff --git a/pkg/front_end/testcases/late_lowering/issue40373b.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/issue40373b.dart.weak.transformed.expect
index 8eb1418..b788f31 100644
--- a/pkg/front_end/testcases/late_lowering/issue40373b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40373b.dart.weak.transformed.expect
@@ -42,16 +42,16 @@
self::_#g = #t3;
}
static method main() → dynamic {
- final dynamic l;
- core::bool #l#isSet = false;
+ lowered final dynamic #l;
+ lowered core::bool #l#isSet = false;
function #l#get() → dynamic
- return #l#isSet ?{dynamic} l : throw new _in::LateError::localNI("l");
+ return #l#isSet ?{dynamic} #l : throw new _in::LateError::localNI("l");
function #l#set(dynamic #t4) → dynamic
if(#l#isSet)
throw new _in::LateError::localAI("l");
else {
#l#isSet = true;
- return l = #t4;
+ return #l = #t4;
}
self::g = "Lily";
self::C::s = "was";
diff --git a/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.expect b/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.expect
index 7e000ad..6de62a5 100644
--- a/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.expect
@@ -10,13 +10,13 @@
abstract method baz() → self::A::T%;
method bar(generic-covariant-impl self::A::T% value) → dynamic {}
method foo() → dynamic {
- self::A::T? value;
- core::bool #value#isSet = false;
+ lowered self::A::T? #value;
+ lowered core::bool #value#isSet = false;
function #value#get() → self::A::T%
- return #value#isSet ?{self::A::T%} value{self::A::T%} : throw new _in::LateError::localNI("value");
+ return #value#isSet ?{self::A::T%} #value{self::A::T%} : throw new _in::LateError::localNI("value");
function #value#set(self::A::T% #t1) → dynamic {
#value#isSet = true;
- return value = #t1;
+ return #value = #t1;
}
() → dynamic result = () → dynamic => this.{self::A::bar}(#value#get.call());
(() → Null {
diff --git a/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.transformed.expect
index 7e000ad..6de62a5 100644
--- a/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40601.dart.strong.transformed.expect
@@ -10,13 +10,13 @@
abstract method baz() → self::A::T%;
method bar(generic-covariant-impl self::A::T% value) → dynamic {}
method foo() → dynamic {
- self::A::T? value;
- core::bool #value#isSet = false;
+ lowered self::A::T? #value;
+ lowered core::bool #value#isSet = false;
function #value#get() → self::A::T%
- return #value#isSet ?{self::A::T%} value{self::A::T%} : throw new _in::LateError::localNI("value");
+ return #value#isSet ?{self::A::T%} #value{self::A::T%} : throw new _in::LateError::localNI("value");
function #value#set(self::A::T% #t1) → dynamic {
#value#isSet = true;
- return value = #t1;
+ return #value = #t1;
}
() → dynamic result = () → dynamic => this.{self::A::bar}(#value#get.call());
(() → Null {
diff --git a/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.expect b/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.expect
index 7e000ad..6de62a5 100644
--- a/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.expect
@@ -10,13 +10,13 @@
abstract method baz() → self::A::T%;
method bar(generic-covariant-impl self::A::T% value) → dynamic {}
method foo() → dynamic {
- self::A::T? value;
- core::bool #value#isSet = false;
+ lowered self::A::T? #value;
+ lowered core::bool #value#isSet = false;
function #value#get() → self::A::T%
- return #value#isSet ?{self::A::T%} value{self::A::T%} : throw new _in::LateError::localNI("value");
+ return #value#isSet ?{self::A::T%} #value{self::A::T%} : throw new _in::LateError::localNI("value");
function #value#set(self::A::T% #t1) → dynamic {
#value#isSet = true;
- return value = #t1;
+ return #value = #t1;
}
() → dynamic result = () → dynamic => this.{self::A::bar}(#value#get.call());
(() → Null {
diff --git a/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.transformed.expect
index 7e000ad..6de62a5 100644
--- a/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40601.dart.weak.transformed.expect
@@ -10,13 +10,13 @@
abstract method baz() → self::A::T%;
method bar(generic-covariant-impl self::A::T% value) → dynamic {}
method foo() → dynamic {
- self::A::T? value;
- core::bool #value#isSet = false;
+ lowered self::A::T? #value;
+ lowered core::bool #value#isSet = false;
function #value#get() → self::A::T%
- return #value#isSet ?{self::A::T%} value{self::A::T%} : throw new _in::LateError::localNI("value");
+ return #value#isSet ?{self::A::T%} #value{self::A::T%} : throw new _in::LateError::localNI("value");
function #value#set(self::A::T% #t1) → dynamic {
#value#isSet = true;
- return value = #t1;
+ return #value = #t1;
}
() → dynamic result = () → dynamic => this.{self::A::bar}(#value#get.call());
(() → Null {
diff --git a/pkg/front_end/testcases/late_lowering/issue44372.dart.strong.expect b/pkg/front_end/testcases/late_lowering/issue44372.dart.strong.expect
index 016d6f4..2e8255b 100644
--- a/pkg/front_end/testcases/late_lowering/issue44372.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/issue44372.dart.strong.expect
@@ -4,14 +4,14 @@
import "dart:_internal" as _in;
static method main(core::List<core::String> args) → dynamic {
- () →? core::int recursiveInitLocal;
+ lowered () →? core::int #recursiveInitLocal;
function #recursiveInitLocal#get() → () → core::int
- return let final () →? core::int #t1 = recursiveInitLocal in #t1.==(null) ?{() → core::int} throw new _in::LateError::localNI("recursiveInitLocal") : #t1{() → core::int};
+ return let final () →? core::int #t1 = #recursiveInitLocal in #t1.==(null) ?{() → core::int} throw new _in::LateError::localNI("recursiveInitLocal") : #t1{() → core::int};
function #recursiveInitLocal#set(() → core::int #t2) → dynamic
- return recursiveInitLocal = #t2;
- final core::int? local;
+ return #recursiveInitLocal = #t2;
+ lowered final core::int? #local;
function #local#get() → core::int
- return let final core::int? #t3 = local in #t3.==(null) ?{core::int} let final core::int #t4 = #recursiveInitLocal#get.call().call() in local.==(null) ?{core::int} local = #t4 : throw new _in::LateError::localADI("local") : #t3{core::int};
+ return let final core::int? #t3 = #local in #t3.==(null) ?{core::int} let final core::int #t4 = #recursiveInitLocal#get.call().call() in #local.==(null) ?{core::int} #local = #t4 : throw new _in::LateError::localADI("local") : #t3{core::int};
core::bool doRecursiveInitLocal = true;
#recursiveInitLocal#set.call(() → core::int {
core::print("Executing initializer");
diff --git a/pkg/front_end/testcases/late_lowering/issue44372.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/issue44372.dart.strong.transformed.expect
index 016d6f4..2e8255b 100644
--- a/pkg/front_end/testcases/late_lowering/issue44372.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue44372.dart.strong.transformed.expect
@@ -4,14 +4,14 @@
import "dart:_internal" as _in;
static method main(core::List<core::String> args) → dynamic {
- () →? core::int recursiveInitLocal;
+ lowered () →? core::int #recursiveInitLocal;
function #recursiveInitLocal#get() → () → core::int
- return let final () →? core::int #t1 = recursiveInitLocal in #t1.==(null) ?{() → core::int} throw new _in::LateError::localNI("recursiveInitLocal") : #t1{() → core::int};
+ return let final () →? core::int #t1 = #recursiveInitLocal in #t1.==(null) ?{() → core::int} throw new _in::LateError::localNI("recursiveInitLocal") : #t1{() → core::int};
function #recursiveInitLocal#set(() → core::int #t2) → dynamic
- return recursiveInitLocal = #t2;
- final core::int? local;
+ return #recursiveInitLocal = #t2;
+ lowered final core::int? #local;
function #local#get() → core::int
- return let final core::int? #t3 = local in #t3.==(null) ?{core::int} let final core::int #t4 = #recursiveInitLocal#get.call().call() in local.==(null) ?{core::int} local = #t4 : throw new _in::LateError::localADI("local") : #t3{core::int};
+ return let final core::int? #t3 = #local in #t3.==(null) ?{core::int} let final core::int #t4 = #recursiveInitLocal#get.call().call() in #local.==(null) ?{core::int} #local = #t4 : throw new _in::LateError::localADI("local") : #t3{core::int};
core::bool doRecursiveInitLocal = true;
#recursiveInitLocal#set.call(() → core::int {
core::print("Executing initializer");
diff --git a/pkg/front_end/testcases/late_lowering/issue44372.dart.weak.expect b/pkg/front_end/testcases/late_lowering/issue44372.dart.weak.expect
index 515c1f2..16f8718 100644
--- a/pkg/front_end/testcases/late_lowering/issue44372.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/issue44372.dart.weak.expect
@@ -4,25 +4,25 @@
import "dart:_internal" as _in;
static method main(core::List<core::String> args) → dynamic {
- () →? core::int recursiveInitLocal;
- core::bool #recursiveInitLocal#isSet = false;
+ lowered () →? core::int #recursiveInitLocal;
+ lowered core::bool #recursiveInitLocal#isSet = false;
function #recursiveInitLocal#get() → () → core::int
- return #recursiveInitLocal#isSet ?{() → core::int} recursiveInitLocal{() → core::int} : throw new _in::LateError::localNI("recursiveInitLocal");
+ return #recursiveInitLocal#isSet ?{() → core::int} #recursiveInitLocal{() → core::int} : throw new _in::LateError::localNI("recursiveInitLocal");
function #recursiveInitLocal#set(() → core::int #t1) → dynamic {
#recursiveInitLocal#isSet = true;
- return recursiveInitLocal = #t1;
+ return #recursiveInitLocal = #t1;
}
- final core::int? local;
- core::bool #local#isSet = false;
+ lowered final core::int? #local;
+ lowered core::bool #local#isSet = false;
function #local#get() → core::int {
if(!#local#isSet) {
final core::int #t2 = #recursiveInitLocal#get.call().call();
if(#local#isSet)
throw new _in::LateError::localADI("local");
- local = #t2;
+ #local = #t2;
#local#isSet = true;
}
- return local{core::int};
+ return #local{core::int};
}
core::bool doRecursiveInitLocal = true;
#recursiveInitLocal#set.call(() → core::int {
diff --git a/pkg/front_end/testcases/late_lowering/issue44372.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/issue44372.dart.weak.transformed.expect
index 515c1f2..16f8718 100644
--- a/pkg/front_end/testcases/late_lowering/issue44372.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue44372.dart.weak.transformed.expect
@@ -4,25 +4,25 @@
import "dart:_internal" as _in;
static method main(core::List<core::String> args) → dynamic {
- () →? core::int recursiveInitLocal;
- core::bool #recursiveInitLocal#isSet = false;
+ lowered () →? core::int #recursiveInitLocal;
+ lowered core::bool #recursiveInitLocal#isSet = false;
function #recursiveInitLocal#get() → () → core::int
- return #recursiveInitLocal#isSet ?{() → core::int} recursiveInitLocal{() → core::int} : throw new _in::LateError::localNI("recursiveInitLocal");
+ return #recursiveInitLocal#isSet ?{() → core::int} #recursiveInitLocal{() → core::int} : throw new _in::LateError::localNI("recursiveInitLocal");
function #recursiveInitLocal#set(() → core::int #t1) → dynamic {
#recursiveInitLocal#isSet = true;
- return recursiveInitLocal = #t1;
+ return #recursiveInitLocal = #t1;
}
- final core::int? local;
- core::bool #local#isSet = false;
+ lowered final core::int? #local;
+ lowered core::bool #local#isSet = false;
function #local#get() → core::int {
if(!#local#isSet) {
final core::int #t2 = #recursiveInitLocal#get.call().call();
if(#local#isSet)
throw new _in::LateError::localADI("local");
- local = #t2;
+ #local = #t2;
#local#isSet = true;
}
- return local{core::int};
+ return #local{core::int};
}
core::bool doRecursiveInitLocal = true;
#recursiveInitLocal#set.call(() → core::int {
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.expect
index ff4583f..b219a6f 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.expect
@@ -8,9 +8,9 @@
function initLateLocal(core::int value) → core::int {
return lateLocalInit = value;
}
- final core::int? lateLocal;
+ lowered final core::int? #lateLocal;
function #lateLocal#get() → core::int
- return let final core::int? #t1 = lateLocal in #t1.==(null) ?{core::int} let final core::int #t2 = initLateLocal.call(123) in lateLocal.==(null) ?{core::int} lateLocal = #t2 : throw new _in::LateError::localADI("lateLocal") : #t1{core::int};
+ return let final core::int? #t1 = #lateLocal in #t1.==(null) ?{core::int} let final core::int #t2 = initLateLocal.call(123) in #lateLocal.==(null) ?{core::int} #lateLocal = #t2 : throw new _in::LateError::localADI("lateLocal") : #t1{core::int};
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
@@ -19,17 +19,17 @@
function initLateGenericLocal(T% value) → T% {
return lateGenericLocalInit = value;
}
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
if(!#lateGenericLocal#isSet) {
final T% #t3 = initLateGenericLocal.call(value);
if(#lateGenericLocal#isSet)
throw new _in::LateError::localADI("lateGenericLocal");
- lateGenericLocal = #t3;
+ #lateGenericLocal = #t3;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal{T%};
+ return #lateGenericLocal{T%};
}
self::expect(null, lateGenericLocalInit);
self::expect(value, #lateGenericLocal#get.call());
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.transformed.expect
index ff4583f..b219a6f 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.strong.transformed.expect
@@ -8,9 +8,9 @@
function initLateLocal(core::int value) → core::int {
return lateLocalInit = value;
}
- final core::int? lateLocal;
+ lowered final core::int? #lateLocal;
function #lateLocal#get() → core::int
- return let final core::int? #t1 = lateLocal in #t1.==(null) ?{core::int} let final core::int #t2 = initLateLocal.call(123) in lateLocal.==(null) ?{core::int} lateLocal = #t2 : throw new _in::LateError::localADI("lateLocal") : #t1{core::int};
+ return let final core::int? #t1 = #lateLocal in #t1.==(null) ?{core::int} let final core::int #t2 = initLateLocal.call(123) in #lateLocal.==(null) ?{core::int} #lateLocal = #t2 : throw new _in::LateError::localADI("lateLocal") : #t1{core::int};
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
self::expect(123, lateLocalInit);
@@ -19,17 +19,17 @@
function initLateGenericLocal(T% value) → T% {
return lateGenericLocalInit = value;
}
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
if(!#lateGenericLocal#isSet) {
final T% #t3 = initLateGenericLocal.call(value);
if(#lateGenericLocal#isSet)
throw new _in::LateError::localADI("lateGenericLocal");
- lateGenericLocal = #t3;
+ #lateGenericLocal = #t3;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal{T%};
+ return #lateGenericLocal{T%};
}
self::expect(null, lateGenericLocalInit);
self::expect(value, #lateGenericLocal#get.call());
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.expect
index 5125e21..fd2146f 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.expect
@@ -8,17 +8,17 @@
function initLateLocal(core::int value) → core::int {
return lateLocalInit = value;
}
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int {
if(!#lateLocal#isSet) {
final core::int #t1 = initLateLocal.call(123);
if(#lateLocal#isSet)
throw new _in::LateError::localADI("lateLocal");
- lateLocal = #t1;
+ #lateLocal = #t1;
#lateLocal#isSet = true;
}
- return lateLocal{core::int};
+ return #lateLocal{core::int};
}
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
@@ -28,17 +28,17 @@
function initLateGenericLocal(T% value) → T% {
return lateGenericLocalInit = value;
}
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
if(!#lateGenericLocal#isSet) {
final T% #t2 = initLateGenericLocal.call(value);
if(#lateGenericLocal#isSet)
throw new _in::LateError::localADI("lateGenericLocal");
- lateGenericLocal = #t2;
+ #lateGenericLocal = #t2;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal{T%};
+ return #lateGenericLocal{T%};
}
self::expect(null, lateGenericLocalInit);
self::expect(value, #lateGenericLocal#get.call());
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.transformed.expect
index 5125e21..fd2146f 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_with_initializer.dart.weak.transformed.expect
@@ -8,17 +8,17 @@
function initLateLocal(core::int value) → core::int {
return lateLocalInit = value;
}
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int {
if(!#lateLocal#isSet) {
final core::int #t1 = initLateLocal.call(123);
if(#lateLocal#isSet)
throw new _in::LateError::localADI("lateLocal");
- lateLocal = #t1;
+ #lateLocal = #t1;
#lateLocal#isSet = true;
}
- return lateLocal{core::int};
+ return #lateLocal{core::int};
}
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
@@ -28,17 +28,17 @@
function initLateGenericLocal(T% value) → T% {
return lateGenericLocalInit = value;
}
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
if(!#lateGenericLocal#isSet) {
final T% #t2 = initLateGenericLocal.call(value);
if(#lateGenericLocal#isSet)
throw new _in::LateError::localADI("lateGenericLocal");
- lateGenericLocal = #t2;
+ #lateGenericLocal = #t2;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal{T%};
+ return #lateGenericLocal{T%};
}
self::expect(null, lateGenericLocalInit);
self::expect(value, #lateGenericLocal#get.call());
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.expect
index 5052aa475..2240a48 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.expect
@@ -5,12 +5,12 @@
static method main() → dynamic {
core::bool b = false;
- final core::int? lateLocal;
+ lowered final core::int? #lateLocal;
function #lateLocal#get() → core::int
- return let final core::int? #t1 = lateLocal in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("lateLocal") : #t1{core::int};
+ return let final core::int? #t1 = #lateLocal in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("lateLocal") : #t1{core::int};
function #lateLocal#set(core::int #t2) → dynamic
- if(lateLocal.==(null))
- return lateLocal = #t2;
+ if(#lateLocal.==(null))
+ return #lateLocal = #t2;
else
throw new _in::LateError::localAI("lateLocal");
if(b) {
@@ -23,16 +23,16 @@
}
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
function local<T extends core::Object? = dynamic>(T% value) → Null {
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
- return #lateGenericLocal#isSet ?{T%} lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T%} #lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T% #t3) → dynamic
if(#lateGenericLocal#isSet)
throw new _in::LateError::localAI("lateGenericLocal");
else {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t3;
+ return #lateGenericLocal = #t3;
}
if(b) {
#lateGenericLocal#set.call(value);
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.transformed.expect
index 5052aa475..2240a48 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.strong.transformed.expect
@@ -5,12 +5,12 @@
static method main() → dynamic {
core::bool b = false;
- final core::int? lateLocal;
+ lowered final core::int? #lateLocal;
function #lateLocal#get() → core::int
- return let final core::int? #t1 = lateLocal in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("lateLocal") : #t1{core::int};
+ return let final core::int? #t1 = #lateLocal in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("lateLocal") : #t1{core::int};
function #lateLocal#set(core::int #t2) → dynamic
- if(lateLocal.==(null))
- return lateLocal = #t2;
+ if(#lateLocal.==(null))
+ return #lateLocal = #t2;
else
throw new _in::LateError::localAI("lateLocal");
if(b) {
@@ -23,16 +23,16 @@
}
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
function local<T extends core::Object? = dynamic>(T% value) → Null {
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
- return #lateGenericLocal#isSet ?{T%} lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T%} #lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T% #t3) → dynamic
if(#lateGenericLocal#isSet)
throw new _in::LateError::localAI("lateGenericLocal");
else {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t3;
+ return #lateGenericLocal = #t3;
}
if(b) {
#lateGenericLocal#set.call(value);
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.expect
index 4a3c1ef..8f08ee7 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.expect
@@ -5,16 +5,16 @@
static method main() → dynamic {
core::bool b = false;
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int
- return #lateLocal#isSet ?{core::int} lateLocal{core::int} : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int} #lateLocal{core::int} : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int #t1) → dynamic
if(#lateLocal#isSet)
throw new _in::LateError::localAI("lateLocal");
else {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
if(b) {
#lateLocal#set.call(123);
@@ -26,16 +26,16 @@
}
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
function local<T extends core::Object? = dynamic>(T% value) → Null {
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
- return #lateGenericLocal#isSet ?{T%} lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T%} #lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T% #t2) → dynamic
if(#lateGenericLocal#isSet)
throw new _in::LateError::localAI("lateGenericLocal");
else {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
if(b) {
#lateGenericLocal#set.call(value);
diff --git a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.transformed.expect
index 4a3c1ef..8f08ee7 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_local_without_initializer.dart.weak.transformed.expect
@@ -5,16 +5,16 @@
static method main() → dynamic {
core::bool b = false;
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int
- return #lateLocal#isSet ?{core::int} lateLocal{core::int} : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int} #lateLocal{core::int} : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int #t1) → dynamic
if(#lateLocal#isSet)
throw new _in::LateError::localAI("lateLocal");
else {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
if(b) {
#lateLocal#set.call(123);
@@ -26,16 +26,16 @@
}
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
function local<T extends core::Object? = dynamic>(T% value) → Null {
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
- return #lateGenericLocal#isSet ?{T%} lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T%} #lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T% #t2) → dynamic
if(#lateGenericLocal#isSet)
throw new _in::LateError::localAI("lateGenericLocal");
else {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
if(b) {
#lateGenericLocal#set.call(value);
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.expect
index 6292291..d2e95b9 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.expect
@@ -8,17 +8,17 @@
function initLateLocal(core::int? value) → core::int? {
return lateLocalInit = value;
}
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int? {
if(!#lateLocal#isSet) {
final core::int? #t1 = initLateLocal.call(123);
if(#lateLocal#isSet)
throw new _in::LateError::localADI("lateLocal");
- lateLocal = #t1;
+ #lateLocal = #t1;
#lateLocal#isSet = true;
}
- return lateLocal;
+ return #lateLocal;
}
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
@@ -28,17 +28,17 @@
function initLateGenericLocal(T? value) → T? {
return lateGenericLocalInit = value;
}
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
if(!#lateGenericLocal#isSet) {
final T? #t2 = initLateGenericLocal.call(value);
if(#lateGenericLocal#isSet)
throw new _in::LateError::localADI("lateGenericLocal");
- lateGenericLocal = #t2;
+ #lateGenericLocal = #t2;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal;
+ return #lateGenericLocal;
}
self::expect(null, lateGenericLocalInit);
self::expect(value, #lateGenericLocal#get.call());
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.transformed.expect
index 6292291..d2e95b9 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.strong.transformed.expect
@@ -8,17 +8,17 @@
function initLateLocal(core::int? value) → core::int? {
return lateLocalInit = value;
}
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int? {
if(!#lateLocal#isSet) {
final core::int? #t1 = initLateLocal.call(123);
if(#lateLocal#isSet)
throw new _in::LateError::localADI("lateLocal");
- lateLocal = #t1;
+ #lateLocal = #t1;
#lateLocal#isSet = true;
}
- return lateLocal;
+ return #lateLocal;
}
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
@@ -28,17 +28,17 @@
function initLateGenericLocal(T? value) → T? {
return lateGenericLocalInit = value;
}
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
if(!#lateGenericLocal#isSet) {
final T? #t2 = initLateGenericLocal.call(value);
if(#lateGenericLocal#isSet)
throw new _in::LateError::localADI("lateGenericLocal");
- lateGenericLocal = #t2;
+ #lateGenericLocal = #t2;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal;
+ return #lateGenericLocal;
}
self::expect(null, lateGenericLocalInit);
self::expect(value, #lateGenericLocal#get.call());
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.expect
index 6292291..d2e95b9 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.expect
@@ -8,17 +8,17 @@
function initLateLocal(core::int? value) → core::int? {
return lateLocalInit = value;
}
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int? {
if(!#lateLocal#isSet) {
final core::int? #t1 = initLateLocal.call(123);
if(#lateLocal#isSet)
throw new _in::LateError::localADI("lateLocal");
- lateLocal = #t1;
+ #lateLocal = #t1;
#lateLocal#isSet = true;
}
- return lateLocal;
+ return #lateLocal;
}
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
@@ -28,17 +28,17 @@
function initLateGenericLocal(T? value) → T? {
return lateGenericLocalInit = value;
}
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
if(!#lateGenericLocal#isSet) {
final T? #t2 = initLateGenericLocal.call(value);
if(#lateGenericLocal#isSet)
throw new _in::LateError::localADI("lateGenericLocal");
- lateGenericLocal = #t2;
+ #lateGenericLocal = #t2;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal;
+ return #lateGenericLocal;
}
self::expect(null, lateGenericLocalInit);
self::expect(value, #lateGenericLocal#get.call());
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.transformed.expect
index 6292291..d2e95b9 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_with_initializer.dart.weak.transformed.expect
@@ -8,17 +8,17 @@
function initLateLocal(core::int? value) → core::int? {
return lateLocalInit = value;
}
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int? {
if(!#lateLocal#isSet) {
final core::int? #t1 = initLateLocal.call(123);
if(#lateLocal#isSet)
throw new _in::LateError::localADI("lateLocal");
- lateLocal = #t1;
+ #lateLocal = #t1;
#lateLocal#isSet = true;
}
- return lateLocal;
+ return #lateLocal;
}
self::expect(null, lateLocalInit);
self::expect(123, #lateLocal#get.call());
@@ -28,17 +28,17 @@
function initLateGenericLocal(T? value) → T? {
return lateGenericLocalInit = value;
}
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
if(!#lateGenericLocal#isSet) {
final T? #t2 = initLateGenericLocal.call(value);
if(#lateGenericLocal#isSet)
throw new _in::LateError::localADI("lateGenericLocal");
- lateGenericLocal = #t2;
+ #lateGenericLocal = #t2;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal;
+ return #lateGenericLocal;
}
self::expect(null, lateGenericLocalInit);
self::expect(value, #lateGenericLocal#get.call());
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.expect
index 37fa15a..5d5693d 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.expect
@@ -4,16 +4,16 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int?
- return #lateLocal#isSet ?{core::int?} lateLocal : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int?} #lateLocal : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int? #t1) → dynamic
if(#lateLocal#isSet)
throw new _in::LateError::localAI("lateLocal");
else {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
if(1.{core::num::==}(1)) {
@@ -22,16 +22,16 @@
self::expect(123, #lateLocal#get.call());
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
function local<T extends core::Object? = dynamic>(T? value) → Null {
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
- return #lateGenericLocal#isSet ?{T?} lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T?} #lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T? #t2) → dynamic
if(#lateGenericLocal#isSet)
throw new _in::LateError::localAI("lateGenericLocal");
else {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T? => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
if(1.{core::num::==}(1)) {
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.transformed.expect
index 3dfd218..15d60ff 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.strong.transformed.expect
@@ -4,16 +4,16 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int?
- return #lateLocal#isSet ?{core::int?} lateLocal : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int?} #lateLocal : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int? #t1) → dynamic
if(#lateLocal#isSet)
throw new _in::LateError::localAI("lateLocal");
else {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
if(1.{core::num::==}(1)) {
@@ -22,16 +22,16 @@
self::expect(123, #lateLocal#get.call());
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
function local<T extends core::Object? = dynamic>(T? value) → Null {
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
- return #lateGenericLocal#isSet ?{T?} lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T?} #lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T? #t2) → dynamic
if(#lateGenericLocal#isSet)
throw new _in::LateError::localAI("lateGenericLocal");
else {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T? => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
if(1.{core::num::==}(1)) {
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.expect
index 37fa15a..5d5693d 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.expect
@@ -4,16 +4,16 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int?
- return #lateLocal#isSet ?{core::int?} lateLocal : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int?} #lateLocal : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int? #t1) → dynamic
if(#lateLocal#isSet)
throw new _in::LateError::localAI("lateLocal");
else {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
if(1.{core::num::==}(1)) {
@@ -22,16 +22,16 @@
self::expect(123, #lateLocal#get.call());
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
function local<T extends core::Object? = dynamic>(T? value) → Null {
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
- return #lateGenericLocal#isSet ?{T?} lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T?} #lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T? #t2) → dynamic
if(#lateGenericLocal#isSet)
throw new _in::LateError::localAI("lateGenericLocal");
else {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T? => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
if(1.{core::num::==}(1)) {
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.transformed.expect
index 3dfd218..15d60ff 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_local_without_initializer.dart.weak.transformed.expect
@@ -4,16 +4,16 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- final core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered final core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int?
- return #lateLocal#isSet ?{core::int?} lateLocal : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int?} #lateLocal : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int? #t1) → dynamic
if(#lateLocal#isSet)
throw new _in::LateError::localAI("lateLocal");
else {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
if(1.{core::num::==}(1)) {
@@ -22,16 +22,16 @@
self::expect(123, #lateLocal#get.call());
self::throws(() → core::int => #lateLocal#set.call(124), "Write value to initialized lateLocal");
function local<T extends core::Object? = dynamic>(T? value) → Null {
- final T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered final T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
- return #lateGenericLocal#isSet ?{T?} lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T?} #lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T? #t2) → dynamic
if(#lateGenericLocal#isSet)
throw new _in::LateError::localAI("lateGenericLocal");
else {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T? => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
if(1.{core::num::==}(1)) {
diff --git a/pkg/front_end/testcases/late_lowering/late_future_or.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_future_or.dart.strong.expect
index f28f0a7..2a49ff2 100644
--- a/pkg/front_end/testcases/late_lowering/late_future_or.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_future_or.dart.strong.expect
@@ -50,45 +50,45 @@
this.{self::C::_#C#field5} = #t6;
}
method method() → dynamic {
- FutureOr<dynamic>? local1;
- core::bool #local1#isSet = false;
+ lowered FutureOr<dynamic>? #local1;
+ lowered core::bool #local1#isSet = false;
function #local1#get() → FutureOr<dynamic>
- return #local1#isSet ?{FutureOr<dynamic>} local1 : throw new _in::LateError::localNI("local1");
+ return #local1#isSet ?{FutureOr<dynamic>} #local1 : throw new _in::LateError::localNI("local1");
function #local1#set(FutureOr<dynamic>#t7) → dynamic {
#local1#isSet = true;
- return local1 = #t7;
+ return #local1 = #t7;
}
- FutureOr<dynamic>? local2;
- core::bool #local2#isSet = false;
+ lowered FutureOr<dynamic>? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → FutureOr<dynamic>?
- return #local2#isSet ?{FutureOr<dynamic>?} local2 : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{FutureOr<dynamic>?} #local2 : throw new _in::LateError::localNI("local2");
function #local2#set(FutureOr<dynamic>? #t8) → dynamic {
#local2#isSet = true;
- return local2 = #t8;
+ return #local2 = #t8;
}
- FutureOr<self::C::T%>? local3;
- core::bool #local3#isSet = false;
+ lowered FutureOr<self::C::T%>? #local3;
+ lowered core::bool #local3#isSet = false;
function #local3#get() → FutureOr<self::C::T%>
- return #local3#isSet ?{FutureOr<self::C::T%>} local3{FutureOr<self::C::T%>} : throw new _in::LateError::localNI("local3");
+ return #local3#isSet ?{FutureOr<self::C::T%>} #local3{FutureOr<self::C::T%>} : throw new _in::LateError::localNI("local3");
function #local3#set(FutureOr<self::C::T%>#t9) → dynamic {
#local3#isSet = true;
- return local3 = #t9;
+ return #local3 = #t9;
}
- FutureOr<self::C::T?>? local4;
- core::bool #local4#isSet = false;
+ lowered FutureOr<self::C::T?>? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → FutureOr<self::C::T?>
- return #local4#isSet ?{FutureOr<self::C::T?>} local4 : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{FutureOr<self::C::T?>} #local4 : throw new _in::LateError::localNI("local4");
function #local4#set(FutureOr<self::C::T?>#t10) → dynamic {
#local4#isSet = true;
- return local4 = #t10;
+ return #local4 = #t10;
}
- FutureOr<self::C::T?>? local5;
- core::bool #local5#isSet = false;
+ lowered FutureOr<self::C::T?>? #local5;
+ lowered core::bool #local5#isSet = false;
function #local5#get() → FutureOr<self::C::T?>?
- return #local5#isSet ?{FutureOr<self::C::T?>?} local5 : throw new _in::LateError::localNI("local5");
+ return #local5#isSet ?{FutureOr<self::C::T?>?} #local5 : throw new _in::LateError::localNI("local5");
function #local5#set(FutureOr<self::C::T?>? #t11) → dynamic {
#local5#isSet = true;
- return local5 = #t11;
+ return #local5 = #t11;
}
}
}
diff --git a/pkg/front_end/testcases/late_lowering/late_future_or.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_future_or.dart.strong.transformed.expect
index f28f0a7..2a49ff2 100644
--- a/pkg/front_end/testcases/late_lowering/late_future_or.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_future_or.dart.strong.transformed.expect
@@ -50,45 +50,45 @@
this.{self::C::_#C#field5} = #t6;
}
method method() → dynamic {
- FutureOr<dynamic>? local1;
- core::bool #local1#isSet = false;
+ lowered FutureOr<dynamic>? #local1;
+ lowered core::bool #local1#isSet = false;
function #local1#get() → FutureOr<dynamic>
- return #local1#isSet ?{FutureOr<dynamic>} local1 : throw new _in::LateError::localNI("local1");
+ return #local1#isSet ?{FutureOr<dynamic>} #local1 : throw new _in::LateError::localNI("local1");
function #local1#set(FutureOr<dynamic>#t7) → dynamic {
#local1#isSet = true;
- return local1 = #t7;
+ return #local1 = #t7;
}
- FutureOr<dynamic>? local2;
- core::bool #local2#isSet = false;
+ lowered FutureOr<dynamic>? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → FutureOr<dynamic>?
- return #local2#isSet ?{FutureOr<dynamic>?} local2 : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{FutureOr<dynamic>?} #local2 : throw new _in::LateError::localNI("local2");
function #local2#set(FutureOr<dynamic>? #t8) → dynamic {
#local2#isSet = true;
- return local2 = #t8;
+ return #local2 = #t8;
}
- FutureOr<self::C::T%>? local3;
- core::bool #local3#isSet = false;
+ lowered FutureOr<self::C::T%>? #local3;
+ lowered core::bool #local3#isSet = false;
function #local3#get() → FutureOr<self::C::T%>
- return #local3#isSet ?{FutureOr<self::C::T%>} local3{FutureOr<self::C::T%>} : throw new _in::LateError::localNI("local3");
+ return #local3#isSet ?{FutureOr<self::C::T%>} #local3{FutureOr<self::C::T%>} : throw new _in::LateError::localNI("local3");
function #local3#set(FutureOr<self::C::T%>#t9) → dynamic {
#local3#isSet = true;
- return local3 = #t9;
+ return #local3 = #t9;
}
- FutureOr<self::C::T?>? local4;
- core::bool #local4#isSet = false;
+ lowered FutureOr<self::C::T?>? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → FutureOr<self::C::T?>
- return #local4#isSet ?{FutureOr<self::C::T?>} local4 : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{FutureOr<self::C::T?>} #local4 : throw new _in::LateError::localNI("local4");
function #local4#set(FutureOr<self::C::T?>#t10) → dynamic {
#local4#isSet = true;
- return local4 = #t10;
+ return #local4 = #t10;
}
- FutureOr<self::C::T?>? local5;
- core::bool #local5#isSet = false;
+ lowered FutureOr<self::C::T?>? #local5;
+ lowered core::bool #local5#isSet = false;
function #local5#get() → FutureOr<self::C::T?>?
- return #local5#isSet ?{FutureOr<self::C::T?>?} local5 : throw new _in::LateError::localNI("local5");
+ return #local5#isSet ?{FutureOr<self::C::T?>?} #local5 : throw new _in::LateError::localNI("local5");
function #local5#set(FutureOr<self::C::T?>? #t11) → dynamic {
#local5#isSet = true;
- return local5 = #t11;
+ return #local5 = #t11;
}
}
}
diff --git a/pkg/front_end/testcases/late_lowering/late_future_or.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_future_or.dart.weak.expect
index 78cd9c9..0ac8dba 100644
--- a/pkg/front_end/testcases/late_lowering/late_future_or.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_future_or.dart.weak.expect
@@ -50,45 +50,45 @@
this.{self::C::_#C#field5} = #t6;
}
method method() → dynamic {
- FutureOr<dynamic>? local1;
- core::bool #local1#isSet = false;
+ lowered FutureOr<dynamic>? #local1;
+ lowered core::bool #local1#isSet = false;
function #local1#get() → FutureOr<dynamic>
- return #local1#isSet ?{FutureOr<dynamic>} local1 : throw new _in::LateError::localNI("local1");
+ return #local1#isSet ?{FutureOr<dynamic>} #local1 : throw new _in::LateError::localNI("local1");
function #local1#set(FutureOr<dynamic>#t7) → dynamic {
#local1#isSet = true;
- return local1 = #t7;
+ return #local1 = #t7;
}
- FutureOr<dynamic>? local2;
- core::bool #local2#isSet = false;
+ lowered FutureOr<dynamic>? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → FutureOr<dynamic>?
- return #local2#isSet ?{FutureOr<dynamic>?} local2 : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{FutureOr<dynamic>?} #local2 : throw new _in::LateError::localNI("local2");
function #local2#set(FutureOr<dynamic>? #t8) → dynamic {
#local2#isSet = true;
- return local2 = #t8;
+ return #local2 = #t8;
}
- FutureOr<self::C::T%>? local3;
- core::bool #local3#isSet = false;
+ lowered FutureOr<self::C::T%>? #local3;
+ lowered core::bool #local3#isSet = false;
function #local3#get() → FutureOr<self::C::T%>
- return #local3#isSet ?{FutureOr<self::C::T%>} local3{FutureOr<self::C::T%>} : throw new _in::LateError::localNI("local3");
+ return #local3#isSet ?{FutureOr<self::C::T%>} #local3{FutureOr<self::C::T%>} : throw new _in::LateError::localNI("local3");
function #local3#set(FutureOr<self::C::T%>#t9) → dynamic {
#local3#isSet = true;
- return local3 = #t9;
+ return #local3 = #t9;
}
- FutureOr<self::C::T?>? local4;
- core::bool #local4#isSet = false;
+ lowered FutureOr<self::C::T?>? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → FutureOr<self::C::T?>
- return #local4#isSet ?{FutureOr<self::C::T?>} local4 : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{FutureOr<self::C::T?>} #local4 : throw new _in::LateError::localNI("local4");
function #local4#set(FutureOr<self::C::T?>#t10) → dynamic {
#local4#isSet = true;
- return local4 = #t10;
+ return #local4 = #t10;
}
- FutureOr<self::C::T?>? local5;
- core::bool #local5#isSet = false;
+ lowered FutureOr<self::C::T?>? #local5;
+ lowered core::bool #local5#isSet = false;
function #local5#get() → FutureOr<self::C::T?>?
- return #local5#isSet ?{FutureOr<self::C::T?>?} local5 : throw new _in::LateError::localNI("local5");
+ return #local5#isSet ?{FutureOr<self::C::T?>?} #local5 : throw new _in::LateError::localNI("local5");
function #local5#set(FutureOr<self::C::T?>? #t11) → dynamic {
#local5#isSet = true;
- return local5 = #t11;
+ return #local5 = #t11;
}
}
}
diff --git a/pkg/front_end/testcases/late_lowering/late_future_or.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_future_or.dart.weak.transformed.expect
index 78cd9c9..0ac8dba 100644
--- a/pkg/front_end/testcases/late_lowering/late_future_or.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_future_or.dart.weak.transformed.expect
@@ -50,45 +50,45 @@
this.{self::C::_#C#field5} = #t6;
}
method method() → dynamic {
- FutureOr<dynamic>? local1;
- core::bool #local1#isSet = false;
+ lowered FutureOr<dynamic>? #local1;
+ lowered core::bool #local1#isSet = false;
function #local1#get() → FutureOr<dynamic>
- return #local1#isSet ?{FutureOr<dynamic>} local1 : throw new _in::LateError::localNI("local1");
+ return #local1#isSet ?{FutureOr<dynamic>} #local1 : throw new _in::LateError::localNI("local1");
function #local1#set(FutureOr<dynamic>#t7) → dynamic {
#local1#isSet = true;
- return local1 = #t7;
+ return #local1 = #t7;
}
- FutureOr<dynamic>? local2;
- core::bool #local2#isSet = false;
+ lowered FutureOr<dynamic>? #local2;
+ lowered core::bool #local2#isSet = false;
function #local2#get() → FutureOr<dynamic>?
- return #local2#isSet ?{FutureOr<dynamic>?} local2 : throw new _in::LateError::localNI("local2");
+ return #local2#isSet ?{FutureOr<dynamic>?} #local2 : throw new _in::LateError::localNI("local2");
function #local2#set(FutureOr<dynamic>? #t8) → dynamic {
#local2#isSet = true;
- return local2 = #t8;
+ return #local2 = #t8;
}
- FutureOr<self::C::T%>? local3;
- core::bool #local3#isSet = false;
+ lowered FutureOr<self::C::T%>? #local3;
+ lowered core::bool #local3#isSet = false;
function #local3#get() → FutureOr<self::C::T%>
- return #local3#isSet ?{FutureOr<self::C::T%>} local3{FutureOr<self::C::T%>} : throw new _in::LateError::localNI("local3");
+ return #local3#isSet ?{FutureOr<self::C::T%>} #local3{FutureOr<self::C::T%>} : throw new _in::LateError::localNI("local3");
function #local3#set(FutureOr<self::C::T%>#t9) → dynamic {
#local3#isSet = true;
- return local3 = #t9;
+ return #local3 = #t9;
}
- FutureOr<self::C::T?>? local4;
- core::bool #local4#isSet = false;
+ lowered FutureOr<self::C::T?>? #local4;
+ lowered core::bool #local4#isSet = false;
function #local4#get() → FutureOr<self::C::T?>
- return #local4#isSet ?{FutureOr<self::C::T?>} local4 : throw new _in::LateError::localNI("local4");
+ return #local4#isSet ?{FutureOr<self::C::T?>} #local4 : throw new _in::LateError::localNI("local4");
function #local4#set(FutureOr<self::C::T?>#t10) → dynamic {
#local4#isSet = true;
- return local4 = #t10;
+ return #local4 = #t10;
}
- FutureOr<self::C::T?>? local5;
- core::bool #local5#isSet = false;
+ lowered FutureOr<self::C::T?>? #local5;
+ lowered core::bool #local5#isSet = false;
function #local5#get() → FutureOr<self::C::T?>?
- return #local5#isSet ?{FutureOr<self::C::T?>?} local5 : throw new _in::LateError::localNI("local5");
+ return #local5#isSet ?{FutureOr<self::C::T?>?} #local5 : throw new _in::LateError::localNI("local5");
function #local5#set(FutureOr<self::C::T?>? #t11) → dynamic {
#local5#isSet = true;
- return local5 = #t11;
+ return #local5 = #t11;
}
}
}
diff --git a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.expect
index d08871e..77cb4ba 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.expect
@@ -3,27 +3,27 @@
import "dart:core" as core;
static method main() → dynamic {
- core::int? lateLocal;
+ lowered core::int? #lateLocal;
function #lateLocal#get() → core::int
- return let final core::int? #t1 = lateLocal in #t1.==(null) ?{core::int} lateLocal = 123 : #t1{core::int};
+ return let final core::int? #t1 = #lateLocal in #t1.==(null) ?{core::int} #lateLocal = 123 : #t1{core::int};
function #lateLocal#set(core::int #t2) → dynamic
- return lateLocal = #t2;
+ return #lateLocal = #t2;
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T% value1, T% value2) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
if(!#lateGenericLocal#isSet) {
- lateGenericLocal = value1;
+ #lateGenericLocal = value1;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal{T%};
+ return #lateGenericLocal{T%};
}
function #lateGenericLocal#set(T% #t3) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t3;
+ return #lateGenericLocal = #t3;
}
self::expect(value1, #lateGenericLocal#get.call());
self::expect(value2, #lateGenericLocal#set.call(value2));
diff --git a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.transformed.expect
index d08871e..77cb4ba 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.strong.transformed.expect
@@ -3,27 +3,27 @@
import "dart:core" as core;
static method main() → dynamic {
- core::int? lateLocal;
+ lowered core::int? #lateLocal;
function #lateLocal#get() → core::int
- return let final core::int? #t1 = lateLocal in #t1.==(null) ?{core::int} lateLocal = 123 : #t1{core::int};
+ return let final core::int? #t1 = #lateLocal in #t1.==(null) ?{core::int} #lateLocal = 123 : #t1{core::int};
function #lateLocal#set(core::int #t2) → dynamic
- return lateLocal = #t2;
+ return #lateLocal = #t2;
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T% value1, T% value2) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
if(!#lateGenericLocal#isSet) {
- lateGenericLocal = value1;
+ #lateGenericLocal = value1;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal{T%};
+ return #lateGenericLocal{T%};
}
function #lateGenericLocal#set(T% #t3) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t3;
+ return #lateGenericLocal = #t3;
}
self::expect(value1, #lateGenericLocal#get.call());
self::expect(value2, #lateGenericLocal#set.call(value2));
diff --git a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.expect
index c681474..8942212 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.expect
@@ -3,35 +3,35 @@
import "dart:core" as core;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int {
if(!#lateLocal#isSet) {
- lateLocal = 123;
+ #lateLocal = 123;
#lateLocal#isSet = true;
}
- return lateLocal{core::int};
+ return #lateLocal{core::int};
}
function #lateLocal#set(core::int #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T% value1, T% value2) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
if(!#lateGenericLocal#isSet) {
- lateGenericLocal = value1;
+ #lateGenericLocal = value1;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal{T%};
+ return #lateGenericLocal{T%};
}
function #lateGenericLocal#set(T% #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::expect(value1, #lateGenericLocal#get.call());
self::expect(value2, #lateGenericLocal#set.call(value2));
diff --git a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.transformed.expect
index c681474..8942212 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_with_initializer.dart.weak.transformed.expect
@@ -3,35 +3,35 @@
import "dart:core" as core;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int {
if(!#lateLocal#isSet) {
- lateLocal = 123;
+ #lateLocal = 123;
#lateLocal#isSet = true;
}
- return lateLocal{core::int};
+ return #lateLocal{core::int};
}
function #lateLocal#set(core::int #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T% value1, T% value2) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T% {
if(!#lateGenericLocal#isSet) {
- lateGenericLocal = value1;
+ #lateGenericLocal = value1;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal{T%};
+ return #lateGenericLocal{T%};
}
function #lateGenericLocal#set(T% #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::expect(value1, #lateGenericLocal#get.call());
self::expect(value2, #lateGenericLocal#set.call(value2));
diff --git a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.expect
index 0f888e9..a8ded51 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.expect
@@ -4,22 +4,22 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? lateLocal;
+ lowered core::int? #lateLocal;
function #lateLocal#get() → core::int
- return let final core::int? #t1 = lateLocal in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("lateLocal") : #t1{core::int};
+ return let final core::int? #t1 = #lateLocal in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("lateLocal") : #t1{core::int};
function #lateLocal#set(core::int #t2) → dynamic
- return lateLocal = #t2;
+ return #lateLocal = #t2;
self::throws(() → core::int => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T% value) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
- return #lateGenericLocal#isSet ?{T%} lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T%} #lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T% #t3) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t3;
+ return #lateGenericLocal = #t3;
}
self::throws(() → T% => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set.call(value));
diff --git a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.transformed.expect
index 0f888e9..a8ded51 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.strong.transformed.expect
@@ -4,22 +4,22 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? lateLocal;
+ lowered core::int? #lateLocal;
function #lateLocal#get() → core::int
- return let final core::int? #t1 = lateLocal in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("lateLocal") : #t1{core::int};
+ return let final core::int? #t1 = #lateLocal in #t1.==(null) ?{core::int} throw new _in::LateError::localNI("lateLocal") : #t1{core::int};
function #lateLocal#set(core::int #t2) → dynamic
- return lateLocal = #t2;
+ return #lateLocal = #t2;
self::throws(() → core::int => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T% value) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
- return #lateGenericLocal#isSet ?{T%} lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T%} #lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T% #t3) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t3;
+ return #lateGenericLocal = #t3;
}
self::throws(() → T% => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set.call(value));
diff --git a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.expect
index 49dc955..44d30d6 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.expect
@@ -4,25 +4,25 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int
- return #lateLocal#isSet ?{core::int} lateLocal{core::int} : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int} #lateLocal{core::int} : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T% value) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
- return #lateGenericLocal#isSet ?{T%} lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T%} #lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T% #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T% => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set.call(value));
diff --git a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.transformed.expect
index 49dc955..44d30d6 100644
--- a/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_local_without_initializer.dart.weak.transformed.expect
@@ -4,25 +4,25 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int
- return #lateLocal#isSet ?{core::int} lateLocal{core::int} : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int} #lateLocal{core::int} : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T% value) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T%
- return #lateGenericLocal#isSet ?{T%} lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T%} #lateGenericLocal{T%} : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T% #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T% => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set.call(value));
diff --git a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.strong.expect
index 1bb57d1..b8d325b 100644
--- a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.strong.expect
@@ -56,71 +56,71 @@
static field core::int? _#initializedFinalTopLevelField = null;
static method main() → dynamic {}
static method method() → dynamic {
- core::int? nullableUninitializedNonFinalLocal;
- core::bool #nullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableUninitializedNonFinalLocal;
+ lowered core::bool #nullableUninitializedNonFinalLocal#isSet = false;
function #nullableUninitializedNonFinalLocal#get() → core::int?
- return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
+ return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} #nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
function #nullableUninitializedNonFinalLocal#set(core::int? #t17) → dynamic {
#nullableUninitializedNonFinalLocal#isSet = true;
- return nullableUninitializedNonFinalLocal = #t17;
+ return #nullableUninitializedNonFinalLocal = #t17;
}
- core::int? nonNullableUninitializedNonFinalLocal;
+ lowered core::int? #nonNullableUninitializedNonFinalLocal;
function #nonNullableUninitializedNonFinalLocal#get() → core::int
- return let final core::int? #t18 = nonNullableUninitializedNonFinalLocal in #t18.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal") : #t18{core::int};
+ return let final core::int? #t18 = #nonNullableUninitializedNonFinalLocal in #t18.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal") : #t18{core::int};
function #nonNullableUninitializedNonFinalLocal#set(core::int #t19) → dynamic
- return nonNullableUninitializedNonFinalLocal = #t19;
- final core::int? nullableUninitializedFinalLocal;
- core::bool #nullableUninitializedFinalLocal#isSet = false;
+ return #nonNullableUninitializedNonFinalLocal = #t19;
+ lowered final core::int? #nullableUninitializedFinalLocal;
+ lowered core::bool #nullableUninitializedFinalLocal#isSet = false;
function #nullableUninitializedFinalLocal#get() → core::int?
- return #nullableUninitializedFinalLocal#isSet ?{core::int?} nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
+ return #nullableUninitializedFinalLocal#isSet ?{core::int?} #nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
function #nullableUninitializedFinalLocal#set(core::int? #t20) → dynamic
if(#nullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nullableUninitializedFinalLocal");
else {
#nullableUninitializedFinalLocal#isSet = true;
- return nullableUninitializedFinalLocal = #t20;
+ return #nullableUninitializedFinalLocal = #t20;
}
- final core::int? nonNullableUninitializedFinalLocal;
+ lowered final core::int? #nonNullableUninitializedFinalLocal;
function #nonNullableUninitializedFinalLocal#get() → core::int
- return let final core::int? #t21 = nonNullableUninitializedFinalLocal in #t21.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal") : #t21{core::int};
+ return let final core::int? #t21 = #nonNullableUninitializedFinalLocal in #t21.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal") : #t21{core::int};
function #nonNullableUninitializedFinalLocal#set(core::int #t22) → dynamic
- if(nonNullableUninitializedFinalLocal.==(null))
- return nonNullableUninitializedFinalLocal = #t22;
+ if(#nonNullableUninitializedFinalLocal.==(null))
+ return #nonNullableUninitializedFinalLocal = #t22;
else
throw new _in::LateError::localAI("nonNullableUninitializedFinalLocal");
- core::int? nullableInitializedNonFinalLocal;
- core::bool #nullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableInitializedNonFinalLocal;
+ lowered core::bool #nullableInitializedNonFinalLocal#isSet = false;
function #nullableInitializedNonFinalLocal#get() → core::int? {
if(!#nullableInitializedNonFinalLocal#isSet) {
- nullableInitializedNonFinalLocal = 0;
+ #nullableInitializedNonFinalLocal = 0;
#nullableInitializedNonFinalLocal#isSet = true;
}
- return nullableInitializedNonFinalLocal;
+ return #nullableInitializedNonFinalLocal;
}
function #nullableInitializedNonFinalLocal#set(core::int? #t23) → dynamic {
#nullableInitializedNonFinalLocal#isSet = true;
- return nullableInitializedNonFinalLocal = #t23;
+ return #nullableInitializedNonFinalLocal = #t23;
}
- core::int? nonNullableInitializedNonFinalLocal;
+ lowered core::int? #nonNullableInitializedNonFinalLocal;
function #nonNullableInitializedNonFinalLocal#get() → core::int
- return let final core::int? #t24 = nonNullableInitializedNonFinalLocal in #t24.==(null) ?{core::int} nonNullableInitializedNonFinalLocal = 0 : #t24{core::int};
+ return let final core::int? #t24 = #nonNullableInitializedNonFinalLocal in #t24.==(null) ?{core::int} #nonNullableInitializedNonFinalLocal = 0 : #t24{core::int};
function #nonNullableInitializedNonFinalLocal#set(core::int #t25) → dynamic
- return nonNullableInitializedNonFinalLocal = #t25;
- final core::int? nullableInitializedFinalLocal;
- core::bool #nullableInitializedFinalLocal#isSet = false;
+ return #nonNullableInitializedNonFinalLocal = #t25;
+ lowered final core::int? #nullableInitializedFinalLocal;
+ lowered core::bool #nullableInitializedFinalLocal#isSet = false;
function #nullableInitializedFinalLocal#get() → core::int? {
if(!#nullableInitializedFinalLocal#isSet) {
final core::int? #t26 = 0;
if(#nullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nullableInitializedFinalLocal");
- nullableInitializedFinalLocal = #t26;
+ #nullableInitializedFinalLocal = #t26;
#nullableInitializedFinalLocal#isSet = true;
}
- return nullableInitializedFinalLocal;
+ return #nullableInitializedFinalLocal;
}
- final core::int? nonNullableInitializedFinalLocal;
+ lowered final core::int? #nonNullableInitializedFinalLocal;
function #nonNullableInitializedFinalLocal#get() → core::int
- return let final core::int? #t27 = nonNullableInitializedFinalLocal in #t27.==(null) ?{core::int} let final core::int #t28 = 0 in nonNullableInitializedFinalLocal.==(null) ?{core::int} nonNullableInitializedFinalLocal = #t28 : throw new _in::LateError::localADI("nonNullableInitializedFinalLocal") : #t27{core::int};
+ return let final core::int? #t27 = #nonNullableInitializedFinalLocal in #t27.==(null) ?{core::int} let final core::int #t28 = 0 in #nonNullableInitializedFinalLocal.==(null) ?{core::int} #nonNullableInitializedFinalLocal = #t28 : throw new _in::LateError::localADI("nonNullableInitializedFinalLocal") : #t27{core::int};
}
static get uninitializedNonFinalTopLevelField() → core::int
return let final core::int? #t29 = self::_#uninitializedNonFinalTopLevelField in #t29.==(null) ?{core::int} throw new _in::LateError::fieldNI("uninitializedNonFinalTopLevelField") : #t29{core::int};
diff --git a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.strong.transformed.expect
index a71870d..dd059f5 100644
--- a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.strong.transformed.expect
@@ -56,71 +56,71 @@
static field core::int? _#initializedFinalTopLevelField = null;
static method main() → dynamic {}
static method method() → dynamic {
- core::int? nullableUninitializedNonFinalLocal;
- core::bool #nullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableUninitializedNonFinalLocal;
+ lowered core::bool #nullableUninitializedNonFinalLocal#isSet = false;
function #nullableUninitializedNonFinalLocal#get() → core::int?
- return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
+ return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} #nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
function #nullableUninitializedNonFinalLocal#set(core::int? #t17) → dynamic {
#nullableUninitializedNonFinalLocal#isSet = true;
- return nullableUninitializedNonFinalLocal = #t17;
+ return #nullableUninitializedNonFinalLocal = #t17;
}
- core::int? nonNullableUninitializedNonFinalLocal;
+ lowered core::int? #nonNullableUninitializedNonFinalLocal;
function #nonNullableUninitializedNonFinalLocal#get() → core::int
- return let final core::int? #t18 = nonNullableUninitializedNonFinalLocal in #t18.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal") : #t18{core::int};
+ return let final core::int? #t18 = #nonNullableUninitializedNonFinalLocal in #t18.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal") : #t18{core::int};
function #nonNullableUninitializedNonFinalLocal#set(core::int #t19) → dynamic
- return nonNullableUninitializedNonFinalLocal = #t19;
- final core::int? nullableUninitializedFinalLocal;
- core::bool #nullableUninitializedFinalLocal#isSet = false;
+ return #nonNullableUninitializedNonFinalLocal = #t19;
+ lowered final core::int? #nullableUninitializedFinalLocal;
+ lowered core::bool #nullableUninitializedFinalLocal#isSet = false;
function #nullableUninitializedFinalLocal#get() → core::int?
- return #nullableUninitializedFinalLocal#isSet ?{core::int?} nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
+ return #nullableUninitializedFinalLocal#isSet ?{core::int?} #nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
function #nullableUninitializedFinalLocal#set(core::int? #t20) → dynamic
if(#nullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nullableUninitializedFinalLocal");
else {
#nullableUninitializedFinalLocal#isSet = true;
- return nullableUninitializedFinalLocal = #t20;
+ return #nullableUninitializedFinalLocal = #t20;
}
- final core::int? nonNullableUninitializedFinalLocal;
+ lowered final core::int? #nonNullableUninitializedFinalLocal;
function #nonNullableUninitializedFinalLocal#get() → core::int
- return let final core::int? #t21 = nonNullableUninitializedFinalLocal in #t21.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal") : #t21{core::int};
+ return let final core::int? #t21 = #nonNullableUninitializedFinalLocal in #t21.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal") : #t21{core::int};
function #nonNullableUninitializedFinalLocal#set(core::int #t22) → dynamic
- if(nonNullableUninitializedFinalLocal.==(null))
- return nonNullableUninitializedFinalLocal = #t22;
+ if(#nonNullableUninitializedFinalLocal.==(null))
+ return #nonNullableUninitializedFinalLocal = #t22;
else
throw new _in::LateError::localAI("nonNullableUninitializedFinalLocal");
- core::int? nullableInitializedNonFinalLocal;
- core::bool #nullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableInitializedNonFinalLocal;
+ lowered core::bool #nullableInitializedNonFinalLocal#isSet = false;
function #nullableInitializedNonFinalLocal#get() → core::int? {
if(!#nullableInitializedNonFinalLocal#isSet) {
- nullableInitializedNonFinalLocal = 0;
+ #nullableInitializedNonFinalLocal = 0;
#nullableInitializedNonFinalLocal#isSet = true;
}
- return nullableInitializedNonFinalLocal;
+ return #nullableInitializedNonFinalLocal;
}
function #nullableInitializedNonFinalLocal#set(core::int? #t23) → dynamic {
#nullableInitializedNonFinalLocal#isSet = true;
- return nullableInitializedNonFinalLocal = #t23;
+ return #nullableInitializedNonFinalLocal = #t23;
}
- core::int? nonNullableInitializedNonFinalLocal;
+ lowered core::int? #nonNullableInitializedNonFinalLocal;
function #nonNullableInitializedNonFinalLocal#get() → core::int
- return let final core::int? #t24 = nonNullableInitializedNonFinalLocal in #t24.==(null) ?{core::int} nonNullableInitializedNonFinalLocal = 0 : #t24{core::int};
+ return let final core::int? #t24 = #nonNullableInitializedNonFinalLocal in #t24.==(null) ?{core::int} #nonNullableInitializedNonFinalLocal = 0 : #t24{core::int};
function #nonNullableInitializedNonFinalLocal#set(core::int #t25) → dynamic
- return nonNullableInitializedNonFinalLocal = #t25;
- final core::int? nullableInitializedFinalLocal;
- core::bool #nullableInitializedFinalLocal#isSet = false;
+ return #nonNullableInitializedNonFinalLocal = #t25;
+ lowered final core::int? #nullableInitializedFinalLocal;
+ lowered core::bool #nullableInitializedFinalLocal#isSet = false;
function #nullableInitializedFinalLocal#get() → core::int? {
if(!#nullableInitializedFinalLocal#isSet) {
final core::int? #t26 = 0;
if(#nullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nullableInitializedFinalLocal");
- nullableInitializedFinalLocal = #t26;
+ #nullableInitializedFinalLocal = #t26;
#nullableInitializedFinalLocal#isSet = true;
}
- return nullableInitializedFinalLocal;
+ return #nullableInitializedFinalLocal;
}
- final core::int? nonNullableInitializedFinalLocal;
+ lowered final core::int? #nonNullableInitializedFinalLocal;
function #nonNullableInitializedFinalLocal#get() → core::int
- return let final core::int? #t27 = nonNullableInitializedFinalLocal in #t27.==(null) ?{core::int} let final core::int #t28 = 0 in nonNullableInitializedFinalLocal.==(null) ?{core::int} nonNullableInitializedFinalLocal = #t28 : throw new _in::LateError::localADI("nonNullableInitializedFinalLocal") : #t27{core::int};
+ return let final core::int? #t27 = #nonNullableInitializedFinalLocal in #t27.==(null) ?{core::int} let final core::int #t28 = 0 in #nonNullableInitializedFinalLocal.==(null) ?{core::int} #nonNullableInitializedFinalLocal = #t28 : throw new _in::LateError::localADI("nonNullableInitializedFinalLocal") : #t27{core::int};
}
static get uninitializedNonFinalTopLevelField() → core::int
return let final core::int? #t29 = self::_#uninitializedNonFinalTopLevelField in #t29.==(null) ?{core::int} throw new _in::LateError::fieldNI("uninitializedNonFinalTopLevelField") : #t29{core::int};
diff --git a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.weak.expect
index e5d34d1..46b8989 100644
--- a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.weak.expect
@@ -106,93 +106,93 @@
static field core::bool _#initializedFinalTopLevelField#isSet = false;
static method main() → dynamic {}
static method method() → dynamic {
- core::int? nullableUninitializedNonFinalLocal;
- core::bool #nullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableUninitializedNonFinalLocal;
+ lowered core::bool #nullableUninitializedNonFinalLocal#isSet = false;
function #nullableUninitializedNonFinalLocal#get() → core::int?
- return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
+ return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} #nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
function #nullableUninitializedNonFinalLocal#set(core::int? #t17) → dynamic {
#nullableUninitializedNonFinalLocal#isSet = true;
- return nullableUninitializedNonFinalLocal = #t17;
+ return #nullableUninitializedNonFinalLocal = #t17;
}
- core::int? nonNullableUninitializedNonFinalLocal;
- core::bool #nonNullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nonNullableUninitializedNonFinalLocal;
+ lowered core::bool #nonNullableUninitializedNonFinalLocal#isSet = false;
function #nonNullableUninitializedNonFinalLocal#get() → core::int
- return #nonNullableUninitializedNonFinalLocal#isSet ?{core::int} nonNullableUninitializedNonFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal");
+ return #nonNullableUninitializedNonFinalLocal#isSet ?{core::int} #nonNullableUninitializedNonFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal");
function #nonNullableUninitializedNonFinalLocal#set(core::int #t18) → dynamic {
#nonNullableUninitializedNonFinalLocal#isSet = true;
- return nonNullableUninitializedNonFinalLocal = #t18;
+ return #nonNullableUninitializedNonFinalLocal = #t18;
}
- final core::int? nullableUninitializedFinalLocal;
- core::bool #nullableUninitializedFinalLocal#isSet = false;
+ lowered final core::int? #nullableUninitializedFinalLocal;
+ lowered core::bool #nullableUninitializedFinalLocal#isSet = false;
function #nullableUninitializedFinalLocal#get() → core::int?
- return #nullableUninitializedFinalLocal#isSet ?{core::int?} nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
+ return #nullableUninitializedFinalLocal#isSet ?{core::int?} #nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
function #nullableUninitializedFinalLocal#set(core::int? #t19) → dynamic
if(#nullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nullableUninitializedFinalLocal");
else {
#nullableUninitializedFinalLocal#isSet = true;
- return nullableUninitializedFinalLocal = #t19;
+ return #nullableUninitializedFinalLocal = #t19;
}
- final core::int? nonNullableUninitializedFinalLocal;
- core::bool #nonNullableUninitializedFinalLocal#isSet = false;
+ lowered final core::int? #nonNullableUninitializedFinalLocal;
+ lowered core::bool #nonNullableUninitializedFinalLocal#isSet = false;
function #nonNullableUninitializedFinalLocal#get() → core::int
- return #nonNullableUninitializedFinalLocal#isSet ?{core::int} nonNullableUninitializedFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal");
+ return #nonNullableUninitializedFinalLocal#isSet ?{core::int} #nonNullableUninitializedFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal");
function #nonNullableUninitializedFinalLocal#set(core::int #t20) → dynamic
if(#nonNullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nonNullableUninitializedFinalLocal");
else {
#nonNullableUninitializedFinalLocal#isSet = true;
- return nonNullableUninitializedFinalLocal = #t20;
+ return #nonNullableUninitializedFinalLocal = #t20;
}
- core::int? nullableInitializedNonFinalLocal;
- core::bool #nullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableInitializedNonFinalLocal;
+ lowered core::bool #nullableInitializedNonFinalLocal#isSet = false;
function #nullableInitializedNonFinalLocal#get() → core::int? {
if(!#nullableInitializedNonFinalLocal#isSet) {
- nullableInitializedNonFinalLocal = 0;
+ #nullableInitializedNonFinalLocal = 0;
#nullableInitializedNonFinalLocal#isSet = true;
}
- return nullableInitializedNonFinalLocal;
+ return #nullableInitializedNonFinalLocal;
}
function #nullableInitializedNonFinalLocal#set(core::int? #t21) → dynamic {
#nullableInitializedNonFinalLocal#isSet = true;
- return nullableInitializedNonFinalLocal = #t21;
+ return #nullableInitializedNonFinalLocal = #t21;
}
- core::int? nonNullableInitializedNonFinalLocal;
- core::bool #nonNullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nonNullableInitializedNonFinalLocal;
+ lowered core::bool #nonNullableInitializedNonFinalLocal#isSet = false;
function #nonNullableInitializedNonFinalLocal#get() → core::int {
if(!#nonNullableInitializedNonFinalLocal#isSet) {
- nonNullableInitializedNonFinalLocal = 0;
+ #nonNullableInitializedNonFinalLocal = 0;
#nonNullableInitializedNonFinalLocal#isSet = true;
}
- return nonNullableInitializedNonFinalLocal{core::int};
+ return #nonNullableInitializedNonFinalLocal{core::int};
}
function #nonNullableInitializedNonFinalLocal#set(core::int #t22) → dynamic {
#nonNullableInitializedNonFinalLocal#isSet = true;
- return nonNullableInitializedNonFinalLocal = #t22;
+ return #nonNullableInitializedNonFinalLocal = #t22;
}
- final core::int? nullableInitializedFinalLocal;
- core::bool #nullableInitializedFinalLocal#isSet = false;
+ lowered final core::int? #nullableInitializedFinalLocal;
+ lowered core::bool #nullableInitializedFinalLocal#isSet = false;
function #nullableInitializedFinalLocal#get() → core::int? {
if(!#nullableInitializedFinalLocal#isSet) {
final core::int? #t23 = 0;
if(#nullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nullableInitializedFinalLocal");
- nullableInitializedFinalLocal = #t23;
+ #nullableInitializedFinalLocal = #t23;
#nullableInitializedFinalLocal#isSet = true;
}
- return nullableInitializedFinalLocal;
+ return #nullableInitializedFinalLocal;
}
- final core::int? nonNullableInitializedFinalLocal;
- core::bool #nonNullableInitializedFinalLocal#isSet = false;
+ lowered final core::int? #nonNullableInitializedFinalLocal;
+ lowered core::bool #nonNullableInitializedFinalLocal#isSet = false;
function #nonNullableInitializedFinalLocal#get() → core::int {
if(!#nonNullableInitializedFinalLocal#isSet) {
final core::int #t24 = 0;
if(#nonNullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nonNullableInitializedFinalLocal");
- nonNullableInitializedFinalLocal = #t24;
+ #nonNullableInitializedFinalLocal = #t24;
#nonNullableInitializedFinalLocal#isSet = true;
}
- return nonNullableInitializedFinalLocal{core::int};
+ return #nonNullableInitializedFinalLocal{core::int};
}
}
static get uninitializedNonFinalTopLevelField() → core::int
diff --git a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.weak.transformed.expect
index e5d34d1..46b8989 100644
--- a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.weak.transformed.expect
@@ -106,93 +106,93 @@
static field core::bool _#initializedFinalTopLevelField#isSet = false;
static method main() → dynamic {}
static method method() → dynamic {
- core::int? nullableUninitializedNonFinalLocal;
- core::bool #nullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableUninitializedNonFinalLocal;
+ lowered core::bool #nullableUninitializedNonFinalLocal#isSet = false;
function #nullableUninitializedNonFinalLocal#get() → core::int?
- return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
+ return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} #nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
function #nullableUninitializedNonFinalLocal#set(core::int? #t17) → dynamic {
#nullableUninitializedNonFinalLocal#isSet = true;
- return nullableUninitializedNonFinalLocal = #t17;
+ return #nullableUninitializedNonFinalLocal = #t17;
}
- core::int? nonNullableUninitializedNonFinalLocal;
- core::bool #nonNullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nonNullableUninitializedNonFinalLocal;
+ lowered core::bool #nonNullableUninitializedNonFinalLocal#isSet = false;
function #nonNullableUninitializedNonFinalLocal#get() → core::int
- return #nonNullableUninitializedNonFinalLocal#isSet ?{core::int} nonNullableUninitializedNonFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal");
+ return #nonNullableUninitializedNonFinalLocal#isSet ?{core::int} #nonNullableUninitializedNonFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal");
function #nonNullableUninitializedNonFinalLocal#set(core::int #t18) → dynamic {
#nonNullableUninitializedNonFinalLocal#isSet = true;
- return nonNullableUninitializedNonFinalLocal = #t18;
+ return #nonNullableUninitializedNonFinalLocal = #t18;
}
- final core::int? nullableUninitializedFinalLocal;
- core::bool #nullableUninitializedFinalLocal#isSet = false;
+ lowered final core::int? #nullableUninitializedFinalLocal;
+ lowered core::bool #nullableUninitializedFinalLocal#isSet = false;
function #nullableUninitializedFinalLocal#get() → core::int?
- return #nullableUninitializedFinalLocal#isSet ?{core::int?} nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
+ return #nullableUninitializedFinalLocal#isSet ?{core::int?} #nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
function #nullableUninitializedFinalLocal#set(core::int? #t19) → dynamic
if(#nullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nullableUninitializedFinalLocal");
else {
#nullableUninitializedFinalLocal#isSet = true;
- return nullableUninitializedFinalLocal = #t19;
+ return #nullableUninitializedFinalLocal = #t19;
}
- final core::int? nonNullableUninitializedFinalLocal;
- core::bool #nonNullableUninitializedFinalLocal#isSet = false;
+ lowered final core::int? #nonNullableUninitializedFinalLocal;
+ lowered core::bool #nonNullableUninitializedFinalLocal#isSet = false;
function #nonNullableUninitializedFinalLocal#get() → core::int
- return #nonNullableUninitializedFinalLocal#isSet ?{core::int} nonNullableUninitializedFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal");
+ return #nonNullableUninitializedFinalLocal#isSet ?{core::int} #nonNullableUninitializedFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal");
function #nonNullableUninitializedFinalLocal#set(core::int #t20) → dynamic
if(#nonNullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nonNullableUninitializedFinalLocal");
else {
#nonNullableUninitializedFinalLocal#isSet = true;
- return nonNullableUninitializedFinalLocal = #t20;
+ return #nonNullableUninitializedFinalLocal = #t20;
}
- core::int? nullableInitializedNonFinalLocal;
- core::bool #nullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableInitializedNonFinalLocal;
+ lowered core::bool #nullableInitializedNonFinalLocal#isSet = false;
function #nullableInitializedNonFinalLocal#get() → core::int? {
if(!#nullableInitializedNonFinalLocal#isSet) {
- nullableInitializedNonFinalLocal = 0;
+ #nullableInitializedNonFinalLocal = 0;
#nullableInitializedNonFinalLocal#isSet = true;
}
- return nullableInitializedNonFinalLocal;
+ return #nullableInitializedNonFinalLocal;
}
function #nullableInitializedNonFinalLocal#set(core::int? #t21) → dynamic {
#nullableInitializedNonFinalLocal#isSet = true;
- return nullableInitializedNonFinalLocal = #t21;
+ return #nullableInitializedNonFinalLocal = #t21;
}
- core::int? nonNullableInitializedNonFinalLocal;
- core::bool #nonNullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nonNullableInitializedNonFinalLocal;
+ lowered core::bool #nonNullableInitializedNonFinalLocal#isSet = false;
function #nonNullableInitializedNonFinalLocal#get() → core::int {
if(!#nonNullableInitializedNonFinalLocal#isSet) {
- nonNullableInitializedNonFinalLocal = 0;
+ #nonNullableInitializedNonFinalLocal = 0;
#nonNullableInitializedNonFinalLocal#isSet = true;
}
- return nonNullableInitializedNonFinalLocal{core::int};
+ return #nonNullableInitializedNonFinalLocal{core::int};
}
function #nonNullableInitializedNonFinalLocal#set(core::int #t22) → dynamic {
#nonNullableInitializedNonFinalLocal#isSet = true;
- return nonNullableInitializedNonFinalLocal = #t22;
+ return #nonNullableInitializedNonFinalLocal = #t22;
}
- final core::int? nullableInitializedFinalLocal;
- core::bool #nullableInitializedFinalLocal#isSet = false;
+ lowered final core::int? #nullableInitializedFinalLocal;
+ lowered core::bool #nullableInitializedFinalLocal#isSet = false;
function #nullableInitializedFinalLocal#get() → core::int? {
if(!#nullableInitializedFinalLocal#isSet) {
final core::int? #t23 = 0;
if(#nullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nullableInitializedFinalLocal");
- nullableInitializedFinalLocal = #t23;
+ #nullableInitializedFinalLocal = #t23;
#nullableInitializedFinalLocal#isSet = true;
}
- return nullableInitializedFinalLocal;
+ return #nullableInitializedFinalLocal;
}
- final core::int? nonNullableInitializedFinalLocal;
- core::bool #nonNullableInitializedFinalLocal#isSet = false;
+ lowered final core::int? #nonNullableInitializedFinalLocal;
+ lowered core::bool #nonNullableInitializedFinalLocal#isSet = false;
function #nonNullableInitializedFinalLocal#get() → core::int {
if(!#nonNullableInitializedFinalLocal#isSet) {
final core::int #t24 = 0;
if(#nonNullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nonNullableInitializedFinalLocal");
- nonNullableInitializedFinalLocal = #t24;
+ #nonNullableInitializedFinalLocal = #t24;
#nonNullableInitializedFinalLocal#isSet = true;
}
- return nonNullableInitializedFinalLocal{core::int};
+ return #nonNullableInitializedFinalLocal{core::int};
}
}
static get uninitializedNonFinalTopLevelField() → core::int
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.expect
index 44a6c7f..12dcc96 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.expect
@@ -5,35 +5,35 @@
static method lateLocalInit() → core::int?
return 123;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int? {
if(!#lateLocal#isSet) {
- lateLocal = self::lateLocalInit();
+ #lateLocal = self::lateLocalInit();
#lateLocal#isSet = true;
}
- return lateLocal;
+ return #lateLocal;
}
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value1, T? value2) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
if(!#lateGenericLocal#isSet) {
- lateGenericLocal = value1;
+ #lateGenericLocal = value1;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal;
+ return #lateGenericLocal;
}
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::expect(value1, #lateGenericLocal#get.call());
self::expect(value2, #lateGenericLocal#set.call(value2));
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.transformed.expect
index 44a6c7f..12dcc96 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.strong.transformed.expect
@@ -5,35 +5,35 @@
static method lateLocalInit() → core::int?
return 123;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int? {
if(!#lateLocal#isSet) {
- lateLocal = self::lateLocalInit();
+ #lateLocal = self::lateLocalInit();
#lateLocal#isSet = true;
}
- return lateLocal;
+ return #lateLocal;
}
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value1, T? value2) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
if(!#lateGenericLocal#isSet) {
- lateGenericLocal = value1;
+ #lateGenericLocal = value1;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal;
+ return #lateGenericLocal;
}
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::expect(value1, #lateGenericLocal#get.call());
self::expect(value2, #lateGenericLocal#set.call(value2));
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.expect
index 44a6c7f..12dcc96 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.expect
@@ -5,35 +5,35 @@
static method lateLocalInit() → core::int?
return 123;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int? {
if(!#lateLocal#isSet) {
- lateLocal = self::lateLocalInit();
+ #lateLocal = self::lateLocalInit();
#lateLocal#isSet = true;
}
- return lateLocal;
+ return #lateLocal;
}
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value1, T? value2) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
if(!#lateGenericLocal#isSet) {
- lateGenericLocal = value1;
+ #lateGenericLocal = value1;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal;
+ return #lateGenericLocal;
}
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::expect(value1, #lateGenericLocal#get.call());
self::expect(value2, #lateGenericLocal#set.call(value2));
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.transformed.expect
index 44a6c7f..12dcc96 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_with_initializer.dart.weak.transformed.expect
@@ -5,35 +5,35 @@
static method lateLocalInit() → core::int?
return 123;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int? {
if(!#lateLocal#isSet) {
- lateLocal = self::lateLocalInit();
+ #lateLocal = self::lateLocalInit();
#lateLocal#isSet = true;
}
- return lateLocal;
+ return #lateLocal;
}
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::expect(123, #lateLocal#get.call());
self::expect(124, #lateLocal#set.call(124));
self::expect(124, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value1, T? value2) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T? {
if(!#lateGenericLocal#isSet) {
- lateGenericLocal = value1;
+ #lateGenericLocal = value1;
#lateGenericLocal#isSet = true;
}
- return lateGenericLocal;
+ return #lateGenericLocal;
}
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::expect(value1, #lateGenericLocal#get.call());
self::expect(value2, #lateGenericLocal#set.call(value2));
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.expect
index d1c2417..a635204 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.expect
@@ -4,25 +4,25 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int?
- return #lateLocal#isSet ?{core::int?} lateLocal : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int?} #lateLocal : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
- return #lateGenericLocal#isSet ?{T?} lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T?} #lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T? => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set.call(value));
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.transformed.expect
index d1c2417..a635204 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.strong.transformed.expect
@@ -4,25 +4,25 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int?
- return #lateLocal#isSet ?{core::int?} lateLocal : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int?} #lateLocal : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
- return #lateGenericLocal#isSet ?{T?} lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T?} #lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T? => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set.call(value));
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.expect
index d1c2417..a635204 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.expect
@@ -4,25 +4,25 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int?
- return #lateLocal#isSet ?{core::int?} lateLocal : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int?} #lateLocal : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
- return #lateGenericLocal#isSet ?{T?} lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T?} #lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T? => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set.call(value));
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.transformed.expect
index d1c2417..a635204 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_local_without_initializer.dart.weak.transformed.expect
@@ -4,25 +4,25 @@
import "dart:_internal" as _in;
static method main() → dynamic {
- core::int? lateLocal;
- core::bool #lateLocal#isSet = false;
+ lowered core::int? #lateLocal;
+ lowered core::bool #lateLocal#isSet = false;
function #lateLocal#get() → core::int?
- return #lateLocal#isSet ?{core::int?} lateLocal : throw new _in::LateError::localNI("lateLocal");
+ return #lateLocal#isSet ?{core::int?} #lateLocal : throw new _in::LateError::localNI("lateLocal");
function #lateLocal#set(core::int? #t1) → dynamic {
#lateLocal#isSet = true;
- return lateLocal = #t1;
+ return #lateLocal = #t1;
}
self::throws(() → core::int? => #lateLocal#get.call(), "Read value from uninitialized lateLocal");
self::expect(123, #lateLocal#set.call(123));
self::expect(123, #lateLocal#get.call());
function local<T extends core::Object? = dynamic>(T? value) → Null {
- T? lateGenericLocal;
- core::bool #lateGenericLocal#isSet = false;
+ lowered T? #lateGenericLocal;
+ lowered core::bool #lateGenericLocal#isSet = false;
function #lateGenericLocal#get() → T?
- return #lateGenericLocal#isSet ?{T?} lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
+ return #lateGenericLocal#isSet ?{T?} #lateGenericLocal : throw new _in::LateError::localNI("lateGenericLocal");
function #lateGenericLocal#set(T? #t2) → dynamic {
#lateGenericLocal#isSet = true;
- return lateGenericLocal = #t2;
+ return #lateGenericLocal = #t2;
}
self::throws(() → T? => #lateGenericLocal#get.call(), "Read value from uninitialized lateGenericLocal");
self::expect(value, #lateGenericLocal#set.call(value));
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.strong.expect b/pkg/front_end/testcases/late_lowering/later.dart.strong.expect
index 1876a7a..0b84933 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.strong.expect
@@ -137,25 +137,25 @@
return "hest";
}
static method fisk() → dynamic async {
- core::String? s1;
+ lowered core::String? #s1;
function #s1#get() → core::String
- return let final core::String? #t8 = s1 in #t8.==(null) ?{core::String} s1 = invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:40:20: Error: `await` expressions are not supported in late local initializers.
+ return let final core::String? #t8 = #s1 in #t8.==(null) ?{core::String} #s1 = invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:40:20: Error: `await` expressions are not supported in late local initializers.
late String s1 = await hest(); // Error.
^^^^^" as{TypeError,ForDynamic,ForNonNullableByDefault} core::String : #t8{core::String};
function #s1#set(core::String #t9) → dynamic
- return s1 = #t9;
- core::String? s2;
+ return #s1 = #t9;
+ lowered core::String? #s2;
function #s2#get() → core::String
- return let final core::String? #t10 = s2 in #t10.==(null) ?{core::String} s2 = "${#C1}${invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:41:30: Error: `await` expressions are not supported in late local initializers.
+ return let final core::String? #t10 = #s2 in #t10.==(null) ?{core::String} #s2 = "${#C1}${invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:41:30: Error: `await` expressions are not supported in late local initializers.
late String s2 = '\${fisk}\${await hest()}\${fisk}'; // Error.
^^^^^"}${#C1}" : #t10{core::String};
function #s2#set(core::String #t11) → dynamic
- return s2 = #t11;
- core::Function? f;
+ return #s2 = #t11;
+ lowered core::Function? #f;
function #f#get() → core::Function
- return let final core::Function? #t12 = f in #t12.==(null) ?{core::Function} f = () → asy::Future<dynamic> async => await self::hest() : #t12{core::Function};
+ return let final core::Function? #t12 = #f in #t12.==(null) ?{core::Function} #f = () → asy::Future<dynamic> async => await self::hest() : #t12{core::Function};
function #f#set(core::Function #t13) → dynamic
- return f = #t13;
+ return #f = #t13;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
index 0ac77b2..f251299 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
@@ -202,23 +202,23 @@
try {
#L3:
{
- core::String? s1;
+ lowered core::String? #s1;
function #s1#get() → core::String
- return let final core::String? #t11 = s1 in #t11.==(null) ?{core::String} s1 = invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:40:20: Error: `await` expressions are not supported in late local initializers.
+ return let final core::String? #t11 = #s1 in #t11.==(null) ?{core::String} #s1 = invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:40:20: Error: `await` expressions are not supported in late local initializers.
late String s1 = await hest(); // Error.
^^^^^" : #t11{core::String};
function #s1#set(core::String #t12) → dynamic
- return s1 = #t12;
- core::String? s2;
+ return #s1 = #t12;
+ lowered core::String? #s2;
function #s2#get() → core::String
- return let final core::String? #t13 = s2 in #t13.==(null) ?{core::String} s2 = "${#C1}${invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:41:30: Error: `await` expressions are not supported in late local initializers.
+ return let final core::String? #t13 = #s2 in #t13.==(null) ?{core::String} #s2 = "${#C1}${invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:41:30: Error: `await` expressions are not supported in late local initializers.
late String s2 = '\${fisk}\${await hest()}\${fisk}'; // Error.
^^^^^"}${#C1}" : #t13{core::String};
function #s2#set(core::String #t14) → dynamic
- return s2 = #t14;
- core::Function? f;
+ return #s2 = #t14;
+ lowered core::Function? #f;
function #f#get() → core::Function
- return let final core::Function? #t15 = f in #t15.==(null) ?{core::Function} f = () → asy::Future<dynamic> /* originally async */ {
+ return let final core::Function? #t15 = #f in #t15.==(null) ?{core::Function} #f = () → asy::Future<dynamic> /* originally async */ {
final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
core::bool* :is_sync = false;
FutureOr<dynamic>? :return_value;
@@ -248,7 +248,7 @@
return :async_future;
} : #t15{core::Function};
function #f#set(core::Function #t17) → dynamic
- return f = #t17;
+ return #f = #t17;
}
asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
return;
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.weak.expect b/pkg/front_end/testcases/late_lowering/later.dart.weak.expect
index 267e384..7123dd80 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.weak.expect
@@ -157,48 +157,48 @@
return "hest";
}
static method fisk() → dynamic async {
- core::String? s1;
- core::bool #s1#isSet = false;
+ lowered core::String? #s1;
+ lowered core::bool #s1#isSet = false;
function #s1#get() → core::String {
if(!#s1#isSet) {
- s1 = invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:40:20: Error: `await` expressions are not supported in late local initializers.
+ #s1 = invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:40:20: Error: `await` expressions are not supported in late local initializers.
late String s1 = await hest(); // Error.
^^^^^" as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
#s1#isSet = true;
}
- return s1{core::String};
+ return #s1{core::String};
}
function #s1#set(core::String #t8) → dynamic {
#s1#isSet = true;
- return s1 = #t8;
+ return #s1 = #t8;
}
- core::String? s2;
- core::bool #s2#isSet = false;
+ lowered core::String? #s2;
+ lowered core::bool #s2#isSet = false;
function #s2#get() → core::String {
if(!#s2#isSet) {
- s2 = "${#C1}${invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:41:30: Error: `await` expressions are not supported in late local initializers.
+ #s2 = "${#C1}${invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:41:30: Error: `await` expressions are not supported in late local initializers.
late String s2 = '\${fisk}\${await hest()}\${fisk}'; // Error.
^^^^^"}${#C1}";
#s2#isSet = true;
}
- return s2{core::String};
+ return #s2{core::String};
}
function #s2#set(core::String #t9) → dynamic {
#s2#isSet = true;
- return s2 = #t9;
+ return #s2 = #t9;
}
- core::Function? f;
- core::bool #f#isSet = false;
+ lowered core::Function? #f;
+ lowered core::bool #f#isSet = false;
function #f#get() → core::Function {
if(!#f#isSet) {
- f = () → asy::Future<dynamic> async => await self::hest();
+ #f = () → asy::Future<dynamic> async => await self::hest();
#f#isSet = true;
}
- return f{core::Function};
+ return #f{core::Function};
}
function #f#set(core::Function #t10) → dynamic {
#f#isSet = true;
- return f = #t10;
+ return #f = #t10;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
index ffd2c5b..11b98b1 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
@@ -222,41 +222,41 @@
try {
#L3:
{
- core::String? s1;
- core::bool #s1#isSet = false;
+ lowered core::String? #s1;
+ lowered core::bool #s1#isSet = false;
function #s1#get() → core::String {
if(!#s1#isSet) {
- s1 = invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:40:20: Error: `await` expressions are not supported in late local initializers.
+ #s1 = invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:40:20: Error: `await` expressions are not supported in late local initializers.
late String s1 = await hest(); // Error.
^^^^^";
#s1#isSet = true;
}
- return s1{core::String};
+ return #s1{core::String};
}
function #s1#set(core::String #t11) → dynamic {
#s1#isSet = true;
- return s1 = #t11;
+ return #s1 = #t11;
}
- core::String? s2;
- core::bool #s2#isSet = false;
+ lowered core::String? #s2;
+ lowered core::bool #s2#isSet = false;
function #s2#get() → core::String {
if(!#s2#isSet) {
- s2 = "${#C1}${invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:41:30: Error: `await` expressions are not supported in late local initializers.
+ #s2 = "${#C1}${invalid-expression "pkg/front_end/testcases/late_lowering/later.dart:41:30: Error: `await` expressions are not supported in late local initializers.
late String s2 = '\${fisk}\${await hest()}\${fisk}'; // Error.
^^^^^"}${#C1}";
#s2#isSet = true;
}
- return s2{core::String};
+ return #s2{core::String};
}
function #s2#set(core::String #t12) → dynamic {
#s2#isSet = true;
- return s2 = #t12;
+ return #s2 = #t12;
}
- core::Function? f;
- core::bool #f#isSet = false;
+ lowered core::Function? #f;
+ lowered core::bool #f#isSet = false;
function #f#get() → core::Function {
if(!#f#isSet) {
- f = () → asy::Future<dynamic> /* originally async */ {
+ #f = () → asy::Future<dynamic> /* originally async */ {
final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
core::bool* :is_sync = false;
FutureOr<dynamic>? :return_value;
@@ -287,11 +287,11 @@
};
#f#isSet = true;
}
- return f{core::Function};
+ return #f{core::Function};
}
function #f#set(core::Function #t14) → dynamic {
#f#isSet = true;
- return f = #t14;
+ return #f = #t14;
}
}
asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect
index 03ef078..184faaf 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect
@@ -109,33 +109,33 @@
non::_#finalTopLevelField = #t13;
}
static method method<T extends core::Object = core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
- core::int? local;
+ lowered core::int? #local;
function #local#get() → core::int
- return let final core::int? #t14 = local in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t14{core::int};
+ return let final core::int? #t14 = #local in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t14{core::int};
function #local#set(core::int #t15) → dynamic
- return local = #t15;
- final dynamic finalLocal;
- core::bool #finalLocal#isSet = false;
+ return #local = #t15;
+ lowered final dynamic #finalLocal;
+ lowered core::bool #finalLocal#isSet = false;
function #finalLocal#get() → dynamic
- return #finalLocal#isSet ?{dynamic} finalLocal : throw new _in::LateError::localNI("finalLocal");
+ return #finalLocal#isSet ?{dynamic} #finalLocal : throw new _in::LateError::localNI("finalLocal");
function #finalLocal#set(dynamic #t16) → dynamic
if(#finalLocal#isSet)
throw new _in::LateError::localAI("finalLocal");
else {
#finalLocal#isSet = true;
- return finalLocal = #t16;
+ return #finalLocal = #t16;
}
- non::method::T? localTypeVariable;
+ lowered non::method::T? #localTypeVariable;
function #localTypeVariable#get() → non::method::T
- return let final non::method::T? #t17 = localTypeVariable in #t17.==(null) ?{non::method::T} throw new _in::LateError::localNI("localTypeVariable") : #t17{non::method::T};
+ return let final non::method::T? #t17 = #localTypeVariable in #t17.==(null) ?{non::method::T} throw new _in::LateError::localNI("localTypeVariable") : #t17{non::method::T};
function #localTypeVariable#set(non::method::T #t18) → dynamic
- return localTypeVariable = #t18;
- final non::method::T? finalLocalTypeVariable;
+ return #localTypeVariable = #t18;
+ lowered final non::method::T? #finalLocalTypeVariable;
function #finalLocalTypeVariable#get() → non::method::T
- return let final non::method::T? #t19 = finalLocalTypeVariable in #t19.==(null) ?{non::method::T} throw new _in::LateError::localNI("finalLocalTypeVariable") : #t19{non::method::T};
+ return let final non::method::T? #t19 = #finalLocalTypeVariable in #t19.==(null) ?{non::method::T} throw new _in::LateError::localNI("finalLocalTypeVariable") : #t19{non::method::T};
function #finalLocalTypeVariable#set(non::method::T #t20) → dynamic
- if(finalLocalTypeVariable.==(null))
- return finalLocalTypeVariable = #t20;
+ if(#finalLocalTypeVariable.==(null))
+ return #finalLocalTypeVariable = #t20;
else
throw new _in::LateError::localAI("finalLocalTypeVariable");
if(b) {
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect
index 03ef078..184faaf 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect
@@ -109,33 +109,33 @@
non::_#finalTopLevelField = #t13;
}
static method method<T extends core::Object = core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
- core::int? local;
+ lowered core::int? #local;
function #local#get() → core::int
- return let final core::int? #t14 = local in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t14{core::int};
+ return let final core::int? #t14 = #local in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t14{core::int};
function #local#set(core::int #t15) → dynamic
- return local = #t15;
- final dynamic finalLocal;
- core::bool #finalLocal#isSet = false;
+ return #local = #t15;
+ lowered final dynamic #finalLocal;
+ lowered core::bool #finalLocal#isSet = false;
function #finalLocal#get() → dynamic
- return #finalLocal#isSet ?{dynamic} finalLocal : throw new _in::LateError::localNI("finalLocal");
+ return #finalLocal#isSet ?{dynamic} #finalLocal : throw new _in::LateError::localNI("finalLocal");
function #finalLocal#set(dynamic #t16) → dynamic
if(#finalLocal#isSet)
throw new _in::LateError::localAI("finalLocal");
else {
#finalLocal#isSet = true;
- return finalLocal = #t16;
+ return #finalLocal = #t16;
}
- non::method::T? localTypeVariable;
+ lowered non::method::T? #localTypeVariable;
function #localTypeVariable#get() → non::method::T
- return let final non::method::T? #t17 = localTypeVariable in #t17.==(null) ?{non::method::T} throw new _in::LateError::localNI("localTypeVariable") : #t17{non::method::T};
+ return let final non::method::T? #t17 = #localTypeVariable in #t17.==(null) ?{non::method::T} throw new _in::LateError::localNI("localTypeVariable") : #t17{non::method::T};
function #localTypeVariable#set(non::method::T #t18) → dynamic
- return localTypeVariable = #t18;
- final non::method::T? finalLocalTypeVariable;
+ return #localTypeVariable = #t18;
+ lowered final non::method::T? #finalLocalTypeVariable;
function #finalLocalTypeVariable#get() → non::method::T
- return let final non::method::T? #t19 = finalLocalTypeVariable in #t19.==(null) ?{non::method::T} throw new _in::LateError::localNI("finalLocalTypeVariable") : #t19{non::method::T};
+ return let final non::method::T? #t19 = #finalLocalTypeVariable in #t19.==(null) ?{non::method::T} throw new _in::LateError::localNI("finalLocalTypeVariable") : #t19{non::method::T};
function #finalLocalTypeVariable#set(non::method::T #t20) → dynamic
- if(finalLocalTypeVariable.==(null))
- return finalLocalTypeVariable = #t20;
+ if(#finalLocalTypeVariable.==(null))
+ return #finalLocalTypeVariable = #t20;
else
throw new _in::LateError::localAI("finalLocalTypeVariable");
if(b) {
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect
index 53ea9c9..7555788 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect
@@ -117,43 +117,43 @@
non::_#finalTopLevelField = #t13;
}
static method method<T extends core::Object = core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
- core::int? local;
- core::bool #local#isSet = false;
+ lowered core::int? #local;
+ lowered core::bool #local#isSet = false;
function #local#get() → core::int
- return #local#isSet ?{core::int} local{core::int} : throw new _in::LateError::localNI("local");
+ return #local#isSet ?{core::int} #local{core::int} : throw new _in::LateError::localNI("local");
function #local#set(core::int #t14) → dynamic {
#local#isSet = true;
- return local = #t14;
+ return #local = #t14;
}
- final dynamic finalLocal;
- core::bool #finalLocal#isSet = false;
+ lowered final dynamic #finalLocal;
+ lowered core::bool #finalLocal#isSet = false;
function #finalLocal#get() → dynamic
- return #finalLocal#isSet ?{dynamic} finalLocal : throw new _in::LateError::localNI("finalLocal");
+ return #finalLocal#isSet ?{dynamic} #finalLocal : throw new _in::LateError::localNI("finalLocal");
function #finalLocal#set(dynamic #t15) → dynamic
if(#finalLocal#isSet)
throw new _in::LateError::localAI("finalLocal");
else {
#finalLocal#isSet = true;
- return finalLocal = #t15;
+ return #finalLocal = #t15;
}
- non::method::T? localTypeVariable;
- core::bool #localTypeVariable#isSet = false;
+ lowered non::method::T? #localTypeVariable;
+ lowered core::bool #localTypeVariable#isSet = false;
function #localTypeVariable#get() → non::method::T
- return #localTypeVariable#isSet ?{non::method::T} localTypeVariable{non::method::T} : throw new _in::LateError::localNI("localTypeVariable");
+ return #localTypeVariable#isSet ?{non::method::T} #localTypeVariable{non::method::T} : throw new _in::LateError::localNI("localTypeVariable");
function #localTypeVariable#set(non::method::T #t16) → dynamic {
#localTypeVariable#isSet = true;
- return localTypeVariable = #t16;
+ return #localTypeVariable = #t16;
}
- final non::method::T? finalLocalTypeVariable;
- core::bool #finalLocalTypeVariable#isSet = false;
+ lowered final non::method::T? #finalLocalTypeVariable;
+ lowered core::bool #finalLocalTypeVariable#isSet = false;
function #finalLocalTypeVariable#get() → non::method::T
- return #finalLocalTypeVariable#isSet ?{non::method::T} finalLocalTypeVariable{non::method::T} : throw new _in::LateError::localNI("finalLocalTypeVariable");
+ return #finalLocalTypeVariable#isSet ?{non::method::T} #finalLocalTypeVariable{non::method::T} : throw new _in::LateError::localNI("finalLocalTypeVariable");
function #finalLocalTypeVariable#set(non::method::T #t17) → dynamic
if(#finalLocalTypeVariable#isSet)
throw new _in::LateError::localAI("finalLocalTypeVariable");
else {
#finalLocalTypeVariable#isSet = true;
- return finalLocalTypeVariable = #t17;
+ return #finalLocalTypeVariable = #t17;
}
if(b) {
#local#set.call(i);
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect
index 53ea9c9..7555788 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect
@@ -117,43 +117,43 @@
non::_#finalTopLevelField = #t13;
}
static method method<T extends core::Object = core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
- core::int? local;
- core::bool #local#isSet = false;
+ lowered core::int? #local;
+ lowered core::bool #local#isSet = false;
function #local#get() → core::int
- return #local#isSet ?{core::int} local{core::int} : throw new _in::LateError::localNI("local");
+ return #local#isSet ?{core::int} #local{core::int} : throw new _in::LateError::localNI("local");
function #local#set(core::int #t14) → dynamic {
#local#isSet = true;
- return local = #t14;
+ return #local = #t14;
}
- final dynamic finalLocal;
- core::bool #finalLocal#isSet = false;
+ lowered final dynamic #finalLocal;
+ lowered core::bool #finalLocal#isSet = false;
function #finalLocal#get() → dynamic
- return #finalLocal#isSet ?{dynamic} finalLocal : throw new _in::LateError::localNI("finalLocal");
+ return #finalLocal#isSet ?{dynamic} #finalLocal : throw new _in::LateError::localNI("finalLocal");
function #finalLocal#set(dynamic #t15) → dynamic
if(#finalLocal#isSet)
throw new _in::LateError::localAI("finalLocal");
else {
#finalLocal#isSet = true;
- return finalLocal = #t15;
+ return #finalLocal = #t15;
}
- non::method::T? localTypeVariable;
- core::bool #localTypeVariable#isSet = false;
+ lowered non::method::T? #localTypeVariable;
+ lowered core::bool #localTypeVariable#isSet = false;
function #localTypeVariable#get() → non::method::T
- return #localTypeVariable#isSet ?{non::method::T} localTypeVariable{non::method::T} : throw new _in::LateError::localNI("localTypeVariable");
+ return #localTypeVariable#isSet ?{non::method::T} #localTypeVariable{non::method::T} : throw new _in::LateError::localNI("localTypeVariable");
function #localTypeVariable#set(non::method::T #t16) → dynamic {
#localTypeVariable#isSet = true;
- return localTypeVariable = #t16;
+ return #localTypeVariable = #t16;
}
- final non::method::T? finalLocalTypeVariable;
- core::bool #finalLocalTypeVariable#isSet = false;
+ lowered final non::method::T? #finalLocalTypeVariable;
+ lowered core::bool #finalLocalTypeVariable#isSet = false;
function #finalLocalTypeVariable#get() → non::method::T
- return #finalLocalTypeVariable#isSet ?{non::method::T} finalLocalTypeVariable{non::method::T} : throw new _in::LateError::localNI("finalLocalTypeVariable");
+ return #finalLocalTypeVariable#isSet ?{non::method::T} #finalLocalTypeVariable{non::method::T} : throw new _in::LateError::localNI("finalLocalTypeVariable");
function #finalLocalTypeVariable#set(non::method::T #t17) → dynamic
if(#finalLocalTypeVariable#isSet)
throw new _in::LateError::localAI("finalLocalTypeVariable");
else {
#finalLocalTypeVariable#isSet = true;
- return finalLocalTypeVariable = #t17;
+ return #finalLocalTypeVariable = #t17;
}
if(b) {
#local#set.call(i);
diff --git a/pkg/front_end/testcases/late_lowering/return_late.dart.strong.expect b/pkg/front_end/testcases/late_lowering/return_late.dart.strong.expect
index 1cc4a59..2ad5eb6 100644
--- a/pkg/front_end/testcases/late_lowering/return_late.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/return_late.dart.strong.expect
@@ -8,43 +8,43 @@
: self::Class::field = field, super core::Object::•()
;
method returnTypeVariable() → self::Class::E% {
- self::Class::E? result;
- core::bool #result#isSet = false;
+ lowered self::Class::E? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → self::Class::E% {
if(!#result#isSet) {
- result = this.{self::Class::field};
+ #result = this.{self::Class::field};
#result#isSet = true;
}
- return result{self::Class::E%};
+ return #result{self::Class::E%};
}
function #result#set(self::Class::E% #t1) → dynamic {
#result#isSet = true;
- return result = #t1;
+ return #result = #t1;
}
return #result#get.call();
}
}
static method returnNonNullable(core::int value) → core::int {
- core::int? result;
+ lowered core::int? #result;
function #result#get() → core::int
- return let final core::int? #t2 = result in #t2.==(null) ?{core::int} result = value : #t2{core::int};
+ return let final core::int? #t2 = #result in #t2.==(null) ?{core::int} #result = value : #t2{core::int};
function #result#set(core::int #t3) → dynamic
- return result = #t3;
+ return #result = #t3;
return #result#get.call();
}
static method returnNullable(core::int? value) → core::int? {
- core::int? result;
- core::bool #result#isSet = false;
+ lowered core::int? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → core::int? {
if(!#result#isSet) {
- result = value;
+ #result = value;
#result#isSet = true;
}
- return result;
+ return #result;
}
function #result#set(core::int? #t4) → dynamic {
#result#isSet = true;
- return result = #t4;
+ return #result = #t4;
}
return #result#get.call();
}
diff --git a/pkg/front_end/testcases/late_lowering/return_late.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/return_late.dart.strong.transformed.expect
index 1cc4a59..2ad5eb6 100644
--- a/pkg/front_end/testcases/late_lowering/return_late.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/return_late.dart.strong.transformed.expect
@@ -8,43 +8,43 @@
: self::Class::field = field, super core::Object::•()
;
method returnTypeVariable() → self::Class::E% {
- self::Class::E? result;
- core::bool #result#isSet = false;
+ lowered self::Class::E? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → self::Class::E% {
if(!#result#isSet) {
- result = this.{self::Class::field};
+ #result = this.{self::Class::field};
#result#isSet = true;
}
- return result{self::Class::E%};
+ return #result{self::Class::E%};
}
function #result#set(self::Class::E% #t1) → dynamic {
#result#isSet = true;
- return result = #t1;
+ return #result = #t1;
}
return #result#get.call();
}
}
static method returnNonNullable(core::int value) → core::int {
- core::int? result;
+ lowered core::int? #result;
function #result#get() → core::int
- return let final core::int? #t2 = result in #t2.==(null) ?{core::int} result = value : #t2{core::int};
+ return let final core::int? #t2 = #result in #t2.==(null) ?{core::int} #result = value : #t2{core::int};
function #result#set(core::int #t3) → dynamic
- return result = #t3;
+ return #result = #t3;
return #result#get.call();
}
static method returnNullable(core::int? value) → core::int? {
- core::int? result;
- core::bool #result#isSet = false;
+ lowered core::int? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → core::int? {
if(!#result#isSet) {
- result = value;
+ #result = value;
#result#isSet = true;
}
- return result;
+ return #result;
}
function #result#set(core::int? #t4) → dynamic {
#result#isSet = true;
- return result = #t4;
+ return #result = #t4;
}
return #result#get.call();
}
diff --git a/pkg/front_end/testcases/late_lowering/return_late.dart.weak.expect b/pkg/front_end/testcases/late_lowering/return_late.dart.weak.expect
index 9db48a4..3270539 100644
--- a/pkg/front_end/testcases/late_lowering/return_late.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/return_late.dart.weak.expect
@@ -8,51 +8,51 @@
: self::Class::field = field, super core::Object::•()
;
method returnTypeVariable() → self::Class::E% {
- self::Class::E? result;
- core::bool #result#isSet = false;
+ lowered self::Class::E? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → self::Class::E% {
if(!#result#isSet) {
- result = this.{self::Class::field};
+ #result = this.{self::Class::field};
#result#isSet = true;
}
- return result{self::Class::E%};
+ return #result{self::Class::E%};
}
function #result#set(self::Class::E% #t1) → dynamic {
#result#isSet = true;
- return result = #t1;
+ return #result = #t1;
}
return #result#get.call();
}
}
static method returnNonNullable(core::int value) → core::int {
- core::int? result;
- core::bool #result#isSet = false;
+ lowered core::int? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → core::int {
if(!#result#isSet) {
- result = value;
+ #result = value;
#result#isSet = true;
}
- return result{core::int};
+ return #result{core::int};
}
function #result#set(core::int #t2) → dynamic {
#result#isSet = true;
- return result = #t2;
+ return #result = #t2;
}
return #result#get.call();
}
static method returnNullable(core::int? value) → core::int? {
- core::int? result;
- core::bool #result#isSet = false;
+ lowered core::int? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → core::int? {
if(!#result#isSet) {
- result = value;
+ #result = value;
#result#isSet = true;
}
- return result;
+ return #result;
}
function #result#set(core::int? #t3) → dynamic {
#result#isSet = true;
- return result = #t3;
+ return #result = #t3;
}
return #result#get.call();
}
diff --git a/pkg/front_end/testcases/late_lowering/return_late.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/return_late.dart.weak.transformed.expect
index 9db48a4..3270539 100644
--- a/pkg/front_end/testcases/late_lowering/return_late.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/return_late.dart.weak.transformed.expect
@@ -8,51 +8,51 @@
: self::Class::field = field, super core::Object::•()
;
method returnTypeVariable() → self::Class::E% {
- self::Class::E? result;
- core::bool #result#isSet = false;
+ lowered self::Class::E? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → self::Class::E% {
if(!#result#isSet) {
- result = this.{self::Class::field};
+ #result = this.{self::Class::field};
#result#isSet = true;
}
- return result{self::Class::E%};
+ return #result{self::Class::E%};
}
function #result#set(self::Class::E% #t1) → dynamic {
#result#isSet = true;
- return result = #t1;
+ return #result = #t1;
}
return #result#get.call();
}
}
static method returnNonNullable(core::int value) → core::int {
- core::int? result;
- core::bool #result#isSet = false;
+ lowered core::int? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → core::int {
if(!#result#isSet) {
- result = value;
+ #result = value;
#result#isSet = true;
}
- return result{core::int};
+ return #result{core::int};
}
function #result#set(core::int #t2) → dynamic {
#result#isSet = true;
- return result = #t2;
+ return #result = #t2;
}
return #result#get.call();
}
static method returnNullable(core::int? value) → core::int? {
- core::int? result;
- core::bool #result#isSet = false;
+ lowered core::int? #result;
+ lowered core::bool #result#isSet = false;
function #result#get() → core::int? {
if(!#result#isSet) {
- result = value;
+ #result = value;
#result#isSet = true;
}
- return result;
+ return #result;
}
function #result#set(core::int? #t3) → dynamic {
#result#isSet = true;
- return result = #t3;
+ return #result = #t3;
}
return #result#get.call();
}
diff --git a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.strong.expect b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.strong.expect
index df92880..74bb4fc 100644
--- a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.strong.expect
@@ -52,71 +52,71 @@
static field core::int? _#initializedFinalTopLevelField = null;
static method main() → dynamic {}
static method method() → dynamic {
- core::int? nullableUninitializedNonFinalLocal;
- core::bool #nullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableUninitializedNonFinalLocal;
+ lowered core::bool #nullableUninitializedNonFinalLocal#isSet = false;
function #nullableUninitializedNonFinalLocal#get() → core::int?
- return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
+ return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} #nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
function #nullableUninitializedNonFinalLocal#set(core::int? #t15) → dynamic {
#nullableUninitializedNonFinalLocal#isSet = true;
- return nullableUninitializedNonFinalLocal = #t15;
+ return #nullableUninitializedNonFinalLocal = #t15;
}
- core::int? nonNullableUninitializedNonFinalLocal;
+ lowered core::int? #nonNullableUninitializedNonFinalLocal;
function #nonNullableUninitializedNonFinalLocal#get() → core::int
- return let final core::int? #t16 = nonNullableUninitializedNonFinalLocal in #t16.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal") : #t16{core::int};
+ return let final core::int? #t16 = #nonNullableUninitializedNonFinalLocal in #t16.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal") : #t16{core::int};
function #nonNullableUninitializedNonFinalLocal#set(core::int #t17) → dynamic
- return nonNullableUninitializedNonFinalLocal = #t17;
- final core::int? nullableUninitializedFinalLocal;
- core::bool #nullableUninitializedFinalLocal#isSet = false;
+ return #nonNullableUninitializedNonFinalLocal = #t17;
+ lowered final core::int? #nullableUninitializedFinalLocal;
+ lowered core::bool #nullableUninitializedFinalLocal#isSet = false;
function #nullableUninitializedFinalLocal#get() → core::int?
- return #nullableUninitializedFinalLocal#isSet ?{core::int?} nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
+ return #nullableUninitializedFinalLocal#isSet ?{core::int?} #nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
function #nullableUninitializedFinalLocal#set(core::int? #t18) → dynamic
if(#nullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nullableUninitializedFinalLocal");
else {
#nullableUninitializedFinalLocal#isSet = true;
- return nullableUninitializedFinalLocal = #t18;
+ return #nullableUninitializedFinalLocal = #t18;
}
- final core::int? nonNullableUninitializedFinalLocal;
+ lowered final core::int? #nonNullableUninitializedFinalLocal;
function #nonNullableUninitializedFinalLocal#get() → core::int
- return let final core::int? #t19 = nonNullableUninitializedFinalLocal in #t19.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal") : #t19{core::int};
+ return let final core::int? #t19 = #nonNullableUninitializedFinalLocal in #t19.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal") : #t19{core::int};
function #nonNullableUninitializedFinalLocal#set(core::int #t20) → dynamic
- if(nonNullableUninitializedFinalLocal.==(null))
- return nonNullableUninitializedFinalLocal = #t20;
+ if(#nonNullableUninitializedFinalLocal.==(null))
+ return #nonNullableUninitializedFinalLocal = #t20;
else
throw new _in::LateError::localAI("nonNullableUninitializedFinalLocal");
- core::int? nullableInitializedNonFinalLocal;
- core::bool #nullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableInitializedNonFinalLocal;
+ lowered core::bool #nullableInitializedNonFinalLocal#isSet = false;
function #nullableInitializedNonFinalLocal#get() → core::int? {
if(!#nullableInitializedNonFinalLocal#isSet) {
- nullableInitializedNonFinalLocal = 0;
+ #nullableInitializedNonFinalLocal = 0;
#nullableInitializedNonFinalLocal#isSet = true;
}
- return nullableInitializedNonFinalLocal;
+ return #nullableInitializedNonFinalLocal;
}
function #nullableInitializedNonFinalLocal#set(core::int? #t21) → dynamic {
#nullableInitializedNonFinalLocal#isSet = true;
- return nullableInitializedNonFinalLocal = #t21;
+ return #nullableInitializedNonFinalLocal = #t21;
}
- core::int? nonNullableInitializedNonFinalLocal;
+ lowered core::int? #nonNullableInitializedNonFinalLocal;
function #nonNullableInitializedNonFinalLocal#get() → core::int
- return let final core::int? #t22 = nonNullableInitializedNonFinalLocal in #t22.==(null) ?{core::int} nonNullableInitializedNonFinalLocal = 0 : #t22{core::int};
+ return let final core::int? #t22 = #nonNullableInitializedNonFinalLocal in #t22.==(null) ?{core::int} #nonNullableInitializedNonFinalLocal = 0 : #t22{core::int};
function #nonNullableInitializedNonFinalLocal#set(core::int #t23) → dynamic
- return nonNullableInitializedNonFinalLocal = #t23;
- final core::int? nullableInitializedFinalLocal;
- core::bool #nullableInitializedFinalLocal#isSet = false;
+ return #nonNullableInitializedNonFinalLocal = #t23;
+ lowered final core::int? #nullableInitializedFinalLocal;
+ lowered core::bool #nullableInitializedFinalLocal#isSet = false;
function #nullableInitializedFinalLocal#get() → core::int? {
if(!#nullableInitializedFinalLocal#isSet) {
final core::int? #t24 = 0;
if(#nullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nullableInitializedFinalLocal");
- nullableInitializedFinalLocal = #t24;
+ #nullableInitializedFinalLocal = #t24;
#nullableInitializedFinalLocal#isSet = true;
}
- return nullableInitializedFinalLocal;
+ return #nullableInitializedFinalLocal;
}
- final core::int? nonNullableInitializedFinalLocal;
+ lowered final core::int? #nonNullableInitializedFinalLocal;
function #nonNullableInitializedFinalLocal#get() → core::int
- return let final core::int? #t25 = nonNullableInitializedFinalLocal in #t25.==(null) ?{core::int} let final core::int #t26 = 0 in nonNullableInitializedFinalLocal.==(null) ?{core::int} nonNullableInitializedFinalLocal = #t26 : throw new _in::LateError::localADI("nonNullableInitializedFinalLocal") : #t25{core::int};
+ return let final core::int? #t25 = #nonNullableInitializedFinalLocal in #t25.==(null) ?{core::int} let final core::int #t26 = 0 in #nonNullableInitializedFinalLocal.==(null) ?{core::int} #nonNullableInitializedFinalLocal = #t26 : throw new _in::LateError::localADI("nonNullableInitializedFinalLocal") : #t25{core::int};
}
static get uninitializedNonFinalTopLevelField() → core::int
return let final core::int? #t27 = self::_#uninitializedNonFinalTopLevelField in #t27.==(null) ?{core::int} throw new _in::LateError::fieldNI("uninitializedNonFinalTopLevelField") : #t27{core::int};
diff --git a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.strong.transformed.expect
index c2964fd..64e9c55 100644
--- a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.strong.transformed.expect
@@ -52,71 +52,71 @@
static field core::int? _#initializedFinalTopLevelField = null;
static method main() → dynamic {}
static method method() → dynamic {
- core::int? nullableUninitializedNonFinalLocal;
- core::bool #nullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableUninitializedNonFinalLocal;
+ lowered core::bool #nullableUninitializedNonFinalLocal#isSet = false;
function #nullableUninitializedNonFinalLocal#get() → core::int?
- return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
+ return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} #nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
function #nullableUninitializedNonFinalLocal#set(core::int? #t15) → dynamic {
#nullableUninitializedNonFinalLocal#isSet = true;
- return nullableUninitializedNonFinalLocal = #t15;
+ return #nullableUninitializedNonFinalLocal = #t15;
}
- core::int? nonNullableUninitializedNonFinalLocal;
+ lowered core::int? #nonNullableUninitializedNonFinalLocal;
function #nonNullableUninitializedNonFinalLocal#get() → core::int
- return let final core::int? #t16 = nonNullableUninitializedNonFinalLocal in #t16.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal") : #t16{core::int};
+ return let final core::int? #t16 = #nonNullableUninitializedNonFinalLocal in #t16.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal") : #t16{core::int};
function #nonNullableUninitializedNonFinalLocal#set(core::int #t17) → dynamic
- return nonNullableUninitializedNonFinalLocal = #t17;
- final core::int? nullableUninitializedFinalLocal;
- core::bool #nullableUninitializedFinalLocal#isSet = false;
+ return #nonNullableUninitializedNonFinalLocal = #t17;
+ lowered final core::int? #nullableUninitializedFinalLocal;
+ lowered core::bool #nullableUninitializedFinalLocal#isSet = false;
function #nullableUninitializedFinalLocal#get() → core::int?
- return #nullableUninitializedFinalLocal#isSet ?{core::int?} nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
+ return #nullableUninitializedFinalLocal#isSet ?{core::int?} #nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
function #nullableUninitializedFinalLocal#set(core::int? #t18) → dynamic
if(#nullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nullableUninitializedFinalLocal");
else {
#nullableUninitializedFinalLocal#isSet = true;
- return nullableUninitializedFinalLocal = #t18;
+ return #nullableUninitializedFinalLocal = #t18;
}
- final core::int? nonNullableUninitializedFinalLocal;
+ lowered final core::int? #nonNullableUninitializedFinalLocal;
function #nonNullableUninitializedFinalLocal#get() → core::int
- return let final core::int? #t19 = nonNullableUninitializedFinalLocal in #t19.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal") : #t19{core::int};
+ return let final core::int? #t19 = #nonNullableUninitializedFinalLocal in #t19.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal") : #t19{core::int};
function #nonNullableUninitializedFinalLocal#set(core::int #t20) → dynamic
- if(nonNullableUninitializedFinalLocal.==(null))
- return nonNullableUninitializedFinalLocal = #t20;
+ if(#nonNullableUninitializedFinalLocal.==(null))
+ return #nonNullableUninitializedFinalLocal = #t20;
else
throw new _in::LateError::localAI("nonNullableUninitializedFinalLocal");
- core::int? nullableInitializedNonFinalLocal;
- core::bool #nullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableInitializedNonFinalLocal;
+ lowered core::bool #nullableInitializedNonFinalLocal#isSet = false;
function #nullableInitializedNonFinalLocal#get() → core::int? {
if(!#nullableInitializedNonFinalLocal#isSet) {
- nullableInitializedNonFinalLocal = 0;
+ #nullableInitializedNonFinalLocal = 0;
#nullableInitializedNonFinalLocal#isSet = true;
}
- return nullableInitializedNonFinalLocal;
+ return #nullableInitializedNonFinalLocal;
}
function #nullableInitializedNonFinalLocal#set(core::int? #t21) → dynamic {
#nullableInitializedNonFinalLocal#isSet = true;
- return nullableInitializedNonFinalLocal = #t21;
+ return #nullableInitializedNonFinalLocal = #t21;
}
- core::int? nonNullableInitializedNonFinalLocal;
+ lowered core::int? #nonNullableInitializedNonFinalLocal;
function #nonNullableInitializedNonFinalLocal#get() → core::int
- return let final core::int? #t22 = nonNullableInitializedNonFinalLocal in #t22.==(null) ?{core::int} nonNullableInitializedNonFinalLocal = 0 : #t22{core::int};
+ return let final core::int? #t22 = #nonNullableInitializedNonFinalLocal in #t22.==(null) ?{core::int} #nonNullableInitializedNonFinalLocal = 0 : #t22{core::int};
function #nonNullableInitializedNonFinalLocal#set(core::int #t23) → dynamic
- return nonNullableInitializedNonFinalLocal = #t23;
- final core::int? nullableInitializedFinalLocal;
- core::bool #nullableInitializedFinalLocal#isSet = false;
+ return #nonNullableInitializedNonFinalLocal = #t23;
+ lowered final core::int? #nullableInitializedFinalLocal;
+ lowered core::bool #nullableInitializedFinalLocal#isSet = false;
function #nullableInitializedFinalLocal#get() → core::int? {
if(!#nullableInitializedFinalLocal#isSet) {
final core::int? #t24 = 0;
if(#nullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nullableInitializedFinalLocal");
- nullableInitializedFinalLocal = #t24;
+ #nullableInitializedFinalLocal = #t24;
#nullableInitializedFinalLocal#isSet = true;
}
- return nullableInitializedFinalLocal;
+ return #nullableInitializedFinalLocal;
}
- final core::int? nonNullableInitializedFinalLocal;
+ lowered final core::int? #nonNullableInitializedFinalLocal;
function #nonNullableInitializedFinalLocal#get() → core::int
- return let final core::int? #t25 = nonNullableInitializedFinalLocal in #t25.==(null) ?{core::int} let final core::int #t26 = 0 in nonNullableInitializedFinalLocal.==(null) ?{core::int} nonNullableInitializedFinalLocal = #t26 : throw new _in::LateError::localADI("nonNullableInitializedFinalLocal") : #t25{core::int};
+ return let final core::int? #t25 = #nonNullableInitializedFinalLocal in #t25.==(null) ?{core::int} let final core::int #t26 = 0 in #nonNullableInitializedFinalLocal.==(null) ?{core::int} #nonNullableInitializedFinalLocal = #t26 : throw new _in::LateError::localADI("nonNullableInitializedFinalLocal") : #t25{core::int};
}
static get uninitializedNonFinalTopLevelField() → core::int
return let final core::int? #t27 = self::_#uninitializedNonFinalTopLevelField in #t27.==(null) ?{core::int} throw new _in::LateError::fieldNI("uninitializedNonFinalTopLevelField") : #t27{core::int};
diff --git a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.weak.expect b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.weak.expect
index e3cd765..079c847 100644
--- a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.weak.expect
@@ -99,93 +99,93 @@
static field core::bool _#initializedFinalTopLevelField#isSet = false;
static method main() → dynamic {}
static method method() → dynamic {
- core::int? nullableUninitializedNonFinalLocal;
- core::bool #nullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableUninitializedNonFinalLocal;
+ lowered core::bool #nullableUninitializedNonFinalLocal#isSet = false;
function #nullableUninitializedNonFinalLocal#get() → core::int?
- return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
+ return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} #nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
function #nullableUninitializedNonFinalLocal#set(core::int? #t15) → dynamic {
#nullableUninitializedNonFinalLocal#isSet = true;
- return nullableUninitializedNonFinalLocal = #t15;
+ return #nullableUninitializedNonFinalLocal = #t15;
}
- core::int? nonNullableUninitializedNonFinalLocal;
- core::bool #nonNullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nonNullableUninitializedNonFinalLocal;
+ lowered core::bool #nonNullableUninitializedNonFinalLocal#isSet = false;
function #nonNullableUninitializedNonFinalLocal#get() → core::int
- return #nonNullableUninitializedNonFinalLocal#isSet ?{core::int} nonNullableUninitializedNonFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal");
+ return #nonNullableUninitializedNonFinalLocal#isSet ?{core::int} #nonNullableUninitializedNonFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal");
function #nonNullableUninitializedNonFinalLocal#set(core::int #t16) → dynamic {
#nonNullableUninitializedNonFinalLocal#isSet = true;
- return nonNullableUninitializedNonFinalLocal = #t16;
+ return #nonNullableUninitializedNonFinalLocal = #t16;
}
- final core::int? nullableUninitializedFinalLocal;
- core::bool #nullableUninitializedFinalLocal#isSet = false;
+ lowered final core::int? #nullableUninitializedFinalLocal;
+ lowered core::bool #nullableUninitializedFinalLocal#isSet = false;
function #nullableUninitializedFinalLocal#get() → core::int?
- return #nullableUninitializedFinalLocal#isSet ?{core::int?} nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
+ return #nullableUninitializedFinalLocal#isSet ?{core::int?} #nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
function #nullableUninitializedFinalLocal#set(core::int? #t17) → dynamic
if(#nullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nullableUninitializedFinalLocal");
else {
#nullableUninitializedFinalLocal#isSet = true;
- return nullableUninitializedFinalLocal = #t17;
+ return #nullableUninitializedFinalLocal = #t17;
}
- final core::int? nonNullableUninitializedFinalLocal;
- core::bool #nonNullableUninitializedFinalLocal#isSet = false;
+ lowered final core::int? #nonNullableUninitializedFinalLocal;
+ lowered core::bool #nonNullableUninitializedFinalLocal#isSet = false;
function #nonNullableUninitializedFinalLocal#get() → core::int
- return #nonNullableUninitializedFinalLocal#isSet ?{core::int} nonNullableUninitializedFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal");
+ return #nonNullableUninitializedFinalLocal#isSet ?{core::int} #nonNullableUninitializedFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal");
function #nonNullableUninitializedFinalLocal#set(core::int #t18) → dynamic
if(#nonNullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nonNullableUninitializedFinalLocal");
else {
#nonNullableUninitializedFinalLocal#isSet = true;
- return nonNullableUninitializedFinalLocal = #t18;
+ return #nonNullableUninitializedFinalLocal = #t18;
}
- core::int? nullableInitializedNonFinalLocal;
- core::bool #nullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableInitializedNonFinalLocal;
+ lowered core::bool #nullableInitializedNonFinalLocal#isSet = false;
function #nullableInitializedNonFinalLocal#get() → core::int? {
if(!#nullableInitializedNonFinalLocal#isSet) {
- nullableInitializedNonFinalLocal = 0;
+ #nullableInitializedNonFinalLocal = 0;
#nullableInitializedNonFinalLocal#isSet = true;
}
- return nullableInitializedNonFinalLocal;
+ return #nullableInitializedNonFinalLocal;
}
function #nullableInitializedNonFinalLocal#set(core::int? #t19) → dynamic {
#nullableInitializedNonFinalLocal#isSet = true;
- return nullableInitializedNonFinalLocal = #t19;
+ return #nullableInitializedNonFinalLocal = #t19;
}
- core::int? nonNullableInitializedNonFinalLocal;
- core::bool #nonNullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nonNullableInitializedNonFinalLocal;
+ lowered core::bool #nonNullableInitializedNonFinalLocal#isSet = false;
function #nonNullableInitializedNonFinalLocal#get() → core::int {
if(!#nonNullableInitializedNonFinalLocal#isSet) {
- nonNullableInitializedNonFinalLocal = 0;
+ #nonNullableInitializedNonFinalLocal = 0;
#nonNullableInitializedNonFinalLocal#isSet = true;
}
- return nonNullableInitializedNonFinalLocal{core::int};
+ return #nonNullableInitializedNonFinalLocal{core::int};
}
function #nonNullableInitializedNonFinalLocal#set(core::int #t20) → dynamic {
#nonNullableInitializedNonFinalLocal#isSet = true;
- return nonNullableInitializedNonFinalLocal = #t20;
+ return #nonNullableInitializedNonFinalLocal = #t20;
}
- final core::int? nullableInitializedFinalLocal;
- core::bool #nullableInitializedFinalLocal#isSet = false;
+ lowered final core::int? #nullableInitializedFinalLocal;
+ lowered core::bool #nullableInitializedFinalLocal#isSet = false;
function #nullableInitializedFinalLocal#get() → core::int? {
if(!#nullableInitializedFinalLocal#isSet) {
final core::int? #t21 = 0;
if(#nullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nullableInitializedFinalLocal");
- nullableInitializedFinalLocal = #t21;
+ #nullableInitializedFinalLocal = #t21;
#nullableInitializedFinalLocal#isSet = true;
}
- return nullableInitializedFinalLocal;
+ return #nullableInitializedFinalLocal;
}
- final core::int? nonNullableInitializedFinalLocal;
- core::bool #nonNullableInitializedFinalLocal#isSet = false;
+ lowered final core::int? #nonNullableInitializedFinalLocal;
+ lowered core::bool #nonNullableInitializedFinalLocal#isSet = false;
function #nonNullableInitializedFinalLocal#get() → core::int {
if(!#nonNullableInitializedFinalLocal#isSet) {
final core::int #t22 = 0;
if(#nonNullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nonNullableInitializedFinalLocal");
- nonNullableInitializedFinalLocal = #t22;
+ #nonNullableInitializedFinalLocal = #t22;
#nonNullableInitializedFinalLocal#isSet = true;
}
- return nonNullableInitializedFinalLocal{core::int};
+ return #nonNullableInitializedFinalLocal{core::int};
}
}
static get uninitializedNonFinalTopLevelField() → core::int
diff --git a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.weak.transformed.expect
index e3cd765..079c847 100644
--- a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.weak.transformed.expect
@@ -99,93 +99,93 @@
static field core::bool _#initializedFinalTopLevelField#isSet = false;
static method main() → dynamic {}
static method method() → dynamic {
- core::int? nullableUninitializedNonFinalLocal;
- core::bool #nullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableUninitializedNonFinalLocal;
+ lowered core::bool #nullableUninitializedNonFinalLocal#isSet = false;
function #nullableUninitializedNonFinalLocal#get() → core::int?
- return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
+ return #nullableUninitializedNonFinalLocal#isSet ?{core::int?} #nullableUninitializedNonFinalLocal : throw new _in::LateError::localNI("nullableUninitializedNonFinalLocal");
function #nullableUninitializedNonFinalLocal#set(core::int? #t15) → dynamic {
#nullableUninitializedNonFinalLocal#isSet = true;
- return nullableUninitializedNonFinalLocal = #t15;
+ return #nullableUninitializedNonFinalLocal = #t15;
}
- core::int? nonNullableUninitializedNonFinalLocal;
- core::bool #nonNullableUninitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nonNullableUninitializedNonFinalLocal;
+ lowered core::bool #nonNullableUninitializedNonFinalLocal#isSet = false;
function #nonNullableUninitializedNonFinalLocal#get() → core::int
- return #nonNullableUninitializedNonFinalLocal#isSet ?{core::int} nonNullableUninitializedNonFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal");
+ return #nonNullableUninitializedNonFinalLocal#isSet ?{core::int} #nonNullableUninitializedNonFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedNonFinalLocal");
function #nonNullableUninitializedNonFinalLocal#set(core::int #t16) → dynamic {
#nonNullableUninitializedNonFinalLocal#isSet = true;
- return nonNullableUninitializedNonFinalLocal = #t16;
+ return #nonNullableUninitializedNonFinalLocal = #t16;
}
- final core::int? nullableUninitializedFinalLocal;
- core::bool #nullableUninitializedFinalLocal#isSet = false;
+ lowered final core::int? #nullableUninitializedFinalLocal;
+ lowered core::bool #nullableUninitializedFinalLocal#isSet = false;
function #nullableUninitializedFinalLocal#get() → core::int?
- return #nullableUninitializedFinalLocal#isSet ?{core::int?} nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
+ return #nullableUninitializedFinalLocal#isSet ?{core::int?} #nullableUninitializedFinalLocal : throw new _in::LateError::localNI("nullableUninitializedFinalLocal");
function #nullableUninitializedFinalLocal#set(core::int? #t17) → dynamic
if(#nullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nullableUninitializedFinalLocal");
else {
#nullableUninitializedFinalLocal#isSet = true;
- return nullableUninitializedFinalLocal = #t17;
+ return #nullableUninitializedFinalLocal = #t17;
}
- final core::int? nonNullableUninitializedFinalLocal;
- core::bool #nonNullableUninitializedFinalLocal#isSet = false;
+ lowered final core::int? #nonNullableUninitializedFinalLocal;
+ lowered core::bool #nonNullableUninitializedFinalLocal#isSet = false;
function #nonNullableUninitializedFinalLocal#get() → core::int
- return #nonNullableUninitializedFinalLocal#isSet ?{core::int} nonNullableUninitializedFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal");
+ return #nonNullableUninitializedFinalLocal#isSet ?{core::int} #nonNullableUninitializedFinalLocal{core::int} : throw new _in::LateError::localNI("nonNullableUninitializedFinalLocal");
function #nonNullableUninitializedFinalLocal#set(core::int #t18) → dynamic
if(#nonNullableUninitializedFinalLocal#isSet)
throw new _in::LateError::localAI("nonNullableUninitializedFinalLocal");
else {
#nonNullableUninitializedFinalLocal#isSet = true;
- return nonNullableUninitializedFinalLocal = #t18;
+ return #nonNullableUninitializedFinalLocal = #t18;
}
- core::int? nullableInitializedNonFinalLocal;
- core::bool #nullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nullableInitializedNonFinalLocal;
+ lowered core::bool #nullableInitializedNonFinalLocal#isSet = false;
function #nullableInitializedNonFinalLocal#get() → core::int? {
if(!#nullableInitializedNonFinalLocal#isSet) {
- nullableInitializedNonFinalLocal = 0;
+ #nullableInitializedNonFinalLocal = 0;
#nullableInitializedNonFinalLocal#isSet = true;
}
- return nullableInitializedNonFinalLocal;
+ return #nullableInitializedNonFinalLocal;
}
function #nullableInitializedNonFinalLocal#set(core::int? #t19) → dynamic {
#nullableInitializedNonFinalLocal#isSet = true;
- return nullableInitializedNonFinalLocal = #t19;
+ return #nullableInitializedNonFinalLocal = #t19;
}
- core::int? nonNullableInitializedNonFinalLocal;
- core::bool #nonNullableInitializedNonFinalLocal#isSet = false;
+ lowered core::int? #nonNullableInitializedNonFinalLocal;
+ lowered core::bool #nonNullableInitializedNonFinalLocal#isSet = false;
function #nonNullableInitializedNonFinalLocal#get() → core::int {
if(!#nonNullableInitializedNonFinalLocal#isSet) {
- nonNullableInitializedNonFinalLocal = 0;
+ #nonNullableInitializedNonFinalLocal = 0;
#nonNullableInitializedNonFinalLocal#isSet = true;
}
- return nonNullableInitializedNonFinalLocal{core::int};
+ return #nonNullableInitializedNonFinalLocal{core::int};
}
function #nonNullableInitializedNonFinalLocal#set(core::int #t20) → dynamic {
#nonNullableInitializedNonFinalLocal#isSet = true;
- return nonNullableInitializedNonFinalLocal = #t20;
+ return #nonNullableInitializedNonFinalLocal = #t20;
}
- final core::int? nullableInitializedFinalLocal;
- core::bool #nullableInitializedFinalLocal#isSet = false;
+ lowered final core::int? #nullableInitializedFinalLocal;
+ lowered core::bool #nullableInitializedFinalLocal#isSet = false;
function #nullableInitializedFinalLocal#get() → core::int? {
if(!#nullableInitializedFinalLocal#isSet) {
final core::int? #t21 = 0;
if(#nullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nullableInitializedFinalLocal");
- nullableInitializedFinalLocal = #t21;
+ #nullableInitializedFinalLocal = #t21;
#nullableInitializedFinalLocal#isSet = true;
}
- return nullableInitializedFinalLocal;
+ return #nullableInitializedFinalLocal;
}
- final core::int? nonNullableInitializedFinalLocal;
- core::bool #nonNullableInitializedFinalLocal#isSet = false;
+ lowered final core::int? #nonNullableInitializedFinalLocal;
+ lowered core::bool #nonNullableInitializedFinalLocal#isSet = false;
function #nonNullableInitializedFinalLocal#get() → core::int {
if(!#nonNullableInitializedFinalLocal#isSet) {
final core::int #t22 = 0;
if(#nonNullableInitializedFinalLocal#isSet)
throw new _in::LateError::localADI("nonNullableInitializedFinalLocal");
- nonNullableInitializedFinalLocal = #t22;
+ #nonNullableInitializedFinalLocal = #t22;
#nonNullableInitializedFinalLocal#isSet = true;
}
- return nonNullableInitializedFinalLocal{core::int};
+ return #nonNullableInitializedFinalLocal{core::int};
}
}
static get uninitializedNonFinalTopLevelField() → core::int
diff --git a/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.strong.expect b/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.strong.expect
index 9d4ef45..729f30f 100644
--- a/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.strong.expect
@@ -4,52 +4,52 @@
import "dart:_internal" as _in;
static method test() → dynamic {
- core::int? nullableTopLevelLocal = _in::createSentinel<core::int?>();
+ lowered core::int? #nullableTopLevelLocal = _in::createSentinel<core::int?>();
function #nullableTopLevelLocal#get() → core::int?
- return let final core::int? #t1 = nullableTopLevelLocal in _in::isSentinel(#t1) ?{core::int?} throw new _in::LateError::localNI("nullableTopLevelLocal") : #t1{core::int?};
+ return let final core::int? #t1 = #nullableTopLevelLocal in _in::isSentinel(#t1) ?{core::int?} throw new _in::LateError::localNI("nullableTopLevelLocal") : #t1{core::int?};
function #nullableTopLevelLocal#set(core::int? #t2) → dynamic
- return nullableTopLevelLocal = #t2;
- core::int? nonNullableTopLevelLocal;
+ return #nullableTopLevelLocal = #t2;
+ lowered core::int? #nonNullableTopLevelLocal;
function #nonNullableTopLevelLocal#get() → core::int
- return let final core::int? #t3 = nonNullableTopLevelLocal in #t3.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableTopLevelLocal") : #t3{core::int};
+ return let final core::int? #t3 = #nonNullableTopLevelLocal in #t3.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableTopLevelLocal") : #t3{core::int};
function #nonNullableTopLevelLocal#set(core::int #t4) → dynamic
- return nonNullableTopLevelLocal = #t4;
- core::int? nullableTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
+ return #nonNullableTopLevelLocal = #t4;
+ lowered core::int? #nullableTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
function #nullableTopLevelLocalWithInitializer#get() → core::int?
- return let final core::int? #t5 = nullableTopLevelLocalWithInitializer in _in::isSentinel(#t5) ?{core::int?} nullableTopLevelLocalWithInitializer = null : #t5{core::int?};
+ return let final core::int? #t5 = #nullableTopLevelLocalWithInitializer in _in::isSentinel(#t5) ?{core::int?} #nullableTopLevelLocalWithInitializer = null : #t5{core::int?};
function #nullableTopLevelLocalWithInitializer#set(core::int? #t6) → dynamic
- return nullableTopLevelLocalWithInitializer = #t6;
- core::int? nonNullableTopLevelLocalWithInitializer;
+ return #nullableTopLevelLocalWithInitializer = #t6;
+ lowered core::int? #nonNullableTopLevelLocalWithInitializer;
function #nonNullableTopLevelLocalWithInitializer#get() → core::int
- return let final core::int? #t7 = nonNullableTopLevelLocalWithInitializer in #t7.==(null) ?{core::int} nonNullableTopLevelLocalWithInitializer = 0 : #t7{core::int};
+ return let final core::int? #t7 = #nonNullableTopLevelLocalWithInitializer in #t7.==(null) ?{core::int} #nonNullableTopLevelLocalWithInitializer = 0 : #t7{core::int};
function #nonNullableTopLevelLocalWithInitializer#set(core::int #t8) → dynamic
- return nonNullableTopLevelLocalWithInitializer = #t8;
- final core::int? nullableFinalTopLevelLocal = _in::createSentinel<core::int?>();
+ return #nonNullableTopLevelLocalWithInitializer = #t8;
+ lowered final core::int? #nullableFinalTopLevelLocal = _in::createSentinel<core::int?>();
function #nullableFinalTopLevelLocal#get() → core::int?
- return let final core::int? #t9 = nullableFinalTopLevelLocal in _in::isSentinel(#t9) ?{core::int?} throw new _in::LateError::localNI("nullableFinalTopLevelLocal") : #t9{core::int?};
+ return let final core::int? #t9 = #nullableFinalTopLevelLocal in _in::isSentinel(#t9) ?{core::int?} throw new _in::LateError::localNI("nullableFinalTopLevelLocal") : #t9{core::int?};
function #nullableFinalTopLevelLocal#set(core::int? #t10) → dynamic
- if(_in::isSentinel(nullableFinalTopLevelLocal))
- return nullableFinalTopLevelLocal = #t10;
+ if(_in::isSentinel(#nullableFinalTopLevelLocal))
+ return #nullableFinalTopLevelLocal = #t10;
else
throw new _in::LateError::localAI("nullableFinalTopLevelLocal");
- final core::int? nonNullableFinalTopLevelLocal;
+ lowered final core::int? #nonNullableFinalTopLevelLocal;
function #nonNullableFinalTopLevelLocal#get() → core::int
- return let final core::int? #t11 = nonNullableFinalTopLevelLocal in #t11.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableFinalTopLevelLocal") : #t11{core::int};
+ return let final core::int? #t11 = #nonNullableFinalTopLevelLocal in #t11.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableFinalTopLevelLocal") : #t11{core::int};
function #nonNullableFinalTopLevelLocal#set(core::int #t12) → dynamic
- if(nonNullableFinalTopLevelLocal.==(null))
- return nonNullableFinalTopLevelLocal = #t12;
+ if(#nonNullableFinalTopLevelLocal.==(null))
+ return #nonNullableFinalTopLevelLocal = #t12;
else
throw new _in::LateError::localAI("nonNullableFinalTopLevelLocal");
- final core::int? nullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
+ lowered final core::int? #nullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
function #nullableFinalTopLevelLocalWithInitializer#get() → core::int?
- return let final core::int? #t13 = nullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t13) ?{core::int?} let final core::int? #t14 = null in _in::isSentinel(nullableFinalTopLevelLocalWithInitializer) ?{core::int?} nullableFinalTopLevelLocalWithInitializer = #t14 : throw new _in::LateError::localADI("nullableFinalTopLevelLocalWithInitializer") : #t13;
- final core::int? nonNullableFinalTopLevelLocalWithInitializer;
+ return let final core::int? #t13 = #nullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t13) ?{core::int?} let final core::int? #t14 = null in _in::isSentinel(#nullableFinalTopLevelLocalWithInitializer) ?{core::int?} #nullableFinalTopLevelLocalWithInitializer = #t14 : throw new _in::LateError::localADI("nullableFinalTopLevelLocalWithInitializer") : #t13;
+ lowered final core::int? #nonNullableFinalTopLevelLocalWithInitializer;
function #nonNullableFinalTopLevelLocalWithInitializer#get() → core::int
- return let final core::int? #t15 = nonNullableFinalTopLevelLocalWithInitializer in #t15.==(null) ?{core::int} let final core::int #t16 = 0 in nonNullableFinalTopLevelLocalWithInitializer.==(null) ?{core::int} nonNullableFinalTopLevelLocalWithInitializer = #t16 : throw new _in::LateError::localADI("nonNullableFinalTopLevelLocalWithInitializer") : #t15{core::int};
- Null neverLocal;
+ return let final core::int? #t15 = #nonNullableFinalTopLevelLocalWithInitializer in #t15.==(null) ?{core::int} let final core::int #t16 = 0 in #nonNullableFinalTopLevelLocalWithInitializer.==(null) ?{core::int} #nonNullableFinalTopLevelLocalWithInitializer = #t16 : throw new _in::LateError::localADI("nonNullableFinalTopLevelLocalWithInitializer") : #t15{core::int};
+ lowered Null #neverLocal;
function #neverLocal#get() → Never
- return let final Never? #t17 = neverLocal in #t17.==(null) ?{Never} throw new _in::LateError::localNI("neverLocal") : #t17{Never};
+ return let final Never? #t17 = #neverLocal in #t17.==(null) ?{Never} throw new _in::LateError::localNI("neverLocal") : #t17{Never};
function #neverLocal#set(Never #t18) → dynamic
- return neverLocal = #t18;
+ return #neverLocal = #t18;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.strong.transformed.expect
index 1dfd282..28acc1d 100644
--- a/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.strong.transformed.expect
@@ -4,53 +4,53 @@
import "dart:_internal" as _in;
static method test() → dynamic {
- core::int? nullableTopLevelLocal = _in::createSentinel<core::int?>();
+ lowered core::int? #nullableTopLevelLocal = _in::createSentinel<core::int?>();
function #nullableTopLevelLocal#get() → core::int?
- return let final core::int? #t1 = nullableTopLevelLocal in _in::isSentinel(#t1) ?{core::int?} throw new _in::LateError::localNI("nullableTopLevelLocal") : #t1{core::int?};
+ return let final core::int? #t1 = #nullableTopLevelLocal in _in::isSentinel(#t1) ?{core::int?} throw new _in::LateError::localNI("nullableTopLevelLocal") : #t1{core::int?};
function #nullableTopLevelLocal#set(core::int? #t2) → dynamic
- return nullableTopLevelLocal = #t2;
- core::int? nonNullableTopLevelLocal;
+ return #nullableTopLevelLocal = #t2;
+ lowered core::int? #nonNullableTopLevelLocal;
function #nonNullableTopLevelLocal#get() → core::int
- return let final core::int? #t3 = nonNullableTopLevelLocal in #t3.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableTopLevelLocal") : #t3{core::int};
+ return let final core::int? #t3 = #nonNullableTopLevelLocal in #t3.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableTopLevelLocal") : #t3{core::int};
function #nonNullableTopLevelLocal#set(core::int #t4) → dynamic
- return nonNullableTopLevelLocal = #t4;
- core::int? nullableTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
+ return #nonNullableTopLevelLocal = #t4;
+ lowered core::int? #nullableTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
function #nullableTopLevelLocalWithInitializer#get() → core::int?
- return let final core::int? #t5 = nullableTopLevelLocalWithInitializer in _in::isSentinel(#t5) ?{core::int?} nullableTopLevelLocalWithInitializer = null : #t5{core::int?};
+ return let final core::int? #t5 = #nullableTopLevelLocalWithInitializer in _in::isSentinel(#t5) ?{core::int?} #nullableTopLevelLocalWithInitializer = null : #t5{core::int?};
function #nullableTopLevelLocalWithInitializer#set(core::int? #t6) → dynamic
- return nullableTopLevelLocalWithInitializer = #t6;
- core::int? nonNullableTopLevelLocalWithInitializer;
+ return #nullableTopLevelLocalWithInitializer = #t6;
+ lowered core::int? #nonNullableTopLevelLocalWithInitializer;
function #nonNullableTopLevelLocalWithInitializer#get() → core::int
- return let final core::int? #t7 = nonNullableTopLevelLocalWithInitializer in #t7.==(null) ?{core::int} nonNullableTopLevelLocalWithInitializer = 0 : #t7{core::int};
+ return let final core::int? #t7 = #nonNullableTopLevelLocalWithInitializer in #t7.==(null) ?{core::int} #nonNullableTopLevelLocalWithInitializer = 0 : #t7{core::int};
function #nonNullableTopLevelLocalWithInitializer#set(core::int #t8) → dynamic
- return nonNullableTopLevelLocalWithInitializer = #t8;
- final core::int? nullableFinalTopLevelLocal = _in::createSentinel<core::int?>();
+ return #nonNullableTopLevelLocalWithInitializer = #t8;
+ lowered final core::int? #nullableFinalTopLevelLocal = _in::createSentinel<core::int?>();
function #nullableFinalTopLevelLocal#get() → core::int?
- return let final core::int? #t9 = nullableFinalTopLevelLocal in _in::isSentinel(#t9) ?{core::int?} throw new _in::LateError::localNI("nullableFinalTopLevelLocal") : #t9{core::int?};
+ return let final core::int? #t9 = #nullableFinalTopLevelLocal in _in::isSentinel(#t9) ?{core::int?} throw new _in::LateError::localNI("nullableFinalTopLevelLocal") : #t9{core::int?};
function #nullableFinalTopLevelLocal#set(core::int? #t10) → dynamic
- if(_in::isSentinel(nullableFinalTopLevelLocal))
- return nullableFinalTopLevelLocal = #t10;
+ if(_in::isSentinel(#nullableFinalTopLevelLocal))
+ return #nullableFinalTopLevelLocal = #t10;
else
throw new _in::LateError::localAI("nullableFinalTopLevelLocal");
- final core::int? nonNullableFinalTopLevelLocal;
+ lowered final core::int? #nonNullableFinalTopLevelLocal;
function #nonNullableFinalTopLevelLocal#get() → core::int
- return let final core::int? #t11 = nonNullableFinalTopLevelLocal in #t11.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableFinalTopLevelLocal") : #t11{core::int};
+ return let final core::int? #t11 = #nonNullableFinalTopLevelLocal in #t11.==(null) ?{core::int} throw new _in::LateError::localNI("nonNullableFinalTopLevelLocal") : #t11{core::int};
function #nonNullableFinalTopLevelLocal#set(core::int #t12) → dynamic
- if(nonNullableFinalTopLevelLocal.==(null))
- return nonNullableFinalTopLevelLocal = #t12;
+ if(#nonNullableFinalTopLevelLocal.==(null))
+ return #nonNullableFinalTopLevelLocal = #t12;
else
throw new _in::LateError::localAI("nonNullableFinalTopLevelLocal");
- final core::int? nullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
+ lowered final core::int? #nullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
function #nullableFinalTopLevelLocalWithInitializer#get() → core::int?
- return let final core::int? #t13 = nullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t13) ?{core::int?} let final core::int? #t14 = null in _in::isSentinel(nullableFinalTopLevelLocalWithInitializer) ?{core::int?} nullableFinalTopLevelLocalWithInitializer = #t14 : throw new _in::LateError::localADI("nullableFinalTopLevelLocalWithInitializer") : #t13;
- final core::int? nonNullableFinalTopLevelLocalWithInitializer;
+ return let final core::int? #t13 = #nullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t13) ?{core::int?} let final core::int? #t14 = null in _in::isSentinel(#nullableFinalTopLevelLocalWithInitializer) ?{core::int?} #nullableFinalTopLevelLocalWithInitializer = #t14 : throw new _in::LateError::localADI("nullableFinalTopLevelLocalWithInitializer") : #t13;
+ lowered final core::int? #nonNullableFinalTopLevelLocalWithInitializer;
function #nonNullableFinalTopLevelLocalWithInitializer#get() → core::int
- return let final core::int? #t15 = nonNullableFinalTopLevelLocalWithInitializer in #t15.==(null) ?{core::int} let final core::int #t16 = 0 in nonNullableFinalTopLevelLocalWithInitializer.==(null) ?{core::int} nonNullableFinalTopLevelLocalWithInitializer = #t16 : throw new _in::LateError::localADI("nonNullableFinalTopLevelLocalWithInitializer") : #t15{core::int};
- Null neverLocal;
+ return let final core::int? #t15 = #nonNullableFinalTopLevelLocalWithInitializer in #t15.==(null) ?{core::int} let final core::int #t16 = 0 in #nonNullableFinalTopLevelLocalWithInitializer.==(null) ?{core::int} #nonNullableFinalTopLevelLocalWithInitializer = #t16 : throw new _in::LateError::localADI("nonNullableFinalTopLevelLocalWithInitializer") : #t15{core::int};
+ lowered Null #neverLocal;
function #neverLocal#get() → Never
- return let final Never? #t17 = neverLocal in #t17.==(null) ?{Never} throw new _in::LateError::localNI("neverLocal") : #t17{Never};
+ return let final Never? #t17 = #neverLocal in #t17.==(null) ?{Never} throw new _in::LateError::localNI("neverLocal") : #t17{Never};
function #neverLocal#set(Never #t18) → dynamic
- return neverLocal = #t18;
+ return #neverLocal = #t18;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.weak.expect b/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.weak.expect
index 9a53f0d..98019ae 100644
--- a/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.weak.expect
@@ -4,52 +4,52 @@
import "dart:_internal" as _in;
static method test() → dynamic {
- core::int? nullableTopLevelLocal = _in::createSentinel<core::int?>();
+ lowered core::int? #nullableTopLevelLocal = _in::createSentinel<core::int?>();
function #nullableTopLevelLocal#get() → core::int?
- return let final core::int? #t1 = nullableTopLevelLocal in _in::isSentinel(#t1) ?{core::int?} throw new _in::LateError::localNI("nullableTopLevelLocal") : #t1{core::int?};
+ return let final core::int? #t1 = #nullableTopLevelLocal in _in::isSentinel(#t1) ?{core::int?} throw new _in::LateError::localNI("nullableTopLevelLocal") : #t1{core::int?};
function #nullableTopLevelLocal#set(core::int? #t2) → dynamic
- return nullableTopLevelLocal = #t2;
- core::int? nonNullableTopLevelLocal = _in::createSentinel<core::int>();
+ return #nullableTopLevelLocal = #t2;
+ lowered core::int? #nonNullableTopLevelLocal = _in::createSentinel<core::int>();
function #nonNullableTopLevelLocal#get() → core::int
- return let final core::int? #t3 = nonNullableTopLevelLocal in _in::isSentinel(#t3) ?{core::int} throw new _in::LateError::localNI("nonNullableTopLevelLocal") : #t3{core::int};
+ return let final core::int? #t3 = #nonNullableTopLevelLocal in _in::isSentinel(#t3) ?{core::int} throw new _in::LateError::localNI("nonNullableTopLevelLocal") : #t3{core::int};
function #nonNullableTopLevelLocal#set(core::int #t4) → dynamic
- return nonNullableTopLevelLocal = #t4;
- core::int? nullableTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
+ return #nonNullableTopLevelLocal = #t4;
+ lowered core::int? #nullableTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
function #nullableTopLevelLocalWithInitializer#get() → core::int?
- return let final core::int? #t5 = nullableTopLevelLocalWithInitializer in _in::isSentinel(#t5) ?{core::int?} nullableTopLevelLocalWithInitializer = null : #t5{core::int?};
+ return let final core::int? #t5 = #nullableTopLevelLocalWithInitializer in _in::isSentinel(#t5) ?{core::int?} #nullableTopLevelLocalWithInitializer = null : #t5{core::int?};
function #nullableTopLevelLocalWithInitializer#set(core::int? #t6) → dynamic
- return nullableTopLevelLocalWithInitializer = #t6;
- core::int? nonNullableTopLevelLocalWithInitializer = _in::createSentinel<core::int>();
+ return #nullableTopLevelLocalWithInitializer = #t6;
+ lowered core::int? #nonNullableTopLevelLocalWithInitializer = _in::createSentinel<core::int>();
function #nonNullableTopLevelLocalWithInitializer#get() → core::int
- return let final core::int? #t7 = nonNullableTopLevelLocalWithInitializer in _in::isSentinel(#t7) ?{core::int} nonNullableTopLevelLocalWithInitializer = 0 : #t7{core::int};
+ return let final core::int? #t7 = #nonNullableTopLevelLocalWithInitializer in _in::isSentinel(#t7) ?{core::int} #nonNullableTopLevelLocalWithInitializer = 0 : #t7{core::int};
function #nonNullableTopLevelLocalWithInitializer#set(core::int #t8) → dynamic
- return nonNullableTopLevelLocalWithInitializer = #t8;
- final core::int? nullableFinalTopLevelLocal = _in::createSentinel<core::int?>();
+ return #nonNullableTopLevelLocalWithInitializer = #t8;
+ lowered final core::int? #nullableFinalTopLevelLocal = _in::createSentinel<core::int?>();
function #nullableFinalTopLevelLocal#get() → core::int?
- return let final core::int? #t9 = nullableFinalTopLevelLocal in _in::isSentinel(#t9) ?{core::int?} throw new _in::LateError::localNI("nullableFinalTopLevelLocal") : #t9{core::int?};
+ return let final core::int? #t9 = #nullableFinalTopLevelLocal in _in::isSentinel(#t9) ?{core::int?} throw new _in::LateError::localNI("nullableFinalTopLevelLocal") : #t9{core::int?};
function #nullableFinalTopLevelLocal#set(core::int? #t10) → dynamic
- if(_in::isSentinel(nullableFinalTopLevelLocal))
- return nullableFinalTopLevelLocal = #t10;
+ if(_in::isSentinel(#nullableFinalTopLevelLocal))
+ return #nullableFinalTopLevelLocal = #t10;
else
throw new _in::LateError::localAI("nullableFinalTopLevelLocal");
- final core::int? nonNullableFinalTopLevelLocal = _in::createSentinel<core::int>();
+ lowered final core::int? #nonNullableFinalTopLevelLocal = _in::createSentinel<core::int>();
function #nonNullableFinalTopLevelLocal#get() → core::int
- return let final core::int? #t11 = nonNullableFinalTopLevelLocal in _in::isSentinel(#t11) ?{core::int} throw new _in::LateError::localNI("nonNullableFinalTopLevelLocal") : #t11{core::int};
+ return let final core::int? #t11 = #nonNullableFinalTopLevelLocal in _in::isSentinel(#t11) ?{core::int} throw new _in::LateError::localNI("nonNullableFinalTopLevelLocal") : #t11{core::int};
function #nonNullableFinalTopLevelLocal#set(core::int #t12) → dynamic
- if(_in::isSentinel(nonNullableFinalTopLevelLocal))
- return nonNullableFinalTopLevelLocal = #t12;
+ if(_in::isSentinel(#nonNullableFinalTopLevelLocal))
+ return #nonNullableFinalTopLevelLocal = #t12;
else
throw new _in::LateError::localAI("nonNullableFinalTopLevelLocal");
- final core::int? nullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
+ lowered final core::int? #nullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
function #nullableFinalTopLevelLocalWithInitializer#get() → core::int?
- return let final core::int? #t13 = nullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t13) ?{core::int?} let final core::int? #t14 = null in _in::isSentinel(nullableFinalTopLevelLocalWithInitializer) ?{core::int?} nullableFinalTopLevelLocalWithInitializer = #t14 : throw new _in::LateError::localADI("nullableFinalTopLevelLocalWithInitializer") : #t13;
- final core::int? nonNullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int>();
+ return let final core::int? #t13 = #nullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t13) ?{core::int?} let final core::int? #t14 = null in _in::isSentinel(#nullableFinalTopLevelLocalWithInitializer) ?{core::int?} #nullableFinalTopLevelLocalWithInitializer = #t14 : throw new _in::LateError::localADI("nullableFinalTopLevelLocalWithInitializer") : #t13;
+ lowered final core::int? #nonNullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int>();
function #nonNullableFinalTopLevelLocalWithInitializer#get() → core::int
- return let final core::int #t15 = nonNullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t15) ?{core::int} let final core::int #t16 = 0 in _in::isSentinel(nonNullableFinalTopLevelLocalWithInitializer) ?{core::int} nonNullableFinalTopLevelLocalWithInitializer = #t16 : throw new _in::LateError::localADI("nonNullableFinalTopLevelLocalWithInitializer") : #t15;
- Null neverLocal = _in::createSentinel<Never>();
+ return let final core::int #t15 = #nonNullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t15) ?{core::int} let final core::int #t16 = 0 in _in::isSentinel(#nonNullableFinalTopLevelLocalWithInitializer) ?{core::int} #nonNullableFinalTopLevelLocalWithInitializer = #t16 : throw new _in::LateError::localADI("nonNullableFinalTopLevelLocalWithInitializer") : #t15;
+ lowered Null #neverLocal = _in::createSentinel<Never>();
function #neverLocal#get() → Never
- return let final Never? #t17 = neverLocal in _in::isSentinel(#t17) ?{Never} throw new _in::LateError::localNI("neverLocal") : #t17{Never};
+ return let final Never? #t17 = #neverLocal in _in::isSentinel(#t17) ?{Never} throw new _in::LateError::localNI("neverLocal") : #t17{Never};
function #neverLocal#set(Never #t18) → dynamic
- return neverLocal = #t18;
+ return #neverLocal = #t18;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.weak.transformed.expect
index b4188db..01ccc85 100644
--- a/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering_sentinel/late_locals.dart.weak.transformed.expect
@@ -4,53 +4,53 @@
import "dart:_internal" as _in;
static method test() → dynamic {
- core::int? nullableTopLevelLocal = _in::createSentinel<core::int?>();
+ lowered core::int? #nullableTopLevelLocal = _in::createSentinel<core::int?>();
function #nullableTopLevelLocal#get() → core::int?
- return let final core::int? #t1 = nullableTopLevelLocal in _in::isSentinel(#t1) ?{core::int?} throw new _in::LateError::localNI("nullableTopLevelLocal") : #t1{core::int?};
+ return let final core::int? #t1 = #nullableTopLevelLocal in _in::isSentinel(#t1) ?{core::int?} throw new _in::LateError::localNI("nullableTopLevelLocal") : #t1{core::int?};
function #nullableTopLevelLocal#set(core::int? #t2) → dynamic
- return nullableTopLevelLocal = #t2;
- core::int? nonNullableTopLevelLocal = _in::createSentinel<core::int>();
+ return #nullableTopLevelLocal = #t2;
+ lowered core::int? #nonNullableTopLevelLocal = _in::createSentinel<core::int>();
function #nonNullableTopLevelLocal#get() → core::int
- return let final core::int? #t3 = nonNullableTopLevelLocal in _in::isSentinel(#t3) ?{core::int} throw new _in::LateError::localNI("nonNullableTopLevelLocal") : #t3{core::int};
+ return let final core::int? #t3 = #nonNullableTopLevelLocal in _in::isSentinel(#t3) ?{core::int} throw new _in::LateError::localNI("nonNullableTopLevelLocal") : #t3{core::int};
function #nonNullableTopLevelLocal#set(core::int #t4) → dynamic
- return nonNullableTopLevelLocal = #t4;
- core::int? nullableTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
+ return #nonNullableTopLevelLocal = #t4;
+ lowered core::int? #nullableTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
function #nullableTopLevelLocalWithInitializer#get() → core::int?
- return let final core::int? #t5 = nullableTopLevelLocalWithInitializer in _in::isSentinel(#t5) ?{core::int?} nullableTopLevelLocalWithInitializer = null : #t5{core::int?};
+ return let final core::int? #t5 = #nullableTopLevelLocalWithInitializer in _in::isSentinel(#t5) ?{core::int?} #nullableTopLevelLocalWithInitializer = null : #t5{core::int?};
function #nullableTopLevelLocalWithInitializer#set(core::int? #t6) → dynamic
- return nullableTopLevelLocalWithInitializer = #t6;
- core::int? nonNullableTopLevelLocalWithInitializer = _in::createSentinel<core::int>();
+ return #nullableTopLevelLocalWithInitializer = #t6;
+ lowered core::int? #nonNullableTopLevelLocalWithInitializer = _in::createSentinel<core::int>();
function #nonNullableTopLevelLocalWithInitializer#get() → core::int
- return let final core::int? #t7 = nonNullableTopLevelLocalWithInitializer in _in::isSentinel(#t7) ?{core::int} nonNullableTopLevelLocalWithInitializer = 0 : #t7{core::int};
+ return let final core::int? #t7 = #nonNullableTopLevelLocalWithInitializer in _in::isSentinel(#t7) ?{core::int} #nonNullableTopLevelLocalWithInitializer = 0 : #t7{core::int};
function #nonNullableTopLevelLocalWithInitializer#set(core::int #t8) → dynamic
- return nonNullableTopLevelLocalWithInitializer = #t8;
- final core::int? nullableFinalTopLevelLocal = _in::createSentinel<core::int?>();
+ return #nonNullableTopLevelLocalWithInitializer = #t8;
+ lowered final core::int? #nullableFinalTopLevelLocal = _in::createSentinel<core::int?>();
function #nullableFinalTopLevelLocal#get() → core::int?
- return let final core::int? #t9 = nullableFinalTopLevelLocal in _in::isSentinel(#t9) ?{core::int?} throw new _in::LateError::localNI("nullableFinalTopLevelLocal") : #t9{core::int?};
+ return let final core::int? #t9 = #nullableFinalTopLevelLocal in _in::isSentinel(#t9) ?{core::int?} throw new _in::LateError::localNI("nullableFinalTopLevelLocal") : #t9{core::int?};
function #nullableFinalTopLevelLocal#set(core::int? #t10) → dynamic
- if(_in::isSentinel(nullableFinalTopLevelLocal))
- return nullableFinalTopLevelLocal = #t10;
+ if(_in::isSentinel(#nullableFinalTopLevelLocal))
+ return #nullableFinalTopLevelLocal = #t10;
else
throw new _in::LateError::localAI("nullableFinalTopLevelLocal");
- final core::int? nonNullableFinalTopLevelLocal = _in::createSentinel<core::int>();
+ lowered final core::int? #nonNullableFinalTopLevelLocal = _in::createSentinel<core::int>();
function #nonNullableFinalTopLevelLocal#get() → core::int
- return let final core::int? #t11 = nonNullableFinalTopLevelLocal in _in::isSentinel(#t11) ?{core::int} throw new _in::LateError::localNI("nonNullableFinalTopLevelLocal") : #t11{core::int};
+ return let final core::int? #t11 = #nonNullableFinalTopLevelLocal in _in::isSentinel(#t11) ?{core::int} throw new _in::LateError::localNI("nonNullableFinalTopLevelLocal") : #t11{core::int};
function #nonNullableFinalTopLevelLocal#set(core::int #t12) → dynamic
- if(_in::isSentinel(nonNullableFinalTopLevelLocal))
- return nonNullableFinalTopLevelLocal = #t12;
+ if(_in::isSentinel(#nonNullableFinalTopLevelLocal))
+ return #nonNullableFinalTopLevelLocal = #t12;
else
throw new _in::LateError::localAI("nonNullableFinalTopLevelLocal");
- final core::int? nullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
+ lowered final core::int? #nullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int?>();
function #nullableFinalTopLevelLocalWithInitializer#get() → core::int?
- return let final core::int? #t13 = nullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t13) ?{core::int?} let final core::int? #t14 = null in _in::isSentinel(nullableFinalTopLevelLocalWithInitializer) ?{core::int?} nullableFinalTopLevelLocalWithInitializer = #t14 : throw new _in::LateError::localADI("nullableFinalTopLevelLocalWithInitializer") : #t13;
- final core::int? nonNullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int>();
+ return let final core::int? #t13 = #nullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t13) ?{core::int?} let final core::int? #t14 = null in _in::isSentinel(#nullableFinalTopLevelLocalWithInitializer) ?{core::int?} #nullableFinalTopLevelLocalWithInitializer = #t14 : throw new _in::LateError::localADI("nullableFinalTopLevelLocalWithInitializer") : #t13;
+ lowered final core::int? #nonNullableFinalTopLevelLocalWithInitializer = _in::createSentinel<core::int>();
function #nonNullableFinalTopLevelLocalWithInitializer#get() → core::int
- return let final core::int #t15 = nonNullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t15) ?{core::int} let final core::int #t16 = 0 in _in::isSentinel(nonNullableFinalTopLevelLocalWithInitializer) ?{core::int} nonNullableFinalTopLevelLocalWithInitializer = #t16 : throw new _in::LateError::localADI("nonNullableFinalTopLevelLocalWithInitializer") : #t15;
- Null neverLocal = _in::createSentinel<Never>();
+ return let final core::int #t15 = #nonNullableFinalTopLevelLocalWithInitializer in _in::isSentinel(#t15) ?{core::int} let final core::int #t16 = 0 in _in::isSentinel(#nonNullableFinalTopLevelLocalWithInitializer) ?{core::int} #nonNullableFinalTopLevelLocalWithInitializer = #t16 : throw new _in::LateError::localADI("nonNullableFinalTopLevelLocalWithInitializer") : #t15;
+ lowered Null #neverLocal = _in::createSentinel<Never>();
function #neverLocal#get() → Never
- return let final Never? #t17 = neverLocal in _in::isSentinel(#t17) ?{Never} throw new _in::LateError::localNI("neverLocal") : #t17{Never};
+ return let final Never? #t17 = #neverLocal in _in::isSentinel(#t17) ?{Never} throw new _in::LateError::localNI("neverLocal") : #t17{Never};
function #neverLocal#set(Never #t18) → dynamic
- return neverLocal = #t18;
+ return #neverLocal = #t18;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.outline.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.outline.expect
index 5a8fb0d..6cec804 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.outline.expect
@@ -62,105 +62,105 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(final self::Extension1|method1::T #this) → dynamic
+static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic
;
-static method Extension1|get#method1<T extends core::Object = core::Object>(final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(final self::Extension1|method2::T #this) → dynamic
+static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic
;
-static method Extension1|get#method2<T extends core::Object = core::Object>(final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(final self::Extension1|method3::T #this) → dynamic
+static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic
;
-static method Extension1|get#method3<T extends core::Object = core::Object>(final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(final self::Extension1|method4::T #this) → dynamic
+static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic
;
-static method Extension1|get#method4<T extends core::Object = core::Object>(final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(final self::Extension1|method5::T #this) → dynamic
+static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic
;
-static method Extension1|get#method5<T extends core::Object = core::Object>(final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(final self::Extension2|method1::T #this) → dynamic
+static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic
;
-static method Extension2|get#method1<T extends core::String = core::String>(final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(final self::Extension2|method2::T #this) → dynamic
+static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic
;
-static method Extension2|get#method2<T extends core::String = core::String>(final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(final self::Extension2|method3::T #this) → dynamic
+static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic
;
-static method Extension2|get#method3<T extends core::String = core::String>(final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(final self::Extension2|method4::T #this) → dynamic
+static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic
;
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(final self::Extension2|method5::T #this) → dynamic
+static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic
;
-static method Extension2|get#method5<T extends core::String = core::String>(final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(final self::Extension3|method1::T% #this) → dynamic
+static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic
;
-static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(final self::Extension3|method2::T% #this) → dynamic
+static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic
;
-static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T% #this) → dynamic
+static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic
;
-static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(final self::Extension3|method4::T% #this) → dynamic
+static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic
;
-static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(final self::Extension3|method5::T% #this) → dynamic
+static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic
;
-static method Extension3|get#method5<T extends dynamic = dynamic>(final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(final self::Extension4|method1::T% #this) → dynamic
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic
;
-static method Extension4|get#method1<T extends core::Object? = dynamic>(final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(final self::Extension4|method2::T% #this) → dynamic
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic
;
-static method Extension4|get#method2<T extends core::Object? = dynamic>(final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T% #this) → dynamic
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic
;
-static method Extension4|get#method3<T extends core::Object? = dynamic>(final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
-static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(final self::Extension4|method4::T% #this) → dynamic
+static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic
;
-static method Extension4|get#method4<T extends core::Object? = dynamic>(final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(final self::Extension4|method5::T% #this) → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic
;
-static method Extension4|get#method5<T extends core::Object? = dynamic>(final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(final self::Extension5|method1::T% #this) → dynamic
+static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic
;
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(final self::Extension5|method2::T% #this) → dynamic
+static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic
;
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(final self::Extension5|method3::T% #this) → dynamic
+static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic
;
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(final self::Extension5|method4::T% #this) → dynamic
+static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic
;
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(final self::Extension5|method5::T% #this) → dynamic
+static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic
;
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.expect
index 0cf68fa..c1de6b4 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.expect
@@ -62,79 +62,79 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(final self::Extension1|method1::T #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object = core::Object>(final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(final self::Extension1|method2::T #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object = core::Object>(final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(final self::Extension1|method3::T #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object = core::Object>(final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(final self::Extension1|method4::T #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object = core::Object>(final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(final self::Extension1|method5::T #this) → dynamic {}
-static method Extension1|get#method5<T extends core::Object = core::Object>(final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
+static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(final self::Extension2|method1::T #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String = core::String>(final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(final self::Extension2|method2::T #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String = core::String>(final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(final self::Extension2|method3::T #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String = core::String>(final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(final self::Extension2|method4::T #this) → dynamic {}
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(final self::Extension2|method5::T #this) → dynamic {}
-static method Extension2|get#method5<T extends core::String = core::String>(final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
+static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
+static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(final self::Extension3|method1::T% #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(final self::Extension3|method2::T% #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T% #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(final self::Extension3|method4::T% #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(final self::Extension3|method5::T% #this) → dynamic {}
-static method Extension3|get#method5<T extends dynamic = dynamic>(final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
+static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(final self::Extension4|method1::T% #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object? = dynamic>(final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(final self::Extension4|method2::T% #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object? = dynamic>(final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T% #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object? = dynamic>(final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
-static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(final self::Extension4|method4::T% #this) → dynamic {}
-static method Extension4|get#method4<T extends core::Object? = dynamic>(final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic {}
+static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(final self::Extension4|method5::T% #this) → dynamic {}
-static method Extension4|get#method5<T extends core::Object? = dynamic>(final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(final self::Extension5|method1::T% #this) → dynamic {}
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
+static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(final self::Extension5|method2::T% #this) → dynamic {}
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
+static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(final self::Extension5|method3::T% #this) → dynamic {}
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
+static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(final self::Extension5|method4::T% #this) → dynamic {}
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
+static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(final self::Extension5|method5::T% #this) → dynamic {}
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
+static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.transformed.expect
index 0cf68fa..c1de6b4 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.transformed.expect
@@ -62,79 +62,79 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(final self::Extension1|method1::T #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object = core::Object>(final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(final self::Extension1|method2::T #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object = core::Object>(final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(final self::Extension1|method3::T #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object = core::Object>(final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(final self::Extension1|method4::T #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object = core::Object>(final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(final self::Extension1|method5::T #this) → dynamic {}
-static method Extension1|get#method5<T extends core::Object = core::Object>(final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
+static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(final self::Extension2|method1::T #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String = core::String>(final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(final self::Extension2|method2::T #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String = core::String>(final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(final self::Extension2|method3::T #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String = core::String>(final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(final self::Extension2|method4::T #this) → dynamic {}
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(final self::Extension2|method5::T #this) → dynamic {}
-static method Extension2|get#method5<T extends core::String = core::String>(final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
+static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
+static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(final self::Extension3|method1::T% #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(final self::Extension3|method2::T% #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T% #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(final self::Extension3|method4::T% #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(final self::Extension3|method5::T% #this) → dynamic {}
-static method Extension3|get#method5<T extends dynamic = dynamic>(final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
+static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(final self::Extension4|method1::T% #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object? = dynamic>(final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(final self::Extension4|method2::T% #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object? = dynamic>(final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T% #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object? = dynamic>(final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
-static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(final self::Extension4|method4::T% #this) → dynamic {}
-static method Extension4|get#method4<T extends core::Object? = dynamic>(final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic {}
+static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(final self::Extension4|method5::T% #this) → dynamic {}
-static method Extension4|get#method5<T extends core::Object? = dynamic>(final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(final self::Extension5|method1::T% #this) → dynamic {}
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
+static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(final self::Extension5|method2::T% #this) → dynamic {}
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
+static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(final self::Extension5|method3::T% #this) → dynamic {}
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
+static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(final self::Extension5|method4::T% #this) → dynamic {}
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
+static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(final self::Extension5|method5::T% #this) → dynamic {}
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
+static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.expect
index 0cf68fa..c1de6b4 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.expect
@@ -62,79 +62,79 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(final self::Extension1|method1::T #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object = core::Object>(final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(final self::Extension1|method2::T #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object = core::Object>(final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(final self::Extension1|method3::T #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object = core::Object>(final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(final self::Extension1|method4::T #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object = core::Object>(final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(final self::Extension1|method5::T #this) → dynamic {}
-static method Extension1|get#method5<T extends core::Object = core::Object>(final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
+static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(final self::Extension2|method1::T #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String = core::String>(final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(final self::Extension2|method2::T #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String = core::String>(final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(final self::Extension2|method3::T #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String = core::String>(final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(final self::Extension2|method4::T #this) → dynamic {}
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(final self::Extension2|method5::T #this) → dynamic {}
-static method Extension2|get#method5<T extends core::String = core::String>(final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
+static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
+static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(final self::Extension3|method1::T% #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(final self::Extension3|method2::T% #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T% #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(final self::Extension3|method4::T% #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(final self::Extension3|method5::T% #this) → dynamic {}
-static method Extension3|get#method5<T extends dynamic = dynamic>(final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
+static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(final self::Extension4|method1::T% #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object? = dynamic>(final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(final self::Extension4|method2::T% #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object? = dynamic>(final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T% #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object? = dynamic>(final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
-static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(final self::Extension4|method4::T% #this) → dynamic {}
-static method Extension4|get#method4<T extends core::Object? = dynamic>(final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic {}
+static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(final self::Extension4|method5::T% #this) → dynamic {}
-static method Extension4|get#method5<T extends core::Object? = dynamic>(final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(final self::Extension5|method1::T% #this) → dynamic {}
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
+static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(final self::Extension5|method2::T% #this) → dynamic {}
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
+static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(final self::Extension5|method3::T% #this) → dynamic {}
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
+static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(final self::Extension5|method4::T% #this) → dynamic {}
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
+static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(final self::Extension5|method5::T% #this) → dynamic {}
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
+static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.transformed.expect
index 0cf68fa..c1de6b4 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.transformed.expect
@@ -62,79 +62,79 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(final self::Extension1|method1::T #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object = core::Object>(final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(final self::Extension1|method2::T #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object = core::Object>(final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(final self::Extension1|method3::T #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object = core::Object>(final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(final self::Extension1|method4::T #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object = core::Object>(final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(final self::Extension1|method5::T #this) → dynamic {}
-static method Extension1|get#method5<T extends core::Object = core::Object>(final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
+static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(final self::Extension2|method1::T #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String = core::String>(final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(final self::Extension2|method2::T #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String = core::String>(final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
+static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(final self::Extension2|method3::T #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String = core::String>(final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(final self::Extension2|method4::T #this) → dynamic {}
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(final self::Extension2|method5::T #this) → dynamic {}
-static method Extension2|get#method5<T extends core::String = core::String>(final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
+static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
+static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(final self::Extension3|method1::T% #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(final self::Extension3|method2::T% #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T% #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(final self::Extension3|method4::T% #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(final self::Extension3|method5::T% #this) → dynamic {}
-static method Extension3|get#method5<T extends dynamic = dynamic>(final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
+static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(final self::Extension4|method1::T% #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object? = dynamic>(final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(final self::Extension4|method2::T% #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object? = dynamic>(final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T% #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object? = dynamic>(final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
-static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(final self::Extension4|method4::T% #this) → dynamic {}
-static method Extension4|get#method4<T extends core::Object? = dynamic>(final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic {}
+static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(final self::Extension4|method5::T% #this) → dynamic {}
-static method Extension4|get#method5<T extends core::Object? = dynamic>(final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(final self::Extension5|method1::T% #this) → dynamic {}
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
+static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
+static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(final self::Extension5|method2::T% #this) → dynamic {}
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
+static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
+static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(final self::Extension5|method3::T% #this) → dynamic {}
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
+static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
+static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(final self::Extension5|method4::T% #this) → dynamic {}
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
+static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(final self::Extension5|method5::T% #this) → dynamic {}
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
+static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
+static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/extension_never.dart.outline.expect b/pkg/front_end/testcases/nnbd/extension_never.dart.outline.expect
index 718b500..b564483 100644
--- a/pkg/front_end/testcases/nnbd/extension_never.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/extension_never.dart.outline.expect
@@ -5,9 +5,9 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final Never #this) → dynamic
+static method Extension|extensionMethod(lowered final Never #this) → dynamic
;
-static method Extension|get#extensionMethod(final Never #this) → () → dynamic
+static method Extension|get#extensionMethod(lowered final Never #this) → () → dynamic
return () → dynamic => self::Extension|extensionMethod(#this);
static method implicitAccess(Never never) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/extension_never.dart.strong.expect b/pkg/front_end/testcases/nnbd/extension_never.dart.strong.expect
index 5c20141..0319a8a 100644
--- a/pkg/front_end/testcases/nnbd/extension_never.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/extension_never.dart.strong.expect
@@ -5,8 +5,8 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final Never #this) → dynamic {}
-static method Extension|get#extensionMethod(final Never #this) → () → dynamic
+static method Extension|extensionMethod(lowered final Never #this) → dynamic {}
+static method Extension|get#extensionMethod(lowered final Never #this) → () → dynamic
return () → dynamic => self::Extension|extensionMethod(#this);
static method implicitAccess(Never never) → dynamic {
never.extensionMethod();
diff --git a/pkg/front_end/testcases/nnbd/extension_never.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/extension_never.dart.strong.transformed.expect
index 5c20141..0319a8a 100644
--- a/pkg/front_end/testcases/nnbd/extension_never.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_never.dart.strong.transformed.expect
@@ -5,8 +5,8 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final Never #this) → dynamic {}
-static method Extension|get#extensionMethod(final Never #this) → () → dynamic
+static method Extension|extensionMethod(lowered final Never #this) → dynamic {}
+static method Extension|get#extensionMethod(lowered final Never #this) → () → dynamic
return () → dynamic => self::Extension|extensionMethod(#this);
static method implicitAccess(Never never) → dynamic {
never.extensionMethod();
diff --git a/pkg/front_end/testcases/nnbd/extension_never.dart.weak.expect b/pkg/front_end/testcases/nnbd/extension_never.dart.weak.expect
index 5c94642..b3068c2 100644
--- a/pkg/front_end/testcases/nnbd/extension_never.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/extension_never.dart.weak.expect
@@ -6,8 +6,8 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final Never #this) → dynamic {}
-static method Extension|get#extensionMethod(final Never #this) → () → dynamic
+static method Extension|extensionMethod(lowered final Never #this) → dynamic {}
+static method Extension|get#extensionMethod(lowered final Never #this) → () → dynamic
return () → dynamic => self::Extension|extensionMethod(#this);
static method implicitAccess(Never never) → dynamic {
let final Never #t1 = (let final Never #t2 = never in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).extensionMethod() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
diff --git a/pkg/front_end/testcases/nnbd/extension_never.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/extension_never.dart.weak.transformed.expect
index 5c94642..b3068c2 100644
--- a/pkg/front_end/testcases/nnbd/extension_never.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_never.dart.weak.transformed.expect
@@ -6,8 +6,8 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final Never #this) → dynamic {}
-static method Extension|get#extensionMethod(final Never #this) → () → dynamic
+static method Extension|extensionMethod(lowered final Never #this) → dynamic {}
+static method Extension|get#extensionMethod(lowered final Never #this) → () → dynamic
return () → dynamic => self::Extension|extensionMethod(#this);
static method implicitAccess(Never never) → dynamic {
let final Never #t1 = (let final Never #t2 = never in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).extensionMethod() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.outline.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.outline.expect
index d373301..7798a93 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.outline.expect
@@ -18,13 +18,13 @@
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
-static method Extension|method1<T extends core::Object? = dynamic>(final self::Extension|method1::T% #this) → self::Extension|method1::T%
+static method Extension|method1<T extends core::Object? = dynamic>(lowered final self::Extension|method1::T% #this) → self::Extension|method1::T%
;
-static method Extension|get#method1<T extends core::Object? = dynamic>(final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
+static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class
;
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.expect
index a948972..4f5c95f 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.expect
@@ -39,13 +39,13 @@
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
-static method Extension|method1<T extends core::Object? = dynamic>(final self::Extension|method1::T% #this) → self::Extension|method1::T%
+static method Extension|method1<T extends core::Object? = dynamic>(lowered final self::Extension|method1::T% #this) → self::Extension|method1::T%
return #this;
-static method Extension|get#method1<T extends core::Object? = dynamic>(final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
+static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
return #this;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class {
if(t1 is{ForNonNullableByDefault} self::SubClass) {
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.transformed.expect
index e6c4be4..c60f2f0 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.transformed.expect
@@ -39,13 +39,13 @@
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
-static method Extension|method1<T extends core::Object? = dynamic>(final self::Extension|method1::T% #this) → self::Extension|method1::T%
+static method Extension|method1<T extends core::Object? = dynamic>(lowered final self::Extension|method1::T% #this) → self::Extension|method1::T%
return #this;
-static method Extension|get#method1<T extends core::Object? = dynamic>(final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
+static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
return #this;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class {
if(t1 is{ForNonNullableByDefault} self::SubClass) {
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.expect
index a948972..4f5c95f 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.expect
@@ -39,13 +39,13 @@
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
-static method Extension|method1<T extends core::Object? = dynamic>(final self::Extension|method1::T% #this) → self::Extension|method1::T%
+static method Extension|method1<T extends core::Object? = dynamic>(lowered final self::Extension|method1::T% #this) → self::Extension|method1::T%
return #this;
-static method Extension|get#method1<T extends core::Object? = dynamic>(final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
+static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
return #this;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class {
if(t1 is{ForNonNullableByDefault} self::SubClass) {
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.transformed.expect
index e6c4be4..c60f2f0 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.transformed.expect
@@ -39,13 +39,13 @@
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
-static method Extension|method1<T extends core::Object? = dynamic>(final self::Extension|method1::T% #this) → self::Extension|method1::T%
+static method Extension|method1<T extends core::Object? = dynamic>(lowered final self::Extension|method1::T% #this) → self::Extension|method1::T%
return #this;
-static method Extension|get#method1<T extends core::Object? = dynamic>(final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
+static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
return #this;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class {
if(t1 is{ForNonNullableByDefault} self::SubClass) {
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.outline.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.outline.expect
index fb834d9..da98632 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.outline.expect
@@ -222,29 +222,29 @@
;
static set property3(core::int value) → void
;
-static method Extension|get#property1<T extends core::Object? = dynamic, S extends self::Extension|get#property1::T% = dynamic>(final core::int #this) → core::int
+static method Extension|get#property1<T extends core::Object? = dynamic, S extends self::Extension|get#property1::T% = dynamic>(lowered final core::int #this) → core::int
;
-static method Extension|set#property1<T extends core::Object? = dynamic, S extends self::Extension|set#property1::T% = dynamic>(final core::int #this, core::int i) → void
+static method Extension|set#property1<T extends core::Object? = dynamic, S extends self::Extension|set#property1::T% = dynamic>(lowered final core::int #this, core::int i) → void
;
-static method Extension|get#property2<T extends core::Object? = dynamic, S extends self::Extension|get#property2::T% = dynamic>(final core::int #this) → core::int
+static method Extension|get#property2<T extends core::Object? = dynamic, S extends self::Extension|get#property2::T% = dynamic>(lowered final core::int #this) → core::int
;
-static method Extension|set#property2<T extends core::Object? = dynamic, S extends self::Extension|set#property2::T% = dynamic>(final core::int #this, core::num i) → void
+static method Extension|set#property2<T extends core::Object? = dynamic, S extends self::Extension|set#property2::T% = dynamic>(lowered final core::int #this, core::num i) → void
;
-static method Extension|get#property3<T extends core::Object? = dynamic, S extends self::Extension|get#property3::T% = dynamic>(final core::int #this) → core::num
+static method Extension|get#property3<T extends core::Object? = dynamic, S extends self::Extension|get#property3::T% = dynamic>(lowered final core::int #this) → core::num
;
-static method Extension|set#property3<T extends core::Object? = dynamic, S extends self::Extension|set#property3::T% = dynamic>(final core::int #this, core::int i) → void
+static method Extension|set#property3<T extends core::Object? = dynamic, S extends self::Extension|set#property3::T% = dynamic>(lowered final core::int #this, core::int i) → void
;
-static method Extension|get#property4<T extends core::Object? = dynamic, S extends self::Extension|get#property4::T% = dynamic>(final core::int #this) → self::Extension|get#property4::S%
+static method Extension|get#property4<T extends core::Object? = dynamic, S extends self::Extension|get#property4::T% = dynamic>(lowered final core::int #this) → self::Extension|get#property4::S%
;
-static method Extension|set#property4<T extends core::Object? = dynamic, S extends self::Extension|set#property4::T% = dynamic>(final core::int #this, self::Extension|set#property4::S% i) → void
+static method Extension|set#property4<T extends core::Object? = dynamic, S extends self::Extension|set#property4::T% = dynamic>(lowered final core::int #this, self::Extension|set#property4::S% i) → void
;
-static method Extension|get#property5<T extends core::Object? = dynamic, S extends self::Extension|get#property5::T% = dynamic>(final core::int #this) → self::Extension|get#property5::S%
+static method Extension|get#property5<T extends core::Object? = dynamic, S extends self::Extension|get#property5::T% = dynamic>(lowered final core::int #this) → self::Extension|get#property5::S%
;
-static method Extension|set#property5<T extends core::Object? = dynamic, S extends self::Extension|set#property5::T% = dynamic>(final core::int #this, self::Extension|set#property5::T% i) → void
+static method Extension|set#property5<T extends core::Object? = dynamic, S extends self::Extension|set#property5::T% = dynamic>(lowered final core::int #this, self::Extension|set#property5::T% i) → void
;
-static method Extension|get#property6<T extends core::Object? = dynamic, S extends self::Extension|get#property6::T% = dynamic>(final core::int #this) → self::Extension|get#property6::T%
+static method Extension|get#property6<T extends core::Object? = dynamic, S extends self::Extension|get#property6::T% = dynamic>(lowered final core::int #this) → self::Extension|get#property6::T%
;
-static method Extension|set#property6<T extends core::Object? = dynamic, S extends self::Extension|set#property6::T% = dynamic>(final core::int #this, self::Extension|set#property6::S% i) → void
+static method Extension|set#property6<T extends core::Object? = dynamic, S extends self::Extension|set#property6::T% = dynamic>(lowered final core::int #this, self::Extension|set#property6::S% i) → void
;
static get Extension|property7() → core::int
;
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.strong.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.strong.expect
index f346415..f2f3537 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.strong.expect
@@ -237,30 +237,30 @@
static get property3() → core::num
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::Object? = dynamic, S extends self::Extension|get#property1::T% = dynamic>(final core::int #this) → core::int
+static method Extension|get#property1<T extends core::Object? = dynamic, S extends self::Extension|get#property1::T% = dynamic>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::Object? = dynamic, S extends self::Extension|set#property1::T% = dynamic>(final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::Object? = dynamic, S extends self::Extension|get#property2::T% = dynamic>(final core::int #this) → core::int
+static method Extension|set#property1<T extends core::Object? = dynamic, S extends self::Extension|set#property1::T% = dynamic>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::Object? = dynamic, S extends self::Extension|get#property2::T% = dynamic>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::Object? = dynamic, S extends self::Extension|set#property2::T% = dynamic>(final core::int #this, core::num i) → void {}
-static method Extension|get#property3<T extends core::Object? = dynamic, S extends self::Extension|get#property3::T% = dynamic>(final core::int #this) → core::num
+static method Extension|set#property2<T extends core::Object? = dynamic, S extends self::Extension|set#property2::T% = dynamic>(lowered final core::int #this, core::num i) → void {}
+static method Extension|get#property3<T extends core::Object? = dynamic, S extends self::Extension|get#property3::T% = dynamic>(lowered final core::int #this) → core::num
return 0;
-static method Extension|set#property3<T extends core::Object? = dynamic, S extends self::Extension|set#property3::T% = dynamic>(final core::int #this, core::int i) → void {}
-static method Extension|get#property4<T extends core::Object? = dynamic, S extends self::Extension|get#property4::T% = dynamic>(final core::int #this) → self::Extension|get#property4::S%
+static method Extension|set#property3<T extends core::Object? = dynamic, S extends self::Extension|set#property3::T% = dynamic>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4<T extends core::Object? = dynamic, S extends self::Extension|get#property4::T% = dynamic>(lowered final core::int #this) → self::Extension|get#property4::S%
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart:130:22: Error: A value of type 'int' can't be returned from a function with return type 'S'.
S get property4 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4<T extends core::Object? = dynamic, S extends self::Extension|set#property4::T% = dynamic>(final core::int #this, self::Extension|set#property4::S% i) → void {}
-static method Extension|get#property5<T extends core::Object? = dynamic, S extends self::Extension|get#property5::T% = dynamic>(final core::int #this) → self::Extension|get#property5::S%
+static method Extension|set#property4<T extends core::Object? = dynamic, S extends self::Extension|set#property4::T% = dynamic>(lowered final core::int #this, self::Extension|set#property4::S% i) → void {}
+static method Extension|get#property5<T extends core::Object? = dynamic, S extends self::Extension|get#property5::T% = dynamic>(lowered final core::int #this) → self::Extension|get#property5::S%
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart:133:22: Error: A value of type 'int' can't be returned from a function with return type 'S'.
S get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property5<T extends core::Object? = dynamic, S extends self::Extension|set#property5::T% = dynamic>(final core::int #this, self::Extension|set#property5::T% i) → void {}
-static method Extension|get#property6<T extends core::Object? = dynamic, S extends self::Extension|get#property6::T% = dynamic>(final core::int #this) → self::Extension|get#property6::T%
+static method Extension|set#property5<T extends core::Object? = dynamic, S extends self::Extension|set#property5::T% = dynamic>(lowered final core::int #this, self::Extension|set#property5::T% i) → void {}
+static method Extension|get#property6<T extends core::Object? = dynamic, S extends self::Extension|get#property6::T% = dynamic>(lowered final core::int #this) → self::Extension|get#property6::T%
return let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart:136:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property6<T extends core::Object? = dynamic, S extends self::Extension|set#property6::T% = dynamic>(final core::int #this, self::Extension|set#property6::S% i) → void {}
+static method Extension|set#property6<T extends core::Object? = dynamic, S extends self::Extension|set#property6::T% = dynamic>(lowered final core::int #this, self::Extension|set#property6::S% i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.weak.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.weak.expect
index f346415..f2f3537 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart.weak.expect
@@ -237,30 +237,30 @@
static get property3() → core::num
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::Object? = dynamic, S extends self::Extension|get#property1::T% = dynamic>(final core::int #this) → core::int
+static method Extension|get#property1<T extends core::Object? = dynamic, S extends self::Extension|get#property1::T% = dynamic>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::Object? = dynamic, S extends self::Extension|set#property1::T% = dynamic>(final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::Object? = dynamic, S extends self::Extension|get#property2::T% = dynamic>(final core::int #this) → core::int
+static method Extension|set#property1<T extends core::Object? = dynamic, S extends self::Extension|set#property1::T% = dynamic>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::Object? = dynamic, S extends self::Extension|get#property2::T% = dynamic>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::Object? = dynamic, S extends self::Extension|set#property2::T% = dynamic>(final core::int #this, core::num i) → void {}
-static method Extension|get#property3<T extends core::Object? = dynamic, S extends self::Extension|get#property3::T% = dynamic>(final core::int #this) → core::num
+static method Extension|set#property2<T extends core::Object? = dynamic, S extends self::Extension|set#property2::T% = dynamic>(lowered final core::int #this, core::num i) → void {}
+static method Extension|get#property3<T extends core::Object? = dynamic, S extends self::Extension|get#property3::T% = dynamic>(lowered final core::int #this) → core::num
return 0;
-static method Extension|set#property3<T extends core::Object? = dynamic, S extends self::Extension|set#property3::T% = dynamic>(final core::int #this, core::int i) → void {}
-static method Extension|get#property4<T extends core::Object? = dynamic, S extends self::Extension|get#property4::T% = dynamic>(final core::int #this) → self::Extension|get#property4::S%
+static method Extension|set#property3<T extends core::Object? = dynamic, S extends self::Extension|set#property3::T% = dynamic>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4<T extends core::Object? = dynamic, S extends self::Extension|get#property4::T% = dynamic>(lowered final core::int #this) → self::Extension|get#property4::S%
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart:130:22: Error: A value of type 'int' can't be returned from a function with return type 'S'.
S get property4 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4<T extends core::Object? = dynamic, S extends self::Extension|set#property4::T% = dynamic>(final core::int #this, self::Extension|set#property4::S% i) → void {}
-static method Extension|get#property5<T extends core::Object? = dynamic, S extends self::Extension|get#property5::T% = dynamic>(final core::int #this) → self::Extension|get#property5::S%
+static method Extension|set#property4<T extends core::Object? = dynamic, S extends self::Extension|set#property4::T% = dynamic>(lowered final core::int #this, self::Extension|set#property4::S% i) → void {}
+static method Extension|get#property5<T extends core::Object? = dynamic, S extends self::Extension|get#property5::T% = dynamic>(lowered final core::int #this) → self::Extension|get#property5::S%
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart:133:22: Error: A value of type 'int' can't be returned from a function with return type 'S'.
S get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property5<T extends core::Object? = dynamic, S extends self::Extension|set#property5::T% = dynamic>(final core::int #this, self::Extension|set#property5::T% i) → void {}
-static method Extension|get#property6<T extends core::Object? = dynamic, S extends self::Extension|get#property6::T% = dynamic>(final core::int #this) → self::Extension|get#property6::T%
+static method Extension|set#property5<T extends core::Object? = dynamic, S extends self::Extension|set#property5::T% = dynamic>(lowered final core::int #this, self::Extension|set#property5::T% i) → void {}
+static method Extension|get#property6<T extends core::Object? = dynamic, S extends self::Extension|get#property6::T% = dynamic>(lowered final core::int #this) → self::Extension|get#property6::T%
return let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type.dart:136:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property6<T extends core::Object? = dynamic, S extends self::Extension|set#property6::T% = dynamic>(final core::int #this, self::Extension|set#property6::S% i) → void {}
+static method Extension|set#property6<T extends core::Object? = dynamic, S extends self::Extension|set#property6::T% = dynamic>(lowered final core::int #this, self::Extension|set#property6::S% i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.outline.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.outline.expect
index 763d5e7..ced9893 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.outline.expect
@@ -224,33 +224,33 @@
;
static set property3(core::int value) → void
;
-static method Extension|get#property1<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
;
-static method Extension|set#property1<T extends core::num = core::num>(final core::int #this, core::int i) → void
+static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void
;
-static method Extension|get#property2<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
;
-static method Extension|set#property2<T extends core::num = core::num>(final core::int #this, core::int? i) → void
+static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void
;
-static method Extension|get#property3<T extends core::num = core::num>(final core::int #this) → core::int?
+static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
;
-static method Extension|set#property3<T extends core::num = core::num>(final core::int #this, core::int i) → void
+static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void
;
-static method Extension|get#property4a<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4a::T
+static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
;
-static method Extension|set#property4a<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4a::T i) → void
+static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void
;
-static method Extension|get#property4b<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
;
-static method Extension|set#property4b<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4b::T? i) → void
+static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void
;
-static method Extension|get#property5<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property5::T
+static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
;
-static method Extension|set#property5<T extends core::num = core::num>(final core::int #this, self::Extension|set#property5::T? i) → void
+static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void
;
-static method Extension|get#property6<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property6::T?
+static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
;
-static method Extension|set#property6<T extends core::num = core::num>(final core::int #this, self::Extension|set#property6::T i) → void
+static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void
;
static get Extension|property7() → core::int
;
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.expect
index 40207f8..93b128d 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.expect
@@ -243,35 +243,35 @@
static get property3() → core::int?
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::num = core::num>(final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::num = core::num>(final core::int #this, core::int? i) → void {}
-static method Extension|get#property3<T extends core::num = core::num>(final core::int #this) → core::int?
+static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void {}
+static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
return 0;
-static method Extension|set#property3<T extends core::num = core::num>(final core::int #this, core::int i) → void {}
-static method Extension|get#property4a<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4a::T
+static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:134:23: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property4a => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4a<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4a::T i) → void {}
-static method Extension|get#property4b<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
+static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:137:24: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property4b => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4b<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4b::T? i) → void {}
-static method Extension|get#property5<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property5::T
+static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
+static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
return let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:140:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property5<T extends core::num = core::num>(final core::int #this, self::Extension|set#property5::T? i) → void {}
-static method Extension|get#property6<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property6::T?
+static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
+static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
return let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:143:23: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property6<T extends core::num = core::num>(final core::int #this, self::Extension|set#property6::T i) → void {}
+static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.transformed.expect
index 40207f8..93b128d 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.transformed.expect
@@ -243,35 +243,35 @@
static get property3() → core::int?
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::num = core::num>(final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::num = core::num>(final core::int #this, core::int? i) → void {}
-static method Extension|get#property3<T extends core::num = core::num>(final core::int #this) → core::int?
+static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void {}
+static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
return 0;
-static method Extension|set#property3<T extends core::num = core::num>(final core::int #this, core::int i) → void {}
-static method Extension|get#property4a<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4a::T
+static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:134:23: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property4a => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4a<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4a::T i) → void {}
-static method Extension|get#property4b<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
+static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:137:24: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property4b => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4b<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4b::T? i) → void {}
-static method Extension|get#property5<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property5::T
+static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
+static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
return let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:140:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property5<T extends core::num = core::num>(final core::int #this, self::Extension|set#property5::T? i) → void {}
-static method Extension|get#property6<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property6::T?
+static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
+static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
return let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:143:23: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property6<T extends core::num = core::num>(final core::int #this, self::Extension|set#property6::T i) → void {}
+static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.expect
index 40207f8..93b128d 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.expect
@@ -243,35 +243,35 @@
static get property3() → core::int?
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::num = core::num>(final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::num = core::num>(final core::int #this, core::int? i) → void {}
-static method Extension|get#property3<T extends core::num = core::num>(final core::int #this) → core::int?
+static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void {}
+static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
return 0;
-static method Extension|set#property3<T extends core::num = core::num>(final core::int #this, core::int i) → void {}
-static method Extension|get#property4a<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4a::T
+static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:134:23: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property4a => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4a<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4a::T i) → void {}
-static method Extension|get#property4b<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
+static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:137:24: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property4b => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4b<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4b::T? i) → void {}
-static method Extension|get#property5<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property5::T
+static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
+static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
return let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:140:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property5<T extends core::num = core::num>(final core::int #this, self::Extension|set#property5::T? i) → void {}
-static method Extension|get#property6<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property6::T?
+static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
+static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
return let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:143:23: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property6<T extends core::num = core::num>(final core::int #this, self::Extension|set#property6::T i) → void {}
+static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.transformed.expect
index 40207f8..93b128d 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.transformed.expect
@@ -243,35 +243,35 @@
static get property3() → core::int?
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::num = core::num>(final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::num = core::num>(final core::int #this) → core::int
+static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::num = core::num>(final core::int #this, core::int? i) → void {}
-static method Extension|get#property3<T extends core::num = core::num>(final core::int #this) → core::int?
+static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void {}
+static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
return 0;
-static method Extension|set#property3<T extends core::num = core::num>(final core::int #this, core::int i) → void {}
-static method Extension|get#property4a<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4a::T
+static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
return let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:134:23: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property4a => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4a<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4a::T i) → void {}
-static method Extension|get#property4b<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
+static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:137:24: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property4b => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property4b<T extends core::num = core::num>(final core::int #this, self::Extension|set#property4b::T? i) → void {}
-static method Extension|get#property5<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property5::T
+static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
+static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
return let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:140:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property5<T extends core::num = core::num>(final core::int #this, self::Extension|set#property5::T? i) → void {}
-static method Extension|get#property6<T extends core::num = core::num>(final core::int #this) → self::Extension|get#property6::T?
+static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
+static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
return let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:143:23: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} <BottomType>;
-static method Extension|set#property6<T extends core::num = core::num>(final core::int #this, self::Extension|set#property6::T i) → void {}
+static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/infer_if_null.dart.outline.expect b/pkg/front_end/testcases/nnbd/infer_if_null.dart.outline.expect
index 1c9be60..2a3948c 100644
--- a/pkg/front_end/testcases/nnbd/infer_if_null.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/infer_if_null.dart.outline.expect
@@ -41,9 +41,9 @@
;
static method test4() → dynamic
;
-static method E6|[]=(final core::double #this, core::int index, core::String? value) → void
+static method E6|[]=(lowered final core::double #this, core::int index, core::String? value) → void
;
-static method E6|[](final core::double #this, core::int index) → core::String?
+static method E6|[](lowered final core::double #this, core::int index) → core::String?
;
static method test6() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.expect b/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.expect
index ac0794c..65650a7 100644
--- a/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.expect
@@ -56,8 +56,8 @@
core::List<core::String?> list = <core::String?>[null];
core::String s = let final core::List<core::String?> #t10 = list in let final core::int #t11 = 0 in let final core::String? #t12 = #t10.{core::List::[]}(#t11) in #t12.{core::String::==}(null) ?{core::String} let final core::String #t13 = "bar" in let final void #t14 = #t10.{core::List::[]=}(#t11, #t13) in #t13 : #t12{core::String};
}
-static method E6|[]=(final core::double #this, core::int index, core::String? value) → void {}
-static method E6|[](final core::double #this, core::int index) → core::String?
+static method E6|[]=(lowered final core::double #this, core::int index, core::String? value) → void {}
+static method E6|[](lowered final core::double #this, core::int index) → core::String?
return null;
static method test6() → dynamic {
core::String s = let final core::double #t15 = 3.14 in let final core::int #t16 = 0 in let final core::String? #t17 = self::E6|[](#t15, #t16) in #t17.{core::String::==}(null) ?{core::String} let final core::String #t18 = "bar" in let final void #t19 = self::E6|[]=(#t15, #t16, #t18) in #t18 : #t17{core::String};
diff --git a/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.transformed.expect
index 571f848..c4ec443 100644
--- a/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.transformed.expect
@@ -56,8 +56,8 @@
core::List<core::String?> list = <core::String?>[null];
core::String s = let final core::List<core::String?> #t10 = list in let final core::int #t11 = 0 in let final core::String? #t12 = #t10.{core::List::[]}(#t11) in #t12.{core::String::==}(null) ?{core::String} let final core::String #t13 = "bar" in let final void #t14 = #t10.{core::List::[]=}(#t11, #t13) in #t13 : #t12{core::String};
}
-static method E6|[]=(final core::double #this, core::int index, core::String? value) → void {}
-static method E6|[](final core::double #this, core::int index) → core::String?
+static method E6|[]=(lowered final core::double #this, core::int index, core::String? value) → void {}
+static method E6|[](lowered final core::double #this, core::int index) → core::String?
return null;
static method test6() → dynamic {
core::String s = let final core::double #t15 = 3.14 in let final core::int #t16 = 0 in let final core::String? #t17 = self::E6|[](#t15, #t16) in #t17.{core::String::==}(null) ?{core::String} let final core::String #t18 = "bar" in let final void #t19 = self::E6|[]=(#t15, #t16, #t18) in #t18 : #t17{core::String};
diff --git a/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.expect b/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.expect
index ac0794c..65650a7 100644
--- a/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.expect
@@ -56,8 +56,8 @@
core::List<core::String?> list = <core::String?>[null];
core::String s = let final core::List<core::String?> #t10 = list in let final core::int #t11 = 0 in let final core::String? #t12 = #t10.{core::List::[]}(#t11) in #t12.{core::String::==}(null) ?{core::String} let final core::String #t13 = "bar" in let final void #t14 = #t10.{core::List::[]=}(#t11, #t13) in #t13 : #t12{core::String};
}
-static method E6|[]=(final core::double #this, core::int index, core::String? value) → void {}
-static method E6|[](final core::double #this, core::int index) → core::String?
+static method E6|[]=(lowered final core::double #this, core::int index, core::String? value) → void {}
+static method E6|[](lowered final core::double #this, core::int index) → core::String?
return null;
static method test6() → dynamic {
core::String s = let final core::double #t15 = 3.14 in let final core::int #t16 = 0 in let final core::String? #t17 = self::E6|[](#t15, #t16) in #t17.{core::String::==}(null) ?{core::String} let final core::String #t18 = "bar" in let final void #t19 = self::E6|[]=(#t15, #t16, #t18) in #t18 : #t17{core::String};
diff --git a/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.transformed.expect
index 571f848..c4ec443 100644
--- a/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.transformed.expect
@@ -56,8 +56,8 @@
core::List<core::String?> list = <core::String?>[null];
core::String s = let final core::List<core::String?> #t10 = list in let final core::int #t11 = 0 in let final core::String? #t12 = #t10.{core::List::[]}(#t11) in #t12.{core::String::==}(null) ?{core::String} let final core::String #t13 = "bar" in let final void #t14 = #t10.{core::List::[]=}(#t11, #t13) in #t13 : #t12{core::String};
}
-static method E6|[]=(final core::double #this, core::int index, core::String? value) → void {}
-static method E6|[](final core::double #this, core::int index) → core::String?
+static method E6|[]=(lowered final core::double #this, core::int index, core::String? value) → void {}
+static method E6|[](lowered final core::double #this, core::int index) → core::String?
return null;
static method test6() → dynamic {
core::String s = let final core::double #t15 = 3.14 in let final core::int #t16 = 0 in let final core::String? #t17 = self::E6|[](#t15, #t16) in #t17.{core::String::==}(null) ?{core::String} let final core::String #t18 = "bar" in let final void #t19 = self::E6|[]=(#t15, #t16, #t18) in #t18 : #t17{core::String};
diff --git a/pkg/front_end/testcases/nnbd/issue41349.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue41349.dart.outline.expect
index 15071a6e..6aa4264 100644
--- a/pkg/front_end/testcases/nnbd/issue41349.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue41349.dart.outline.expect
@@ -22,21 +22,21 @@
method call = self::D|call;
tearoff call = self::D|get#call;
}
-static method B|foo(final self::A? #this) → dynamic
+static method B|foo(lowered final self::A? #this) → dynamic
;
-static method B|get#foo(final self::A? #this) → () → dynamic
+static method B|get#foo(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|foo(#this);
-static method B|bar(final self::A? #this) → dynamic
+static method B|bar(lowered final self::A? #this) → dynamic
;
-static method B|get#bar(final self::A? #this) → () → dynamic
+static method B|get#bar(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|bar(#this);
-static method C|bar(final self::A #this) → dynamic
+static method C|bar(lowered final self::A #this) → dynamic
;
-static method C|get#bar(final self::A #this) → () → dynamic
+static method C|get#bar(lowered final self::A #this) → () → dynamic
return () → dynamic => self::C|bar(#this);
-static method D|call(final () →? core::int #this) → core::int
+static method D|call(lowered final () →? core::int #this) → core::int
;
-static method D|get#call(final () →? core::int #this) → () → core::int
+static method D|get#call(lowered final () →? core::int #this) → () → core::int
return () → core::int => self::D|call(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue41349.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41349.dart.strong.expect
index 750eec3..e517198 100644
--- a/pkg/front_end/testcases/nnbd/issue41349.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41349.dart.strong.expect
@@ -23,21 +23,21 @@
method call = self::D|call;
tearoff call = self::D|get#call;
}
-static method B|foo(final self::A? #this) → dynamic
+static method B|foo(lowered final self::A? #this) → dynamic
return 42;
-static method B|get#foo(final self::A? #this) → () → dynamic
+static method B|get#foo(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|foo(#this);
-static method B|bar(final self::A? #this) → dynamic
+static method B|bar(lowered final self::A? #this) → dynamic
return 87;
-static method B|get#bar(final self::A? #this) → () → dynamic
+static method B|get#bar(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|bar(#this);
-static method C|bar(final self::A #this) → dynamic
+static method C|bar(lowered final self::A #this) → dynamic
return 123;
-static method C|get#bar(final self::A #this) → () → dynamic
+static method C|get#bar(lowered final self::A #this) → () → dynamic
return () → dynamic => self::C|bar(#this);
-static method D|call(final () →? core::int #this) → core::int
+static method D|call(lowered final () →? core::int #this) → core::int
return 76;
-static method D|get#call(final () →? core::int #this) → () → core::int
+static method D|get#call(lowered final () →? core::int #this) → () → core::int
return () → core::int => self::D|call(#this);
static method main() → dynamic {
self::testA(new self::A::•());
diff --git a/pkg/front_end/testcases/nnbd/issue41349.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41349.dart.strong.transformed.expect
index 750eec3..e517198 100644
--- a/pkg/front_end/testcases/nnbd/issue41349.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41349.dart.strong.transformed.expect
@@ -23,21 +23,21 @@
method call = self::D|call;
tearoff call = self::D|get#call;
}
-static method B|foo(final self::A? #this) → dynamic
+static method B|foo(lowered final self::A? #this) → dynamic
return 42;
-static method B|get#foo(final self::A? #this) → () → dynamic
+static method B|get#foo(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|foo(#this);
-static method B|bar(final self::A? #this) → dynamic
+static method B|bar(lowered final self::A? #this) → dynamic
return 87;
-static method B|get#bar(final self::A? #this) → () → dynamic
+static method B|get#bar(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|bar(#this);
-static method C|bar(final self::A #this) → dynamic
+static method C|bar(lowered final self::A #this) → dynamic
return 123;
-static method C|get#bar(final self::A #this) → () → dynamic
+static method C|get#bar(lowered final self::A #this) → () → dynamic
return () → dynamic => self::C|bar(#this);
-static method D|call(final () →? core::int #this) → core::int
+static method D|call(lowered final () →? core::int #this) → core::int
return 76;
-static method D|get#call(final () →? core::int #this) → () → core::int
+static method D|get#call(lowered final () →? core::int #this) → () → core::int
return () → core::int => self::D|call(#this);
static method main() → dynamic {
self::testA(new self::A::•());
diff --git a/pkg/front_end/testcases/nnbd/issue41349.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41349.dart.weak.expect
index 750eec3..e517198 100644
--- a/pkg/front_end/testcases/nnbd/issue41349.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41349.dart.weak.expect
@@ -23,21 +23,21 @@
method call = self::D|call;
tearoff call = self::D|get#call;
}
-static method B|foo(final self::A? #this) → dynamic
+static method B|foo(lowered final self::A? #this) → dynamic
return 42;
-static method B|get#foo(final self::A? #this) → () → dynamic
+static method B|get#foo(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|foo(#this);
-static method B|bar(final self::A? #this) → dynamic
+static method B|bar(lowered final self::A? #this) → dynamic
return 87;
-static method B|get#bar(final self::A? #this) → () → dynamic
+static method B|get#bar(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|bar(#this);
-static method C|bar(final self::A #this) → dynamic
+static method C|bar(lowered final self::A #this) → dynamic
return 123;
-static method C|get#bar(final self::A #this) → () → dynamic
+static method C|get#bar(lowered final self::A #this) → () → dynamic
return () → dynamic => self::C|bar(#this);
-static method D|call(final () →? core::int #this) → core::int
+static method D|call(lowered final () →? core::int #this) → core::int
return 76;
-static method D|get#call(final () →? core::int #this) → () → core::int
+static method D|get#call(lowered final () →? core::int #this) → () → core::int
return () → core::int => self::D|call(#this);
static method main() → dynamic {
self::testA(new self::A::•());
diff --git a/pkg/front_end/testcases/nnbd/issue41349.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41349.dart.weak.transformed.expect
index 750eec3..e517198 100644
--- a/pkg/front_end/testcases/nnbd/issue41349.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41349.dart.weak.transformed.expect
@@ -23,21 +23,21 @@
method call = self::D|call;
tearoff call = self::D|get#call;
}
-static method B|foo(final self::A? #this) → dynamic
+static method B|foo(lowered final self::A? #this) → dynamic
return 42;
-static method B|get#foo(final self::A? #this) → () → dynamic
+static method B|get#foo(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|foo(#this);
-static method B|bar(final self::A? #this) → dynamic
+static method B|bar(lowered final self::A? #this) → dynamic
return 87;
-static method B|get#bar(final self::A? #this) → () → dynamic
+static method B|get#bar(lowered final self::A? #this) → () → dynamic
return () → dynamic => self::B|bar(#this);
-static method C|bar(final self::A #this) → dynamic
+static method C|bar(lowered final self::A #this) → dynamic
return 123;
-static method C|get#bar(final self::A #this) → () → dynamic
+static method C|get#bar(lowered final self::A #this) → () → dynamic
return () → dynamic => self::C|bar(#this);
-static method D|call(final () →? core::int #this) → core::int
+static method D|call(lowered final () →? core::int #this) → core::int
return 76;
-static method D|get#call(final () →? core::int #this) → () → core::int
+static method D|get#call(lowered final () →? core::int #this) → () → core::int
return () → core::int => self::D|call(#this);
static method main() → dynamic {
self::testA(new self::A::•());
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.outline.expect
index 1a53ad9..6cde1626 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.outline.expect
@@ -137,13 +137,13 @@
}
extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void
;
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void
;
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect
index 5c0c199..2119a28 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect
@@ -243,17 +243,17 @@
}
extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
self::A<self::A<Null>>? d;
}
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
}
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
self::A<Null> a = new self::A::•<Null>();
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect
index 07265e4..1eb8c28 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect
@@ -243,17 +243,17 @@
}
extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
self::A<self::A<Null>>? d;
}
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
}
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
self::A<Null> a = new self::A::•<Null>();
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect
index 5c0c199..2119a28 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect
@@ -243,17 +243,17 @@
}
extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
self::A<self::A<Null>>? d;
}
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
}
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
self::A<Null> a = new self::A::•<Null>();
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect
index 07265e4..1eb8c28 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect
@@ -243,17 +243,17 @@
}
extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
}
-static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
+static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
self::A<self::A<Null>>? d;
}
-static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
+static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
}
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
self::A<Null> a = new self::A::•<Null>();
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.outline.expect
index 1ca6277..795331a 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.outline.expect
@@ -19,11 +19,11 @@
}
static method test<T extends self::A? = self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic
;
-static method Extension|get#fooExtension(final self::B #this) → core::int?
+static method Extension|get#fooExtension(lowered final self::B #this) → core::int?
;
-static method Extension|set#fooExtension(final self::B #this, core::int? value) → void
+static method Extension|set#fooExtension(lowered final self::B #this, core::int? value) → void
;
-static method Extension|get#barExtension(final self::B #this) → self::B
+static method Extension|get#barExtension(lowered final self::B #this) → self::B
;
static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.strong.expect
index 3087b3b..caccef7 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.strong.expect
@@ -71,10 +71,10 @@
let final dynamic #t7 = d in #t7.foo.{core::Object::==}(null) ?{dynamic} #t7.foo = x : null;
let final self::A? #t8 = a in #t8.{core::Object::==}(null) ?{core::int?} null : let final self::A #t9 = #t8{self::A}.{self::A::bar} in #t9.{self::A::foo}.{core::num::==}(null) ?{core::int} #t9.{self::A::foo} = x : null;
}
-static method Extension|get#fooExtension(final self::B #this) → core::int?
+static method Extension|get#fooExtension(lowered final self::B #this) → core::int?
return null;
-static method Extension|set#fooExtension(final self::B #this, core::int? value) → void {}
-static method Extension|get#barExtension(final self::B #this) → self::B
+static method Extension|set#fooExtension(lowered final self::B #this, core::int? value) → void {}
+static method Extension|get#barExtension(lowered final self::B #this) → self::B
return new self::B::•();
static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
let final self::B? #t10 = b in (let final<BottomType> #t11 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.strong.transformed.expect
index 3087b3b..caccef7 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.strong.transformed.expect
@@ -71,10 +71,10 @@
let final dynamic #t7 = d in #t7.foo.{core::Object::==}(null) ?{dynamic} #t7.foo = x : null;
let final self::A? #t8 = a in #t8.{core::Object::==}(null) ?{core::int?} null : let final self::A #t9 = #t8{self::A}.{self::A::bar} in #t9.{self::A::foo}.{core::num::==}(null) ?{core::int} #t9.{self::A::foo} = x : null;
}
-static method Extension|get#fooExtension(final self::B #this) → core::int?
+static method Extension|get#fooExtension(lowered final self::B #this) → core::int?
return null;
-static method Extension|set#fooExtension(final self::B #this, core::int? value) → void {}
-static method Extension|get#barExtension(final self::B #this) → self::B
+static method Extension|set#fooExtension(lowered final self::B #this, core::int? value) → void {}
+static method Extension|get#barExtension(lowered final self::B #this) → self::B
return new self::B::•();
static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
let final self::B? #t10 = b in (let final<BottomType> #t11 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.expect
index 3087b3b..caccef7 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.expect
@@ -71,10 +71,10 @@
let final dynamic #t7 = d in #t7.foo.{core::Object::==}(null) ?{dynamic} #t7.foo = x : null;
let final self::A? #t8 = a in #t8.{core::Object::==}(null) ?{core::int?} null : let final self::A #t9 = #t8{self::A}.{self::A::bar} in #t9.{self::A::foo}.{core::num::==}(null) ?{core::int} #t9.{self::A::foo} = x : null;
}
-static method Extension|get#fooExtension(final self::B #this) → core::int?
+static method Extension|get#fooExtension(lowered final self::B #this) → core::int?
return null;
-static method Extension|set#fooExtension(final self::B #this, core::int? value) → void {}
-static method Extension|get#barExtension(final self::B #this) → self::B
+static method Extension|set#fooExtension(lowered final self::B #this, core::int? value) → void {}
+static method Extension|get#barExtension(lowered final self::B #this) → self::B
return new self::B::•();
static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
let final self::B? #t10 = b in (let final<BottomType> #t11 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.transformed.expect
index 3087b3b..caccef7 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.transformed.expect
@@ -71,10 +71,10 @@
let final dynamic #t7 = d in #t7.foo.{core::Object::==}(null) ?{dynamic} #t7.foo = x : null;
let final self::A? #t8 = a in #t8.{core::Object::==}(null) ?{core::int?} null : let final self::A #t9 = #t8{self::A}.{self::A::bar} in #t9.{self::A::foo}.{core::num::==}(null) ?{core::int} #t9.{self::A::foo} = x : null;
}
-static method Extension|get#fooExtension(final self::B #this) → core::int?
+static method Extension|get#fooExtension(lowered final self::B #this) → core::int?
return null;
-static method Extension|set#fooExtension(final self::B #this, core::int? value) → void {}
-static method Extension|get#barExtension(final self::B #this) → self::B
+static method Extension|set#fooExtension(lowered final self::B #this, core::int? value) → void {}
+static method Extension|get#barExtension(lowered final self::B #this) → self::B
return new self::B::•();
static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
let final self::B? #t10 = b in (let final<BottomType> #t11 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.outline.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.outline.expect
index dbf8690..f3c723d 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.outline.expect
@@ -5,7 +5,7 @@
extension E<T extends core::Object? = dynamic> on T% {
get f = self::E|get#f;
}
-static method E|get#f<T extends core::Object? = dynamic>(final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
+static method E|get#f<T extends core::Object? = dynamic>(lowered final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
;
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.strong.expect
index aae95d4..d9bdceb 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.strong.expect
@@ -5,7 +5,7 @@
extension E<T extends core::Object? = dynamic> on T% {
get f = self::E|get#f;
}
-static method E|get#f<T extends core::Object? = dynamic>(final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
+static method E|get#f<T extends core::Object? = dynamic>(lowered final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
return (self::E|get#f::T% t) → self::E|get#f::T% => t;
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic {
(self::method1::S%) → self::method1::S% f = self::E|get#f<self::method1::S%>(s);
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.strong.transformed.expect
index aae95d4..d9bdceb 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.strong.transformed.expect
@@ -5,7 +5,7 @@
extension E<T extends core::Object? = dynamic> on T% {
get f = self::E|get#f;
}
-static method E|get#f<T extends core::Object? = dynamic>(final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
+static method E|get#f<T extends core::Object? = dynamic>(lowered final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
return (self::E|get#f::T% t) → self::E|get#f::T% => t;
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic {
(self::method1::S%) → self::method1::S% f = self::E|get#f<self::method1::S%>(s);
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.expect
index aae95d4..d9bdceb 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.expect
@@ -5,7 +5,7 @@
extension E<T extends core::Object? = dynamic> on T% {
get f = self::E|get#f;
}
-static method E|get#f<T extends core::Object? = dynamic>(final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
+static method E|get#f<T extends core::Object? = dynamic>(lowered final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
return (self::E|get#f::T% t) → self::E|get#f::T% => t;
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic {
(self::method1::S%) → self::method1::S% f = self::E|get#f<self::method1::S%>(s);
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.transformed.expect
index aae95d4..d9bdceb 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
extension E<T extends core::Object? = dynamic> on T% {
get f = self::E|get#f;
}
-static method E|get#f<T extends core::Object? = dynamic>(final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
+static method E|get#f<T extends core::Object? = dynamic>(lowered final self::E|get#f::T% #this) → (self::E|get#f::T%) → self::E|get#f::T%
return (self::E|get#f::T% t) → self::E|get#f::T% => t;
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic {
(self::method1::S%) → self::method1::S% f = self::E|get#f<self::method1::S%>(s);
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.outline.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.outline.expect
index 5032523..3cfc9db 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.outline.expect
@@ -11,7 +11,7 @@
extension Test<T extends core::Object? = dynamic> on T% {
get test = self::Test|get#test;
}
-static method Test|get#test<T extends core::Object? = dynamic>(final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
+static method Test|get#test<T extends core::Object? = dynamic>(lowered final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
;
static method main() → void
;
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.expect
index 151bcbd..2057990 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.expect
@@ -13,6 +13,6 @@
extension Test<T extends core::Object? = dynamic> on T% {
get test = self::Test|get#test;
}
-static method Test|get#test<T extends core::Object? = dynamic>(final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
+static method Test|get#test<T extends core::Object? = dynamic>(lowered final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
return (self::Test|get#test::T% a) → self::Test|get#test::T% => #this;
static method main() → void {}
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.transformed.expect
index 151bcbd..2057990 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.transformed.expect
@@ -13,6 +13,6 @@
extension Test<T extends core::Object? = dynamic> on T% {
get test = self::Test|get#test;
}
-static method Test|get#test<T extends core::Object? = dynamic>(final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
+static method Test|get#test<T extends core::Object? = dynamic>(lowered final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
return (self::Test|get#test::T% a) → self::Test|get#test::T% => #this;
static method main() → void {}
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.expect
index 151bcbd..2057990 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.expect
@@ -13,6 +13,6 @@
extension Test<T extends core::Object? = dynamic> on T% {
get test = self::Test|get#test;
}
-static method Test|get#test<T extends core::Object? = dynamic>(final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
+static method Test|get#test<T extends core::Object? = dynamic>(lowered final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
return (self::Test|get#test::T% a) → self::Test|get#test::T% => #this;
static method main() → void {}
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.transformed.expect
index 151bcbd..2057990 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.transformed.expect
@@ -13,6 +13,6 @@
extension Test<T extends core::Object? = dynamic> on T% {
get test = self::Test|get#test;
}
-static method Test|get#test<T extends core::Object? = dynamic>(final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
+static method Test|get#test<T extends core::Object? = dynamic>(lowered final self::Test|get#test::T% #this) → (self::Test|get#test::T%) → self::Test|get#test::T%
return (self::Test|get#test::T% a) → self::Test|get#test::T% => #this;
static method main() → void {}
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.outline.expect b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.outline.expect
index 7cc6fec..553a098 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.outline.expect
@@ -12,9 +12,9 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final self::Class #this) → self::Class
+static method Extension|extensionMethod(lowered final self::Class #this) → self::Class
;
-static method Extension|get#extensionMethod(final self::Class #this) → () → self::Class
+static method Extension|get#extensionMethod(lowered final self::Class #this) → () → self::Class
return () → self::Class => self::Extension|extensionMethod(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.strong.expect b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.strong.expect
index b67570c..a139a5e 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.strong.expect
@@ -13,9 +13,9 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final self::Class #this) → self::Class
+static method Extension|extensionMethod(lowered final self::Class #this) → self::Class
return #this;
-static method Extension|get#extensionMethod(final self::Class #this) → () → self::Class
+static method Extension|get#extensionMethod(lowered final self::Class #this) → () → self::Class
return () → self::Class => self::Extension|extensionMethod(#this);
static method main() → dynamic {
self::Class? c;
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.strong.transformed.expect
index b67570c..a139a5e 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.strong.transformed.expect
@@ -13,9 +13,9 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final self::Class #this) → self::Class
+static method Extension|extensionMethod(lowered final self::Class #this) → self::Class
return #this;
-static method Extension|get#extensionMethod(final self::Class #this) → () → self::Class
+static method Extension|get#extensionMethod(lowered final self::Class #this) → () → self::Class
return () → self::Class => self::Extension|extensionMethod(#this);
static method main() → dynamic {
self::Class? c;
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.weak.expect b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.weak.expect
index b67570c..a139a5e 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.weak.expect
@@ -13,9 +13,9 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final self::Class #this) → self::Class
+static method Extension|extensionMethod(lowered final self::Class #this) → self::Class
return #this;
-static method Extension|get#extensionMethod(final self::Class #this) → () → self::Class
+static method Extension|get#extensionMethod(lowered final self::Class #this) → () → self::Class
return () → self::Class => self::Extension|extensionMethod(#this);
static method main() → dynamic {
self::Class? c;
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.weak.transformed.expect
index b67570c..a139a5e 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_cascade.dart.weak.transformed.expect
@@ -13,9 +13,9 @@
method extensionMethod = self::Extension|extensionMethod;
tearoff extensionMethod = self::Extension|get#extensionMethod;
}
-static method Extension|extensionMethod(final self::Class #this) → self::Class
+static method Extension|extensionMethod(lowered final self::Class #this) → self::Class
return #this;
-static method Extension|get#extensionMethod(final self::Class #this) → () → self::Class
+static method Extension|get#extensionMethod(lowered final self::Class #this) → () → self::Class
return () → self::Class => self::Extension|extensionMethod(#this);
static method main() → dynamic {
self::Class? c;
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.outline.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.outline.expect
index 6e17131..8b10ec3 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.outline.expect
@@ -53,43 +53,43 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
;
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void
;
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
;
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
;
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void
;
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
;
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
;
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
;
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
;
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
;
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
;
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
;
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
;
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
;
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
;
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void
;
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.expect
index ba0ed52..4e47ad6 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.expect
@@ -79,46 +79,46 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
return #this.{self::Class1::property1};
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void {
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
return self::Extension1|get#nonNullable1(#this);
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
return #this.{self::Class1::property1};
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
return #this.{self::Class1::property2};
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
return self::Extension2|get#nonNullable2(#this);
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
return #this.{self::Class2::property};
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void {
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void {
#this.{self::Class2::property} = value;
}
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
return #this.{self::Class3::property};
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.transformed.expect
index ba0ed52..4e47ad6 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.strong.transformed.expect
@@ -79,46 +79,46 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
return #this.{self::Class1::property1};
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void {
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
return self::Extension1|get#nonNullable1(#this);
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
return #this.{self::Class1::property1};
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
return #this.{self::Class1::property2};
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
return self::Extension2|get#nonNullable2(#this);
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
return #this.{self::Class2::property};
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void {
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void {
#this.{self::Class2::property} = value;
}
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
return #this.{self::Class3::property};
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.expect
index ba0ed52..4e47ad6 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.expect
@@ -79,46 +79,46 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
return #this.{self::Class1::property1};
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void {
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
return self::Extension1|get#nonNullable1(#this);
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
return #this.{self::Class1::property1};
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
return #this.{self::Class1::property2};
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
return self::Extension2|get#nonNullable2(#this);
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
return #this.{self::Class2::property};
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void {
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void {
#this.{self::Class2::property} = value;
}
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
return #this.{self::Class3::property};
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.transformed.expect
index ba0ed52..4e47ad6 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_explicit_extension.dart.weak.transformed.expect
@@ -79,46 +79,46 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
return #this.{self::Class1::property1};
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void {
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
return self::Extension1|get#nonNullable1(#this);
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
return #this.{self::Class1::property1};
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
return #this.{self::Class1::property2};
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
return self::Extension2|get#nonNullable2(#this);
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
return #this.{self::Class2::property};
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void {
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void {
#this.{self::Class2::property} = value;
}
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
return #this.{self::Class3::property};
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.outline.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.outline.expect
index 6e17131..8b10ec3 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.outline.expect
@@ -53,43 +53,43 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
;
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void
;
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
;
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
;
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void
;
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
;
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
;
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
;
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
;
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
;
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
;
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
;
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
;
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
;
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
;
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void
;
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.expect
index 595c5b9..dead545 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.expect
@@ -79,46 +79,46 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
return #this.{self::Class1::property1};
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void {
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
return self::Extension1|get#nonNullable1(#this);
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
return #this.{self::Class1::property1};
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
return #this.{self::Class1::property2};
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
return self::Extension2|get#nonNullable2(#this);
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
return #this.{self::Class2::property};
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void {
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void {
#this.{self::Class2::property} = value;
}
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
return #this.{self::Class3::property};
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.transformed.expect
index 595c5b9..dead545 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.strong.transformed.expect
@@ -79,46 +79,46 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
return #this.{self::Class1::property1};
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void {
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
return self::Extension1|get#nonNullable1(#this);
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
return #this.{self::Class1::property1};
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
return #this.{self::Class1::property2};
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
return self::Extension2|get#nonNullable2(#this);
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
return #this.{self::Class2::property};
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void {
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void {
#this.{self::Class2::property} = value;
}
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
return #this.{self::Class3::property};
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.expect
index 595c5b9..dead545 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.expect
@@ -79,46 +79,46 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
return #this.{self::Class1::property1};
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void {
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
return self::Extension1|get#nonNullable1(#this);
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
return #this.{self::Class1::property1};
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
return #this.{self::Class1::property2};
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
return self::Extension2|get#nonNullable2(#this);
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
return #this.{self::Class2::property};
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void {
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void {
#this.{self::Class2::property} = value;
}
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
return #this.{self::Class3::property};
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.transformed.expect
index 595c5b9..dead545 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_extension.dart.weak.transformed.expect
@@ -79,46 +79,46 @@
extension Extension3 on self::Class3 {
operator [] = self::Extension3|[];
}
-static method Extension1|get#nullable1(final self::Class1 #this) → self::Class1?
+static method Extension1|get#nullable1(lowered final self::Class1 #this) → self::Class1?
return #this.{self::Class1::property1};
-static method Extension1|set#nullable1(final self::Class1 #this, self::Class1? value) → void {
+static method Extension1|set#nullable1(lowered final self::Class1 #this, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|nonNullable1Method(final self::Class1 #this) → self::Class1
+static method Extension1|nonNullable1Method(lowered final self::Class1 #this) → self::Class1
return self::Extension1|get#nonNullable1(#this);
-static method Extension1|get#nonNullable1Method(final self::Class1 #this) → () → self::Class1
+static method Extension1|get#nonNullable1Method(lowered final self::Class1 #this) → () → self::Class1
return () → self::Class1 => self::Extension1|nonNullable1Method(#this);
-static method Extension1|[](final self::Class1 #this, self::Class1? key) → self::Class1?
+static method Extension1|[](lowered final self::Class1 #this, self::Class1? key) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|[]=(final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
+static method Extension1|[]=(lowered final self::Class1 #this, self::Class1? key, self::Class1? value) → void {
#this.{self::Class1::property} = value;
}
-static method Extension1|+(final self::Class1 #this, core::int value) → self::Class1?
+static method Extension1|+(lowered final self::Class1 #this, core::int value) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|unary-(final self::Class1 #this) → self::Class1?
+static method Extension1|unary-(lowered final self::Class1 #this) → self::Class1?
return self::Extension1|get#nullable1(#this);
-static method Extension1|get#nonNullable1(final self::Class1 #this) → self::Class1
+static method Extension1|get#nonNullable1(lowered final self::Class1 #this) → self::Class1
return #this.{self::Class1::property1};
-static method Extension1|get#nonNullable2(final self::Class1 #this) → self::Class2
+static method Extension1|get#nonNullable2(lowered final self::Class1 #this) → self::Class2
return #this.{self::Class1::property2};
-static method Extension2|nonNullable2Method(final self::Class2 #this) → self::Class2
+static method Extension2|nonNullable2Method(lowered final self::Class2 #this) → self::Class2
return self::Extension2|get#nonNullable2(#this);
-static method Extension2|get#nonNullable2Method(final self::Class2 #this) → () → self::Class2
+static method Extension2|get#nonNullable2Method(lowered final self::Class2 #this) → () → self::Class2
return () → self::Class2 => self::Extension2|nonNullable2Method(#this);
-static method Extension2|[](final self::Class2 #this, self::Class2? key) → self::Class2
+static method Extension2|[](lowered final self::Class2 #this, self::Class2? key) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|[]=(final self::Class2 #this, self::Class2? key, self::Class2? value) → void
+static method Extension2|[]=(lowered final self::Class2 #this, self::Class2? key, self::Class2? value) → void
return #this.{self::Class2::property};
-static method Extension2|+(final self::Class2 #this, core::int value) → self::Class2
+static method Extension2|+(lowered final self::Class2 #this, core::int value) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|unary-(final self::Class2 #this) → self::Class2
+static method Extension2|unary-(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|get#nonNullable2(final self::Class2 #this) → self::Class2
+static method Extension2|get#nonNullable2(lowered final self::Class2 #this) → self::Class2
return #this.{self::Class2::property};
-static method Extension2|set#nonNullable2(final self::Class2 #this, self::Class2 value) → void {
+static method Extension2|set#nonNullable2(lowered final self::Class2 #this, self::Class2 value) → void {
#this.{self::Class2::property} = value;
}
-static method Extension3|[](final self::Class3 #this, self::Class3? key) → self::Class2?
+static method Extension3|[](lowered final self::Class3 #this, self::Class3? key) → self::Class2?
return #this.{self::Class3::property};
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.outline.expect b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.outline.expect
index c13bf31..8e9e154 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.outline.expect
@@ -21,9 +21,9 @@
operator [] = self::Extension|[];
operator []= = self::Extension|[]=;
}
-static method Extension|[](final self::Class2 #this, core::int index) → core::int
+static method Extension|[](lowered final self::Class2 #this, core::int index) → core::int
;
-static method Extension|[]=(final self::Class2 #this, core::int index, core::int value) → void
+static method Extension|[]=(lowered final self::Class2 #this, core::int index, core::int value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.strong.expect b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.strong.expect
index e391c8f..dc52187 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.strong.expect
@@ -77,9 +77,9 @@
operator [] = self::Extension|[];
operator []= = self::Extension|[]=;
}
-static method Extension|[](final self::Class2 #this, core::int index) → core::int
+static method Extension|[](lowered final self::Class2 #this, core::int index) → core::int
return #this.{self::Class2::field};
-static method Extension|[]=(final self::Class2 #this, core::int index, core::int value) → void {
+static method Extension|[]=(lowered final self::Class2 #this, core::int index, core::int value) → void {
#this.{self::Class2::field} = value;
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.strong.transformed.expect
index 9838019..5b7b144 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.strong.transformed.expect
@@ -77,9 +77,9 @@
operator [] = self::Extension|[];
operator []= = self::Extension|[]=;
}
-static method Extension|[](final self::Class2 #this, core::int index) → core::int
+static method Extension|[](lowered final self::Class2 #this, core::int index) → core::int
return #this.{self::Class2::field};
-static method Extension|[]=(final self::Class2 #this, core::int index, core::int value) → void {
+static method Extension|[]=(lowered final self::Class2 #this, core::int index, core::int value) → void {
#this.{self::Class2::field} = value;
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.weak.expect b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.weak.expect
index e391c8f..dc52187 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.weak.expect
@@ -77,9 +77,9 @@
operator [] = self::Extension|[];
operator []= = self::Extension|[]=;
}
-static method Extension|[](final self::Class2 #this, core::int index) → core::int
+static method Extension|[](lowered final self::Class2 #this, core::int index) → core::int
return #this.{self::Class2::field};
-static method Extension|[]=(final self::Class2 #this, core::int index, core::int value) → void {
+static method Extension|[]=(lowered final self::Class2 #this, core::int index, core::int value) → void {
#this.{self::Class2::field} = value;
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.weak.transformed.expect
index 7e7ea06..e604a49 100644
--- a/pkg/front_end/testcases/nnbd/null_shorting_index.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_shorting_index.dart.weak.transformed.expect
@@ -77,9 +77,9 @@
operator [] = self::Extension|[];
operator []= = self::Extension|[]=;
}
-static method Extension|[](final self::Class2 #this, core::int index) → core::int
+static method Extension|[](lowered final self::Class2 #this, core::int index) → core::int
return #this.{self::Class2::field};
-static method Extension|[]=(final self::Class2 #this, core::int index, core::int value) → void {
+static method Extension|[]=(lowered final self::Class2 #this, core::int index, core::int value) → void {
#this.{self::Class2::field} = value;
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd/nullable_extension.dart.outline.expect b/pkg/front_end/testcases/nnbd/nullable_extension.dart.outline.expect
index 738963d..79d4bd9 100644
--- a/pkg/front_end/testcases/nnbd/nullable_extension.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_extension.dart.outline.expect
@@ -10,7 +10,7 @@
extension _extension#0 on self::A? {
get text = self::_extension#0|get#text;
}
-static method _extension#0|get#text(final self::A? #this) → core::String
+static method _extension#0|get#text(lowered final self::A? #this) → core::String
;
static method main() → void
;
diff --git a/pkg/front_end/testcases/nnbd/nullable_extension.dart.strong.expect b/pkg/front_end/testcases/nnbd/nullable_extension.dart.strong.expect
index 4b74dec..a732aa4 100644
--- a/pkg/front_end/testcases/nnbd/nullable_extension.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_extension.dart.strong.expect
@@ -11,7 +11,7 @@
extension _extension#0 on self::A? {
get text = self::_extension#0|get#text;
}
-static method _extension#0|get#text(final self::A? #this) → core::String
+static method _extension#0|get#text(lowered final self::A? #this) → core::String
return "Lily was here";
static method main() → void {
self::A? a = null;
diff --git a/pkg/front_end/testcases/nnbd/nullable_extension.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_extension.dart.strong.transformed.expect
index 4b74dec..a732aa4 100644
--- a/pkg/front_end/testcases/nnbd/nullable_extension.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_extension.dart.strong.transformed.expect
@@ -11,7 +11,7 @@
extension _extension#0 on self::A? {
get text = self::_extension#0|get#text;
}
-static method _extension#0|get#text(final self::A? #this) → core::String
+static method _extension#0|get#text(lowered final self::A? #this) → core::String
return "Lily was here";
static method main() → void {
self::A? a = null;
diff --git a/pkg/front_end/testcases/nnbd/nullable_extension.dart.weak.expect b/pkg/front_end/testcases/nnbd/nullable_extension.dart.weak.expect
index 4b74dec..a732aa4 100644
--- a/pkg/front_end/testcases/nnbd/nullable_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_extension.dart.weak.expect
@@ -11,7 +11,7 @@
extension _extension#0 on self::A? {
get text = self::_extension#0|get#text;
}
-static method _extension#0|get#text(final self::A? #this) → core::String
+static method _extension#0|get#text(lowered final self::A? #this) → core::String
return "Lily was here";
static method main() → void {
self::A? a = null;
diff --git a/pkg/front_end/testcases/nnbd/nullable_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_extension.dart.weak.transformed.expect
index 4b74dec..a732aa4 100644
--- a/pkg/front_end/testcases/nnbd/nullable_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_extension.dart.weak.transformed.expect
@@ -11,7 +11,7 @@
extension _extension#0 on self::A? {
get text = self::_extension#0|get#text;
}
-static method _extension#0|get#text(final self::A? #this) → core::String
+static method _extension#0|get#text(lowered final self::A? #this) → core::String
return "Lily was here";
static method main() → void {
self::A? a = null;
diff --git a/pkg/front_end/testcases/nnbd/nullable_setter.dart.outline.expect b/pkg/front_end/testcases/nnbd/nullable_setter.dart.outline.expect
index 3f88610..57f6140 100644
--- a/pkg/front_end/testcases/nnbd/nullable_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_setter.dart.outline.expect
@@ -15,9 +15,9 @@
operator []= = self::_extension#0|[]=;
set setter = self::_extension#0|set#setter;
}
-static method _extension#0|set#setter(final self::C? #this, core::String v) → void
+static method _extension#0|set#setter(lowered final self::C? #this, core::String v) → void
;
-static method _extension#0|[]=(final self::C? #this, core::int index, core::String value) → void
+static method _extension#0|[]=(lowered final self::C? #this, core::int index, core::String value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/nullable_setter.dart.strong.expect b/pkg/front_end/testcases/nnbd/nullable_setter.dart.strong.expect
index ac016f2..4e21e645 100644
--- a/pkg/front_end/testcases/nnbd/nullable_setter.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_setter.dart.strong.expect
@@ -14,10 +14,10 @@
operator []= = self::_extension#0|[]=;
set setter = self::_extension#0|set#setter;
}
-static method _extension#0|set#setter(final self::C? #this, core::String v) → void {
+static method _extension#0|set#setter(lowered final self::C? #this, core::String v) → void {
let final self::C? #t1 = #this in #t1.{core::Object::==}(null) ?{core::String?} null : #t1{self::C}.{self::C::m} = v;
}
-static method _extension#0|[]=(final self::C? #this, core::int index, core::String value) → void {
+static method _extension#0|[]=(lowered final self::C? #this, core::int index, core::String value) → void {
let final self::C? #t2 = #this in #t2.{core::Object::==}(null) ?{core::String?} null : #t2{self::C}.{self::C::m} = "${index}${value}";
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd/nullable_setter.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_setter.dart.strong.transformed.expect
index d367854..fdac0fc 100644
--- a/pkg/front_end/testcases/nnbd/nullable_setter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_setter.dart.strong.transformed.expect
@@ -14,10 +14,10 @@
operator []= = self::_extension#0|[]=;
set setter = self::_extension#0|set#setter;
}
-static method _extension#0|set#setter(final self::C? #this, core::String v) → void {
+static method _extension#0|set#setter(lowered final self::C? #this, core::String v) → void {
let final self::C? #t1 = #this in #t1.{core::Object::==}(null) ?{core::String?} null : #t1{self::C}.{self::C::m} = v;
}
-static method _extension#0|[]=(final self::C? #this, core::int index, core::String value) → void {
+static method _extension#0|[]=(lowered final self::C? #this, core::int index, core::String value) → void {
let final self::C? #t2 = #this in #t2.{core::Object::==}(null) ?{core::String?} null : #t2{self::C}.{self::C::m} = "${index}${value}";
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd/nullable_setter.dart.weak.expect b/pkg/front_end/testcases/nnbd/nullable_setter.dart.weak.expect
index ac016f2..4e21e645 100644
--- a/pkg/front_end/testcases/nnbd/nullable_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_setter.dart.weak.expect
@@ -14,10 +14,10 @@
operator []= = self::_extension#0|[]=;
set setter = self::_extension#0|set#setter;
}
-static method _extension#0|set#setter(final self::C? #this, core::String v) → void {
+static method _extension#0|set#setter(lowered final self::C? #this, core::String v) → void {
let final self::C? #t1 = #this in #t1.{core::Object::==}(null) ?{core::String?} null : #t1{self::C}.{self::C::m} = v;
}
-static method _extension#0|[]=(final self::C? #this, core::int index, core::String value) → void {
+static method _extension#0|[]=(lowered final self::C? #this, core::int index, core::String value) → void {
let final self::C? #t2 = #this in #t2.{core::Object::==}(null) ?{core::String?} null : #t2{self::C}.{self::C::m} = "${index}${value}";
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd/nullable_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_setter.dart.weak.transformed.expect
index d367854..fdac0fc 100644
--- a/pkg/front_end/testcases/nnbd/nullable_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_setter.dart.weak.transformed.expect
@@ -14,10 +14,10 @@
operator []= = self::_extension#0|[]=;
set setter = self::_extension#0|set#setter;
}
-static method _extension#0|set#setter(final self::C? #this, core::String v) → void {
+static method _extension#0|set#setter(lowered final self::C? #this, core::String v) → void {
let final self::C? #t1 = #this in #t1.{core::Object::==}(null) ?{core::String?} null : #t1{self::C}.{self::C::m} = v;
}
-static method _extension#0|[]=(final self::C? #this, core::int index, core::String value) → void {
+static method _extension#0|[]=(lowered final self::C? #this, core::int index, core::String value) → void {
let final self::C? #t2 = #this in #t2.{core::Object::==}(null) ?{core::String?} null : #t2{self::C}.{self::C::m} = "${index}${value}";
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.outline.expect b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.outline.expect
index df25b02..c7750b7 100644
--- a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.outline.expect
@@ -64,29 +64,29 @@
static field () → core::int topLevelExtensionFunctionTypeTearOff;
static field dynamic topLevelExtensionFunctionGetter;
static field void topLevelExtensionFunctionTypeGetter;
-static method Extension|+(final self::Class #this, core::int value) → core::int
+static method Extension|+(lowered final self::Class #this, core::int value) → core::int
;
-static method Extension|unary-(final self::Class #this) → core::int
+static method Extension|unary-(lowered final self::Class #this) → core::int
;
-static method Extension|[](final self::Class #this, core::int index) → core::int
+static method Extension|[](lowered final self::Class #this, core::int index) → core::int
;
-static method Extension|[]=(final self::Class #this, core::int index, core::int value) → void
+static method Extension|[]=(lowered final self::Class #this, core::int index, core::int value) → void
;
-static method Extension|call(final self::Class #this) → core::int
+static method Extension|call(lowered final self::Class #this) → core::int
;
-static method Extension|get#call(final self::Class #this) → () → core::int
+static method Extension|get#call(lowered final self::Class #this) → () → core::int
return () → core::int => self::Extension|call(#this);
-static method Extension|get#extensionProperty(final self::Class #this) → core::int
+static method Extension|get#extensionProperty(lowered final self::Class #this) → core::int
;
-static method Extension|set#extensionProperty(final self::Class #this, core::int value) → void
+static method Extension|set#extensionProperty(lowered final self::Class #this, core::int value) → void
;
-static method Extension|extensionMethod(final self::Class #this) → core::int
+static method Extension|extensionMethod(lowered final self::Class #this) → core::int
;
-static method Extension|get#extensionMethod(final self::Class #this) → () → core::int
+static method Extension|get#extensionMethod(lowered final self::Class #this) → () → core::int
return () → core::int => self::Extension|extensionMethod(#this);
-static method Extension|get#extensionFunctionGetter(final self::Class #this) → core::Function
+static method Extension|get#extensionFunctionGetter(lowered final self::Class #this) → core::Function
;
-static method Extension|get#extensionFunctionTypeGetter(final self::Class #this) → () → void
+static method Extension|get#extensionFunctionTypeGetter(lowered final self::Class #this) → () → void
;
static get nullableFunction() → core::Function?
;
diff --git a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.strong.expect b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.strong.expect
index c104f5c..aa9a084 100644
--- a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.strong.expect
@@ -617,27 +617,27 @@
Try calling using ?.call instead.
nullableClass.extensionFunctionTypeGetter();
^" in self::Extension|get#extensionFunctionTypeGetter(self::nullableClass).call();
-static method Extension|+(final self::Class #this, core::int value) → core::int
+static method Extension|+(lowered final self::Class #this, core::int value) → core::int
return 0;
-static method Extension|unary-(final self::Class #this) → core::int
+static method Extension|unary-(lowered final self::Class #this) → core::int
return 0;
-static method Extension|[](final self::Class #this, core::int index) → core::int
+static method Extension|[](lowered final self::Class #this, core::int index) → core::int
return 0;
-static method Extension|[]=(final self::Class #this, core::int index, core::int value) → void {}
-static method Extension|call(final self::Class #this) → core::int
+static method Extension|[]=(lowered final self::Class #this, core::int index, core::int value) → void {}
+static method Extension|call(lowered final self::Class #this) → core::int
return 0;
-static method Extension|get#call(final self::Class #this) → () → core::int
+static method Extension|get#call(lowered final self::Class #this) → () → core::int
return () → core::int => self::Extension|call(#this);
-static method Extension|get#extensionProperty(final self::Class #this) → core::int
+static method Extension|get#extensionProperty(lowered final self::Class #this) → core::int
return 0;
-static method Extension|set#extensionProperty(final self::Class #this, core::int value) → void {}
-static method Extension|extensionMethod(final self::Class #this) → core::int
+static method Extension|set#extensionProperty(lowered final self::Class #this, core::int value) → void {}
+static method Extension|extensionMethod(lowered final self::Class #this) → core::int
return 0;
-static method Extension|get#extensionMethod(final self::Class #this) → () → core::int
+static method Extension|get#extensionMethod(lowered final self::Class #this) → () → core::int
return () → core::int => self::Extension|extensionMethod(#this);
-static method Extension|get#extensionFunctionGetter(final self::Class #this) → core::Function
+static method Extension|get#extensionFunctionGetter(lowered final self::Class #this) → core::Function
return () → Null {};
-static method Extension|get#extensionFunctionTypeGetter(final self::Class #this) → () → void
+static method Extension|get#extensionFunctionTypeGetter(lowered final self::Class #this) → () → void
return () → void {};
static get nullableFunction() → core::Function?
return () → Null {};
diff --git a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.weak.expect b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.weak.expect
index c104f5c..aa9a084 100644
--- a/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_nullable_access.dart.weak.expect
@@ -617,27 +617,27 @@
Try calling using ?.call instead.
nullableClass.extensionFunctionTypeGetter();
^" in self::Extension|get#extensionFunctionTypeGetter(self::nullableClass).call();
-static method Extension|+(final self::Class #this, core::int value) → core::int
+static method Extension|+(lowered final self::Class #this, core::int value) → core::int
return 0;
-static method Extension|unary-(final self::Class #this) → core::int
+static method Extension|unary-(lowered final self::Class #this) → core::int
return 0;
-static method Extension|[](final self::Class #this, core::int index) → core::int
+static method Extension|[](lowered final self::Class #this, core::int index) → core::int
return 0;
-static method Extension|[]=(final self::Class #this, core::int index, core::int value) → void {}
-static method Extension|call(final self::Class #this) → core::int
+static method Extension|[]=(lowered final self::Class #this, core::int index, core::int value) → void {}
+static method Extension|call(lowered final self::Class #this) → core::int
return 0;
-static method Extension|get#call(final self::Class #this) → () → core::int
+static method Extension|get#call(lowered final self::Class #this) → () → core::int
return () → core::int => self::Extension|call(#this);
-static method Extension|get#extensionProperty(final self::Class #this) → core::int
+static method Extension|get#extensionProperty(lowered final self::Class #this) → core::int
return 0;
-static method Extension|set#extensionProperty(final self::Class #this, core::int value) → void {}
-static method Extension|extensionMethod(final self::Class #this) → core::int
+static method Extension|set#extensionProperty(lowered final self::Class #this, core::int value) → void {}
+static method Extension|extensionMethod(lowered final self::Class #this) → core::int
return 0;
-static method Extension|get#extensionMethod(final self::Class #this) → () → core::int
+static method Extension|get#extensionMethod(lowered final self::Class #this) → () → core::int
return () → core::int => self::Extension|extensionMethod(#this);
-static method Extension|get#extensionFunctionGetter(final self::Class #this) → core::Function
+static method Extension|get#extensionFunctionGetter(lowered final self::Class #this) → core::Function
return () → Null {};
-static method Extension|get#extensionFunctionTypeGetter(final self::Class #this) → () → void
+static method Extension|get#extensionFunctionTypeGetter(lowered final self::Class #this) → () → void
return () → void {};
static get nullableFunction() → core::Function?
return () → Null {};
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.outline.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.outline.expect
index 6834f82..175965c3 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.outline.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.outline.expect
@@ -21,11 +21,11 @@
operator []= = self::E|[]=;
operator [] = self::E|[];
}
-static method E|get#foo(final core::String #this) → core::int
+static method E|get#foo(lowered final core::String #this) → core::int
;
-static method E|[]=(final core::String #this, core::int index, core::int value) → void
+static method E|[]=(lowered final core::String #this, core::int index, core::int value) → void
;
-static method E|[](final core::String #this, core::int index) → core::int
+static method E|[](lowered final core::String #this, core::int index) → core::int
;
static method warning(core::String s, core::List<core::String> l, core::Map<core::String, core::int> m) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect
index 7b28b33..bba165a 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect
@@ -125,10 +125,10 @@
operator []= = self::E|[]=;
operator [] = self::E|[];
}
-static method E|get#foo(final core::String #this) → core::int
+static method E|get#foo(lowered final core::String #this) → core::int
return 42;
-static method E|[]=(final core::String #this, core::int index, core::int value) → void {}
-static method E|[](final core::String #this, core::int index) → core::int
+static method E|[]=(lowered final core::String #this, core::int index, core::int value) → void {}
+static method E|[](lowered final core::String #this, core::int index) → core::int
return 42;
static method warning(core::String s, core::List<core::String> l, core::Map<core::String, core::int> m) → dynamic {
let final core::String #t2 = s in #t2.{core::String::==}(null) ?{core::int?} null : #t2.{core::String::length};
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
index 624e377..7896b4b 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
@@ -125,10 +125,10 @@
operator []= = self::E|[]=;
operator [] = self::E|[];
}
-static method E|get#foo(final core::String #this) → core::int
+static method E|get#foo(lowered final core::String #this) → core::int
return 42;
-static method E|[]=(final core::String #this, core::int index, core::int value) → void {}
-static method E|[](final core::String #this, core::int index) → core::int
+static method E|[]=(lowered final core::String #this, core::int index, core::int value) → void {}
+static method E|[](lowered final core::String #this, core::int index) → core::int
return 42;
static method warning(core::String s, core::List<core::String> l, core::Map<core::String, core::int> m) → dynamic {
let final core::String #t2 = s in #t2.{core::String::==}(null) ?{core::int?} null : #t2.{core::String::length};
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect
index 7b28b33..bba165a 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect
@@ -125,10 +125,10 @@
operator []= = self::E|[]=;
operator [] = self::E|[];
}
-static method E|get#foo(final core::String #this) → core::int
+static method E|get#foo(lowered final core::String #this) → core::int
return 42;
-static method E|[]=(final core::String #this, core::int index, core::int value) → void {}
-static method E|[](final core::String #this, core::int index) → core::int
+static method E|[]=(lowered final core::String #this, core::int index, core::int value) → void {}
+static method E|[](lowered final core::String #this, core::int index) → core::int
return 42;
static method warning(core::String s, core::List<core::String> l, core::Map<core::String, core::int> m) → dynamic {
let final core::String #t2 = s in #t2.{core::String::==}(null) ?{core::int?} null : #t2.{core::String::length};
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
index 624e377..7896b4b 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
@@ -125,10 +125,10 @@
operator []= = self::E|[]=;
operator [] = self::E|[];
}
-static method E|get#foo(final core::String #this) → core::int
+static method E|get#foo(lowered final core::String #this) → core::int
return 42;
-static method E|[]=(final core::String #this, core::int index, core::int value) → void {}
-static method E|[](final core::String #this, core::int index) → core::int
+static method E|[]=(lowered final core::String #this, core::int index, core::int value) → void {}
+static method E|[](lowered final core::String #this, core::int index) → core::int
return 42;
static method warning(core::String s, core::List<core::String> l, core::Map<core::String, core::int> m) → dynamic {
let final core::String #t2 = s in #t2.{core::String::==}(null) ?{core::int?} null : #t2.{core::String::length};
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue42660.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/issue42660.dart.weak.expect
index 88ec031..1d99576 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue42660.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue42660.dart.weak.expect
@@ -51,9 +51,9 @@
method m = iss::E|m;
tearoff m = iss::E|get#m;
}
-static method E|m(final core::int #this) → core::String
+static method E|m(lowered final core::int #this) → core::String
return "m";
-static method E|get#m(final core::int #this) → () → core::String
+static method E|get#m(lowered final core::int #this) → () → core::String
return () → core::String => iss::E|m(#this);
static method f() → core::int?
return 4;
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue42660.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/issue42660.dart.weak.transformed.expect
index 88ec031..1d99576 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue42660.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue42660.dart.weak.transformed.expect
@@ -51,9 +51,9 @@
method m = iss::E|m;
tearoff m = iss::E|get#m;
}
-static method E|m(final core::int #this) → core::String
+static method E|m(lowered final core::int #this) → core::String
return "m";
-static method E|get#m(final core::int #this) → () → core::String
+static method E|get#m(lowered final core::int #this) → () → core::String
return () → core::String => iss::E|m(#this);
static method f() → core::int?
return 4;
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.expect
index 4ea1564..a622905 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.expect
@@ -28,23 +28,23 @@
operator unary- = self::Extension|unary-;
set field = self::Extension|set#field;
}
-static method Extension|get#field(final self::Class* #this) → self::Class*
+static method Extension|get#field(lowered final self::Class* #this) → self::Class*
return #this.{self::Class::_field};
-static method Extension|set#field(final self::Class* #this, self::Class* value) → void {
+static method Extension|set#field(lowered final self::Class* #this, self::Class* value) → void {
#this.{self::Class::_field} = value;
}
-static method Extension|method(final self::Class* #this) → self::Class*
+static method Extension|method(lowered final self::Class* #this) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|get#method(final self::Class* #this) → () →* self::Class*
+static method Extension|get#method(lowered final self::Class* #this) → () →* self::Class*
return () → self::Class* => self::Extension|method(#this);
-static method Extension|[](final self::Class* #this, self::Class* key) → self::Class*
+static method Extension|[](lowered final self::Class* #this, self::Class* key) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|[]=(final self::Class* #this, self::Class* key, self::Class* value) → void {
+static method Extension|[]=(lowered final self::Class* #this, self::Class* key, self::Class* value) → void {
self::Extension|set#field(#this, value);
}
-static method Extension|+(final self::Class* #this, core::int* value) → self::Class*
+static method Extension|+(lowered final self::Class* #this, core::int* value) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|unary-(final self::Class* #this) → self::Class*
+static method Extension|unary-(lowered final self::Class* #this) → self::Class*
return self::Extension|get#field(#this);
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.transformed.expect
index 4ea1564..a622905 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_explicit_extension.dart.weak.transformed.expect
@@ -28,23 +28,23 @@
operator unary- = self::Extension|unary-;
set field = self::Extension|set#field;
}
-static method Extension|get#field(final self::Class* #this) → self::Class*
+static method Extension|get#field(lowered final self::Class* #this) → self::Class*
return #this.{self::Class::_field};
-static method Extension|set#field(final self::Class* #this, self::Class* value) → void {
+static method Extension|set#field(lowered final self::Class* #this, self::Class* value) → void {
#this.{self::Class::_field} = value;
}
-static method Extension|method(final self::Class* #this) → self::Class*
+static method Extension|method(lowered final self::Class* #this) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|get#method(final self::Class* #this) → () →* self::Class*
+static method Extension|get#method(lowered final self::Class* #this) → () →* self::Class*
return () → self::Class* => self::Extension|method(#this);
-static method Extension|[](final self::Class* #this, self::Class* key) → self::Class*
+static method Extension|[](lowered final self::Class* #this, self::Class* key) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|[]=(final self::Class* #this, self::Class* key, self::Class* value) → void {
+static method Extension|[]=(lowered final self::Class* #this, self::Class* key, self::Class* value) → void {
self::Extension|set#field(#this, value);
}
-static method Extension|+(final self::Class* #this, core::int* value) → self::Class*
+static method Extension|+(lowered final self::Class* #this, core::int* value) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|unary-(final self::Class* #this) → self::Class*
+static method Extension|unary-(lowered final self::Class* #this) → self::Class*
return self::Extension|get#field(#this);
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.expect
index d0cc332..6b754ec 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.expect
@@ -28,23 +28,23 @@
operator unary- = self::Extension|unary-;
set field = self::Extension|set#field;
}
-static method Extension|get#field(final self::Class* #this) → self::Class*
+static method Extension|get#field(lowered final self::Class* #this) → self::Class*
return #this.{self::Class::_field};
-static method Extension|set#field(final self::Class* #this, self::Class* value) → void {
+static method Extension|set#field(lowered final self::Class* #this, self::Class* value) → void {
#this.{self::Class::_field} = value;
}
-static method Extension|method(final self::Class* #this) → self::Class*
+static method Extension|method(lowered final self::Class* #this) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|get#method(final self::Class* #this) → () →* self::Class*
+static method Extension|get#method(lowered final self::Class* #this) → () →* self::Class*
return () → self::Class* => self::Extension|method(#this);
-static method Extension|[](final self::Class* #this, self::Class* key) → self::Class*
+static method Extension|[](lowered final self::Class* #this, self::Class* key) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|[]=(final self::Class* #this, self::Class* key, self::Class* value) → void {
+static method Extension|[]=(lowered final self::Class* #this, self::Class* key, self::Class* value) → void {
self::Extension|set#field(#this, value);
}
-static method Extension|+(final self::Class* #this, core::int* value) → self::Class*
+static method Extension|+(lowered final self::Class* #this, core::int* value) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|unary-(final self::Class* #this) → self::Class*
+static method Extension|unary-(lowered final self::Class* #this) → self::Class*
return self::Extension|get#field(#this);
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.transformed.expect
index d0cc332..6b754ec 100644
--- a/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/no_null_shorting_extension.dart.weak.transformed.expect
@@ -28,23 +28,23 @@
operator unary- = self::Extension|unary-;
set field = self::Extension|set#field;
}
-static method Extension|get#field(final self::Class* #this) → self::Class*
+static method Extension|get#field(lowered final self::Class* #this) → self::Class*
return #this.{self::Class::_field};
-static method Extension|set#field(final self::Class* #this, self::Class* value) → void {
+static method Extension|set#field(lowered final self::Class* #this, self::Class* value) → void {
#this.{self::Class::_field} = value;
}
-static method Extension|method(final self::Class* #this) → self::Class*
+static method Extension|method(lowered final self::Class* #this) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|get#method(final self::Class* #this) → () →* self::Class*
+static method Extension|get#method(lowered final self::Class* #this) → () →* self::Class*
return () → self::Class* => self::Extension|method(#this);
-static method Extension|[](final self::Class* #this, self::Class* key) → self::Class*
+static method Extension|[](lowered final self::Class* #this, self::Class* key) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|[]=(final self::Class* #this, self::Class* key, self::Class* value) → void {
+static method Extension|[]=(lowered final self::Class* #this, self::Class* key, self::Class* value) → void {
self::Extension|set#field(#this, value);
}
-static method Extension|+(final self::Class* #this, core::int* value) → self::Class*
+static method Extension|+(lowered final self::Class* #this, core::int* value) → self::Class*
return self::Extension|get#field(#this);
-static method Extension|unary-(final self::Class* #this) → self::Class*
+static method Extension|unary-(lowered final self::Class* #this) → self::Class*
return self::Extension|get#field(#this);
static method main() → dynamic {
self::propertyAccess(null);
diff --git a/pkg/front_end/testcases/nnbd_mixed/nullable_extension_on_opt_out.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/nullable_extension_on_opt_out.dart.weak.expect
index 1752064..da4369b 100644
--- a/pkg/front_end/testcases/nnbd_mixed/nullable_extension_on_opt_out.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/nullable_extension_on_opt_out.dart.weak.expect
@@ -8,7 +8,7 @@
extension _extension#0 on nul::A? {
get text = self::_extension#0|get#text;
}
-static method _extension#0|get#text(final nul::A? #this) → core::String
+static method _extension#0|get#text(lowered final nul::A? #this) → core::String
return "Lily was here";
static method main() → void {
nul::A? a = null;
diff --git a/pkg/front_end/testcases/nnbd_mixed/nullable_extension_on_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/nullable_extension_on_opt_out.dart.weak.transformed.expect
index 1752064..da4369b 100644
--- a/pkg/front_end/testcases/nnbd_mixed/nullable_extension_on_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/nullable_extension_on_opt_out.dart.weak.transformed.expect
@@ -8,7 +8,7 @@
extension _extension#0 on nul::A? {
get text = self::_extension#0|get#text;
}
-static method _extension#0|get#text(final nul::A? #this) → core::String
+static method _extension#0|get#text(lowered final nul::A? #this) → core::String
return "Lily was here";
static method main() → void {
nul::A? a = null;
diff --git a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect
index 20bc8a1..0f9dd17 100644
--- a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect
@@ -112,9 +112,9 @@
return !null.{core::Object::==}(i);
static method ifNullOptOut(core::int* i) → dynamic
return let final core::int* #t6 = i in #t6.{core::num::==}(null) ?{core::int*} 42 : #t6;
-static method OptOutExtension|[](final self::OptOutClass1* #this, core::int* index) → core::int*
+static method OptOutExtension|[](lowered final self::OptOutClass1* #this, core::int* index) → core::int*
return index;
-static method OptOutExtension|[]=(final self::OptOutClass1* #this, core::int* index, core::int* value) → void {}
+static method OptOutExtension|[]=(lowered final self::OptOutClass1* #this, core::int* index, core::int* value) → void {}
static method extensionIfNullOptOut1(core::int* i) → dynamic
return let final self::OptOutClass1* #t7 = new self::OptOutClass1::•() in let final core::int* #t8 = i in let final core::int* #t9 = self::OptOutExtension|[](#t7, #t8) in #t9.{core::num::==}(null) ?{core::int*} let final core::int* #t10 = 42 in let final void #t11 = self::OptOutExtension|[]=(#t7, #t8, #t10) in #t10 : #t9;
static method extensionIfNullOptOut1ForEffect(core::int* i) → dynamic {
@@ -454,9 +454,9 @@
return !null.{core::Object::==}(i);
static method ifNullOptIn(core::int i) → dynamic
return let final core::int #t40 = i in #t40.{core::num::==}(null) ?{core::int} 42 : #t40;
-static method OptInExtension|[](final uns::OptInClass1 #this, core::int index) → core::int
+static method OptInExtension|[](lowered final uns::OptInClass1 #this, core::int index) → core::int
return index;
-static method OptInExtension|[]=(final uns::OptInClass1 #this, core::int index, core::int value) → void {}
+static method OptInExtension|[]=(lowered final uns::OptInClass1 #this, core::int index, core::int value) → void {}
static method extensionIfNullOptIn1(core::int i) → dynamic
return let final uns::OptInClass1 #t41 = new uns::OptInClass1::•() in let final core::int #t42 = i in let final core::int #t43 = uns::OptInExtension|[](#t41, #t42) in #t43.{core::num::==}(null) ?{core::int} let final core::int #t44 = 42 in let final void #t45 = uns::OptInExtension|[]=(#t41, #t42, #t44) in #t44 : #t43;
static method extensionIfNullOptIn1ForEffect(core::int i) → dynamic {
diff --git a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
index 272a76b..54fdabb 100644
--- a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
@@ -112,9 +112,9 @@
return !null.{core::Object::==}(i);
static method ifNullOptOut(core::int* i) → dynamic
return let final core::int* #t6 = i in #t6.{core::num::==}(null) ?{core::int*} 42 : #t6;
-static method OptOutExtension|[](final self::OptOutClass1* #this, core::int* index) → core::int*
+static method OptOutExtension|[](lowered final self::OptOutClass1* #this, core::int* index) → core::int*
return index;
-static method OptOutExtension|[]=(final self::OptOutClass1* #this, core::int* index, core::int* value) → void {}
+static method OptOutExtension|[]=(lowered final self::OptOutClass1* #this, core::int* index, core::int* value) → void {}
static method extensionIfNullOptOut1(core::int* i) → dynamic
return let final self::OptOutClass1* #t7 = new self::OptOutClass1::•() in let final core::int* #t8 = i in let final core::int* #t9 = self::OptOutExtension|[](#t7, #t8) in #t9.{core::num::==}(null) ?{core::int*} let final core::int* #t10 = 42 in let final void #t11 = self::OptOutExtension|[]=(#t7, #t8, #t10) in #t10 : #t9;
static method extensionIfNullOptOut1ForEffect(core::int* i) → dynamic {
@@ -454,9 +454,9 @@
return !null.{core::Object::==}(i);
static method ifNullOptIn(core::int i) → dynamic
return let final core::int #t40 = i in #t40.{core::num::==}(null) ?{core::int} 42 : #t40;
-static method OptInExtension|[](final uns::OptInClass1 #this, core::int index) → core::int
+static method OptInExtension|[](lowered final uns::OptInClass1 #this, core::int index) → core::int
return index;
-static method OptInExtension|[]=(final uns::OptInClass1 #this, core::int index, core::int value) → void {}
+static method OptInExtension|[]=(lowered final uns::OptInClass1 #this, core::int index, core::int value) → void {}
static method extensionIfNullOptIn1(core::int i) → dynamic
return let final uns::OptInClass1 #t41 = new uns::OptInClass1::•() in let final core::int #t42 = i in let final core::int #t43 = uns::OptInExtension|[](#t41, #t42) in #t43.{core::num::==}(null) ?{core::int} let final core::int #t44 = 42 in let final void #t45 = uns::OptInExtension|[]=(#t41, #t42, #t44) in #t44 : #t43;
static method extensionIfNullOptIn1ForEffect(core::int i) → dynamic {
diff --git a/pkg/kernel/binary.md b/pkg/kernel/binary.md
index 99a36f4..a93760a 100644
--- a/pkg/kernel/binary.md
+++ b/pkg/kernel/binary.md
@@ -147,7 +147,7 @@
type ComponentFile {
UInt32 magic = 0x90ABCDEF;
- UInt32 formatVersion = 51;
+ UInt32 formatVersion = 52;
Byte[10] shortSdkHash;
List<String> problemsAsJson; // Described in problems.md.
Library[] libraries;
@@ -1206,7 +1206,7 @@
List<Expression> annotations;
Byte flags (isFinal, isConst, isFieldFormal, isCovariant,
- isInScope, isGenericCovariantImpl, isLate, isRequired);
+ isGenericCovariantImpl, isLate, isRequired, isLowered);
// For named parameters, this is the parameter name.
// For other variables, the name is cosmetic, may be empty,
// and is not necessarily unique.
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index f3d8ace..41c88aa 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -7138,7 +7138,8 @@
bool isFieldFormal: false,
bool isCovariant: false,
bool isLate: false,
- bool isRequired: false}) {
+ bool isRequired: false,
+ bool isLowered: false}) {
assert(type != null);
initializer?.parent = this;
if (flags != -1) {
@@ -7150,6 +7151,7 @@
this.isCovariant = isCovariant;
this.isLate = isLate;
this.isRequired = isRequired;
+ this.isLowered = isLowered;
}
}
@@ -7160,6 +7162,7 @@
bool isFieldFormal: false,
bool isLate: false,
bool isRequired: false,
+ bool isLowered: false,
this.type: const DynamicType()}) {
assert(type != null);
initializer?.parent = this;
@@ -7168,16 +7171,17 @@
this.isFieldFormal = isFieldFormal;
this.isLate = isLate;
this.isRequired = isRequired;
+ this.isLowered = isLowered;
}
static const int FlagFinal = 1 << 0; // Must match serialized bit positions.
static const int FlagConst = 1 << 1;
static const int FlagFieldFormal = 1 << 2;
static const int FlagCovariant = 1 << 3;
- static const int FlagInScope = 1 << 4; // Temporary flag used by verifier.
- static const int FlagGenericCovariantImpl = 1 << 5;
- static const int FlagLate = 1 << 6;
- static const int FlagRequired = 1 << 7;
+ static const int FlagGenericCovariantImpl = 1 << 4;
+ static const int FlagLate = 1 << 5;
+ static const int FlagRequired = 1 << 6;
+ static const int FlagLowered = 1 << 7;
bool get isFinal => flags & FlagFinal != 0;
bool get isConst => flags & FlagConst != 0;
@@ -7210,6 +7214,16 @@
/// positional parameters and local variables.
bool get isRequired => flags & FlagRequired != 0;
+ /// Whether the variable is part of a lowering.
+ ///
+ /// If a variable is part of a lowering its name may be synthesized so that it
+ /// doesn't reflect the name used in the source code and might not have a
+ /// one-to-one correspondence with the variable in the source.
+ ///
+ /// Lowering is used for instance of encoding of 'this' in extension instance
+ /// members and encoding of late locals.
+ bool get isLowered => flags & FlagLowered != 0;
+
/// Whether the variable is assignable.
///
/// This is `true` if the variable is neither constant nor final, or if it
@@ -7254,6 +7268,10 @@
flags = value ? (flags | FlagRequired) : (flags & ~FlagRequired);
}
+ void set isLowered(bool value) {
+ flags = value ? (flags | FlagLowered) : (flags & ~FlagLowered);
+ }
+
void clearAnnotations() {
annotations = const <Expression>[];
}
diff --git a/pkg/kernel/lib/binary/tag.dart b/pkg/kernel/lib/binary/tag.dart
index 86522b9..5fa202a 100644
--- a/pkg/kernel/lib/binary/tag.dart
+++ b/pkg/kernel/lib/binary/tag.dart
@@ -146,7 +146,7 @@
/// Internal version of kernel binary format.
/// Bump it when making incompatible changes in kernel binaries.
/// Keep in sync with runtime/vm/kernel_binary.h, pkg/kernel/binary.md.
- static const int BinaryFormatVersion = 51;
+ static const int BinaryFormatVersion = 52;
}
abstract class ConstantTag {
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart
index 1bed6f2..b9d95ab 100644
--- a/pkg/kernel/lib/text/ast_to_text.dart
+++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -2051,6 +2051,7 @@
if (showOffsets) writeWord("[${node.fileOffset}]");
if (showMetadata) writeMetadata(node);
writeAnnotationList(node.annotations, separateLines: false);
+ writeModifier(node.isLowered, 'lowered');
writeModifier(node.isLate, 'late');
writeModifier(node.isRequired, 'required');
writeModifier(node.isCovariant, 'covariant');
diff --git a/pkg/kernel/lib/text/text_serializer.dart b/pkg/kernel/lib/text/text_serializer.dart
index b94afb4..a1c93ab 100644
--- a/pkg/kernel/lib/text/text_serializer.dart
+++ b/pkg/kernel/lib/text/text_serializer.dart
@@ -751,10 +751,10 @@
VariableDeclaration.FlagConst: "const",
VariableDeclaration.FlagFieldFormal: "field-formal",
VariableDeclaration.FlagCovariant: "covariant",
- VariableDeclaration.FlagInScope: "in-scope",
VariableDeclaration.FlagGenericCovariantImpl: "generic-covariant-impl",
VariableDeclaration.FlagLate: "late",
VariableDeclaration.FlagRequired: "required",
+ VariableDeclaration.FlagLowered: "lowered",
};
class VariableDeclarationFlagTagger implements Tagger<int> {
diff --git a/pkg/kernel/lib/verifier.dart b/pkg/kernel/lib/verifier.dart
index 5f0d085..0db1f2b 100644
--- a/pkg/kernel/lib/verifier.dart
+++ b/pkg/kernel/lib/verifier.dart
@@ -49,6 +49,8 @@
final Set<Class> classes = new Set<Class>();
final Set<Typedef> typedefs = new Set<Typedef>();
Set<TypeParameter> typeParametersInScope = new Set<TypeParameter>();
+ Set<VariableDeclaration> variableDeclarationsInScope =
+ new Set<VariableDeclaration>();
final List<VariableDeclaration> variableStack = <VariableDeclaration>[];
final Map<Typedef, TypedefState> typedefState = <Typedef, TypedefState>{};
final Set<Constant> seenConstants = <Constant>{};
@@ -162,15 +164,15 @@
}
void declareVariable(VariableDeclaration variable) {
- if (variable.flags & VariableDeclaration.FlagInScope != 0) {
+ if (variableDeclarationsInScope.contains(variable)) {
problem(variable, "Variable '$variable' declared more than once.");
}
- variable.flags |= VariableDeclaration.FlagInScope;
+ variableDeclarationsInScope.add(variable);
variableStack.add(variable);
}
void undeclareVariable(VariableDeclaration variable) {
- variable.flags &= ~VariableDeclaration.FlagInScope;
+ variableDeclarationsInScope.remove(variable);
}
void declareTypeParameters(List<TypeParameter> parameters) {
@@ -195,7 +197,7 @@
}
void checkVariableInScope(VariableDeclaration variable, TreeNode where) {
- if (variable.flags & VariableDeclaration.FlagInScope == 0) {
+ if (!variableDeclarationsInScope.contains(variable)) {
problem(where, "Variable '$variable' used out of scope.");
}
}
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc
index 7a8f7b8..d7f198e 100644
--- a/runtime/vm/compiler/aot/precompiler.cc
+++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -2116,6 +2116,8 @@
}
void Precompiler::DropMetadata() {
+ SafepointWriteRwLocker ml(T, T->isolate_group()->program_lock());
+
Library& lib = Library::Handle(Z);
for (intptr_t i = 0; i < libraries_.Length(); i++) {
lib ^= libraries_.At(i);
diff --git a/runtime/vm/compiler/frontend/constant_reader.cc b/runtime/vm/compiler/frontend/constant_reader.cc
index 6eb0a03..a8cb442 100644
--- a/runtime/vm/compiler/frontend/constant_reader.cc
+++ b/runtime/vm/compiler/frontend/constant_reader.cc
@@ -59,15 +59,15 @@
ObjectPtr ConstantReader::ReadAnnotations() {
intptr_t list_length = helper_->ReadListLength(); // read list length.
- const Array& metadata_values =
- Array::Handle(Z, Array::New(list_length, H.allocation_space()));
+ const auto& metadata_values =
+ Array::Handle(Z, ImmutableArray::New(list_length, H.allocation_space()));
Instance& value = Instance::Handle(Z);
for (intptr_t i = 0; i < list_length; ++i) {
// This will read the expression.
value = ReadConstantExpression();
metadata_values.SetAt(i, value);
}
- return metadata_values.raw();
+ return H.Canonicalize(metadata_values);
}
InstancePtr ConstantReader::ReadConstant(intptr_t constant_offset) {
diff --git a/runtime/vm/compiler/frontend/kernel_translation_helper.h b/runtime/vm/compiler/frontend/kernel_translation_helper.h
index b60884c2..36c8a5e 100644
--- a/runtime/vm/compiler/frontend/kernel_translation_helper.h
+++ b/runtime/vm/compiler/frontend/kernel_translation_helper.h
@@ -387,9 +387,10 @@
kFinal = 1 << 0,
kConst = 1 << 1,
kCovariant = 1 << 3,
- kIsGenericCovariantImpl = 1 << 5,
- kLate = 1 << 6,
- kRequired = 1 << 7,
+ kIsGenericCovariantImpl = 1 << 4,
+ kLate = 1 << 5,
+ kRequired = 1 << 6,
+ kLowered = 1 << 7,
};
explicit VariableDeclarationHelper(KernelReaderHelper* helper)
diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h
index a78c350..6c80aa5 100644
--- a/runtime/vm/compiler/recognized_methods_list.h
+++ b/runtime/vm/compiler/recognized_methods_list.h
@@ -17,8 +17,8 @@
V(Object, Object., ObjectConstructor, 0x89c467da) \
V(List, ., ListFactory, 0x1892cc51) \
V(_List, ., ObjectArrayAllocate, 0x4c9d39e2) \
- V(_List, []=, ObjectArraySetIndexed, 0xe98d0a9e) \
- V(_GrowableList, []=, GrowableArraySetIndexed, 0xe98d0a9e) \
+ V(_List, []=, ObjectArraySetIndexed, 0xa06ee8ae) \
+ V(_GrowableList, []=, GrowableArraySetIndexed, 0xa06ee8ae) \
V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 0x30688af4) \
V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 0x31c4acea) \
V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 0x4885450f) \
@@ -194,8 +194,8 @@
V(Pointer, get:address, FfiGetAddress, 0x55255ebc) \
V(::, reachabilityFence, ReachabilityFence, 0xde1dc5bd) \
V(_Utf8Decoder, _scan, Utf8DecoderScan, 0xb35ced99) \
- V(_Future, timeout, FutureTimeout, 0x39966bdf) \
- V(Future, wait, FutureWait, 0x9f3934e1) \
+ V(_Future, timeout, FutureTimeout, 0x6ad7d1ef) \
+ V(Future, wait, FutureWait, 0xb4396ca1) \
// List of intrinsics:
// (class-name, function-name, intrinsification method, fingerprint).
@@ -300,39 +300,39 @@
#define GRAPH_TYPED_DATA_INTRINSICS_LIST(V) \
V(_Int8List, [], Int8ArrayGetIndexed, 0x0cc3b782) \
- V(_Int8List, []=, Int8ArraySetIndexed, 0xb44a501b) \
+ V(_Int8List, []=, Int8ArraySetIndexed, 0xbbb0b00b) \
V(_Uint8List, [], Uint8ArrayGetIndexed, 0x723c3b42) \
- V(_Uint8List, []=, Uint8ArraySetIndexed, 0x00d95bdf) \
+ V(_Uint8List, []=, Uint8ArraySetIndexed, 0x083fbbcf) \
V(_ExternalUint8Array, [], ExternalUint8ArrayGetIndexed, 0x723c3b42) \
- V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 0x00d95bdf) \
+ V(_ExternalUint8Array, []=, ExternalUint8ArraySetIndexed, 0x083fbbcf) \
V(_Uint8ClampedList, [], Uint8ClampedArrayGetIndexed, 0x723c3b42) \
- V(_Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, 0xf6d9117f) \
+ V(_Uint8ClampedList, []=, Uint8ClampedArraySetIndexed, 0xfe3f716f) \
V(_ExternalUint8ClampedArray, [], ExternalUint8ClampedArrayGetIndexed, \
0x723c3b42) \
V(_ExternalUint8ClampedArray, []=, ExternalUint8ClampedArraySetIndexed, \
- 0xf6d9117f) \
+ 0xfe3f716f) \
V(_Int16List, [], Int16ArrayGetIndexed, 0xecc216e2) \
- V(_Int16List, []=, Int16ArraySetIndexed, 0x44ca13a6) \
+ V(_Int16List, []=, Int16ArraySetIndexed, 0x4c307396) \
V(_Uint16List, [], Uint16ArrayGetIndexed, 0xd09af2e2) \
- V(_Uint16List, []=, Uint16ArraySetIndexed, 0x2d0cbb1d) \
+ V(_Uint16List, []=, Uint16ArraySetIndexed, 0x34731b0d) \
V(_Int32List, [], Int32ArrayGetIndexed, 0xee5fbc81) \
- V(_Int32List, []=, Int32ArraySetIndexed, 0x22fe9045) \
+ V(_Int32List, []=, Int32ArraySetIndexed, 0x2a64f035) \
V(_Uint32List, [], Uint32ArrayGetIndexed, 0x3db22221) \
- V(_Uint32List, []=, Uint32ArraySetIndexed, 0x0ea204c5) \
+ V(_Uint32List, []=, Uint32ArraySetIndexed, 0x160864b5) \
V(_Int64List, [], Int64ArrayGetIndexed, 0x272816c1) \
- V(_Int64List, []=, Int64ArraySetIndexed, 0xeb40c2c3) \
+ V(_Int64List, []=, Int64ArraySetIndexed, 0x53c7e8d3) \
V(_Uint64List, [], Uint64ArrayGetIndexed, 0x63ec7c41) \
- V(_Uint64List, []=, Uint64ArraySetIndexed, 0xb6a233fb) \
+ V(_Uint64List, []=, Uint64ArraySetIndexed, 0x1f295a0b) \
V(_Float64List, [], Float64ArrayGetIndexed, 0x4a2c55fc) \
- V(_Float64List, []=, Float64ArraySetIndexed, 0x9f268215) \
+ V(_Float64List, []=, Float64ArraySetIndexed, 0x07ada825) \
V(_Float32List, [], Float32ArrayGetIndexed, 0x202a571c) \
- V(_Float32List, []=, Float32ArraySetIndexed, 0xfa74df43) \
+ V(_Float32List, []=, Float32ArraySetIndexed, 0x62fc0553) \
V(_Float32x4List, [], Float32x4ArrayGetIndexed, 0x96b1f063) \
- V(_Float32x4List, []=, Float32x4ArraySetIndexed, 0xe010721e) \
+ V(_Float32x4List, []=, Float32x4ArraySetIndexed, 0x4897982e) \
V(_Int32x4List, [], Int32x4ArrayGetIndexed, 0x9cc8b9ab) \
- V(_Int32x4List, []=, Int32x4ArraySetIndexed, 0x0a7fdb7e) \
+ V(_Int32x4List, []=, Int32x4ArraySetIndexed, 0x7307018e) \
V(_Float64x2List, [], Float64x2ArrayGetIndexed, 0x674f0479) \
- V(_Float64x2List, []=, Float64x2ArraySetIndexed, 0x0b505db2) \
+ V(_Float64x2List, []=, Float64x2ArraySetIndexed, 0x73d783c2) \
V(_TypedList, get:length, TypedListLength, 0x3097c769) \
V(_TypedListView, get:length, TypedListViewLength, 0x3097c769) \
V(_ByteDataView, get:length, ByteDataViewLength, 0x3097c769) \
@@ -352,7 +352,7 @@
#define GRAPH_CORE_INTRINSICS_LIST(V) \
V(_List, get:length, ObjectArrayLength, 0x3097c769) \
V(_List, [], ObjectArrayGetIndexed, 0x78f4f491) \
- V(_List, _setIndexed, ObjectArraySetIndexedUnchecked, 0x367abfe8) \
+ V(_List, _setIndexed, ObjectArraySetIndexedUnchecked, 0xf233cfd8) \
V(_ImmutableList, get:length, ImmutableArrayLength, 0x3097c769) \
V(_ImmutableList, [], ImmutableArrayGetIndexed, 0x78f4f491) \
V(_GrowableList, get:length, GrowableArrayLength, 0x3097c769) \
@@ -360,7 +360,7 @@
V(_GrowableList, _setData, GrowableArraySetData, 0x9388253f) \
V(_GrowableList, _setLength, GrowableArraySetLength, 0xba5d44fc) \
V(_GrowableList, [], GrowableArrayGetIndexed, 0x78f4f491) \
- V(_GrowableList, _setIndexed, GrowableArraySetIndexedUnchecked, 0xa1960d27) \
+ V(_GrowableList, _setIndexed, GrowableArraySetIndexedUnchecked, 0x5d4f1d17) \
V(_StringBase, get:length, StringBaseLength, 0x3097c769) \
V(_OneByteString, codeUnitAt, OneByteStringCodeUnitAt, 0x323db7d0) \
V(_TwoByteString, codeUnitAt, TwoByteStringCodeUnitAt, 0x323db7d0) \
diff --git a/runtime/vm/kernel_binary.h b/runtime/vm/kernel_binary.h
index 0805ac0..f547c0b 100644
--- a/runtime/vm/kernel_binary.h
+++ b/runtime/vm/kernel_binary.h
@@ -20,8 +20,8 @@
static const uint32_t kMagicProgramFile = 0x90ABCDEFu;
// Both version numbers are inclusive.
-static const uint32_t kMinSupportedKernelFormatVersion = 51;
-static const uint32_t kMaxSupportedKernelFormatVersion = 51;
+static const uint32_t kMinSupportedKernelFormatVersion = 52;
+static const uint32_t kMaxSupportedKernelFormatVersion = 52;
// Keep in sync with package:kernel/lib/binary/tag.dart
#define KERNEL_TAG_LIST(V) \
diff --git a/runtime/vm/kernel_loader.cc b/runtime/vm/kernel_loader.cc
index 878582b..f6fe2fa 100644
--- a/runtime/vm/kernel_loader.cc
+++ b/runtime/vm/kernel_loader.cc
@@ -771,6 +771,9 @@
}
void KernelLoader::LoadLibrary(const Library& library) {
+ // This will be invoked by VM bootstrapping code.
+ SafepointWriteRwLocker ml(thread_, thread_->isolate_group()->program_lock());
+
ASSERT(!library.Loaded());
const auto& uri = String::Handle(Z, library.url());
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 1347673..57ff8c6 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -11610,6 +11610,9 @@
#if defined(DART_PRECOMPILED_RUNTIME)
UNREACHABLE();
#else
+ Thread* thread = Thread::Current();
+ ASSERT(thread->isolate_group()->program_lock()->IsCurrentThreadWriter());
+
MetadataMap map(metadata());
map.UpdateOrInsert(declaration, Smi::Handle(Smi::New(kernel_offset)));
set_metadata(map.Release());
@@ -11623,16 +11626,21 @@
RELEASE_ASSERT(declaration.IsClass() || declaration.IsField() ||
declaration.IsFunction() || declaration.IsLibrary() ||
declaration.IsTypeParameter() || declaration.IsNamespace());
+
+ auto thread = Thread::Current();
+ auto zone = thread->zone();
+
if (declaration.IsLibrary()) {
// Ensure top-level class is loaded as it may contain annotations of
// a library.
- const auto& cls = Class::Handle(toplevel_class());
+ const auto& cls = Class::Handle(zone, toplevel_class());
if (!cls.IsNull()) {
cls.EnsureDeclarationLoaded();
}
}
- Object& value = Object::Handle();
+ Object& value = Object::Handle(zone);
{
+ SafepointReadRwLocker ml(thread, thread->isolate_group()->program_lock());
MetadataMap map(metadata());
value = map.GetOrNull(declaration);
set_metadata(map.Release());
@@ -11646,21 +11654,26 @@
ASSERT(value.IsArray());
return value.raw();
}
- intptr_t kernel_offset = Smi::Cast(value).Value();
+ const auto& smi_value = Smi::Cast(value);
+ intptr_t kernel_offset = smi_value.Value();
ASSERT(kernel_offset > 0);
- value = kernel::EvaluateMetadata(
- *this, kernel_offset,
- /* is_annotations_offset = */ declaration.IsLibrary() ||
- declaration.IsNamespace());
- if (value.IsArray() || value.IsNull()) {
- ASSERT(value.raw() != Object::empty_array().raw());
- if (!Compiler::IsBackgroundCompilation()) {
- MetadataMap map(metadata());
- map.UpdateOrInsert(declaration, value);
- set_metadata(map.Release());
+ const auto& evaluated_value = Object::Handle(
+ zone, kernel::EvaluateMetadata(
+ *this, kernel_offset,
+ /* is_annotations_offset = */ declaration.IsLibrary() ||
+ declaration.IsNamespace()));
+ if (evaluated_value.IsArray() || evaluated_value.IsNull()) {
+ ASSERT(evaluated_value.raw() != Object::empty_array().raw());
+ SafepointWriteRwLocker ml(thread, thread->isolate_group()->program_lock());
+ MetadataMap map(metadata());
+ if (map.GetOrNull(declaration) == smi_value.raw()) {
+ map.UpdateOrInsert(declaration, evaluated_value);
+ } else {
+ ASSERT(map.GetOrNull(declaration) == evaluated_value.raw());
}
+ set_metadata(map.Release());
}
- return value.raw();
+ return evaluated_value.raw();
#endif // defined(DART_PRECOMPILED_RUNTIME)
}
@@ -12332,7 +12345,11 @@
}
void Library::set_metadata(const Array& value) const {
- raw_ptr()->set_metadata(value.raw());
+ if (raw_ptr()->metadata() != value.raw()) {
+ DEBUG_ASSERT(
+ IsolateGroup::Current()->program_lock()->IsCurrentThreadWriter());
+ raw_ptr()->set_metadata(value.raw());
+ }
}
LibraryPtr Library::ImportLibraryAt(intptr_t index) const {
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 960f3f1..467e1b1 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -4963,7 +4963,11 @@
void set_flags(uint8_t flags) const;
bool HasExports() const;
ArrayPtr loaded_scripts() const { return raw_ptr()->loaded_scripts(); }
- ArrayPtr metadata() const { return raw_ptr()->metadata(); }
+ ArrayPtr metadata() const {
+ DEBUG_ASSERT(
+ IsolateGroup::Current()->program_lock()->IsCurrentThreadReader());
+ return raw_ptr()->metadata();
+ }
void set_metadata(const Array& value) const;
ArrayPtr dictionary() const { return raw_ptr()->dictionary(); }
void InitClassDictionary() const;
diff --git a/runtime/vm/os_fuchsia.cc b/runtime/vm/os_fuchsia.cc
index 0a9ffa1..e79827b 100644
--- a/runtime/vm/os_fuchsia.cc
+++ b/runtime/vm/os_fuchsia.cc
@@ -23,6 +23,7 @@
#include <zircon/syscalls.h>
#include <zircon/syscalls/object.h>
#include <zircon/time.h>
+#include <zircon/threads.h>
#include <zircon/types.h>
#include "platform/assert.h"
@@ -216,9 +217,11 @@
}
int64_t OS::GetCurrentThreadCPUMicros() {
- zx_time_t now = 0;
- zx_clock_get(ZX_CLOCK_THREAD, &now);
- return now / kNanosecondsPerMicrosecond;
+ zx_info_thread_stats_t info = {};
+ zx_status_t status = zx_object_get_info(thrd_get_zx_handle(thrd_current()),
+ ZX_INFO_THREAD_STATS, &info,
+ sizeof(info), nullptr, nullptr);
+ return status == ZX_OK ? info.total_runtime / kNanosecondsPerMicrosecond : 0;
}
// On Fuchsia, thread timestamp values are not used in the tracing/timeline
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index 1fe42fe..3208f10 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -49,7 +49,7 @@
LibTest/core/int/operator_truncating_division_A01_t02: SkipByDesign # Division by zero is not an error in JavaScript
LibTest/core/int/parse_A01_t02: SkipByDesign # big integers cannot be represented in JavaScript
LibTest/core/int/remainder_A01_t03: SkipByDesign # Division by zero is not an error in JavaScript
-LibTest/html/HttpRequest/*: Skip # https://github.com/dart-lang/co19/issues/932
+LibTest/html/HttpRequest/responseText_A01_t02: Skip # https://github.com/dart-lang/co19/issues/932
LibTest/html/HttpRequestUpload/*: Skip # https://github.com/dart-lang/co19/issues/932
LibTest/io/*: SkipByDesign # dart:io not supported.
LibTest/isolate/*: SkipByDesign # dart:isolate not supported.
diff --git a/tests/co19/co19-dartdevc.status b/tests/co19/co19-dartdevc.status
index 50a7573..776d905 100644
--- a/tests/co19/co19-dartdevc.status
+++ b/tests/co19/co19-dartdevc.status
@@ -85,7 +85,7 @@
LibTest/core/int/remainder_A01_t03: SkipByDesign # Division by zero is not an error in JavaScript
LibTest/html/Element/blur_A01_t01: Skip # Times out
LibTest/html/Element/focus_A01_t01: Skip # Times out
-LibTest/html/HttpRequest/*: Skip # https://github.com/dart-lang/co19/issues/932
+LibTest/html/HttpRequest/responseText_A01_t02: Skip # https://github.com/dart-lang/co19/issues/932
LibTest/html/HttpRequestUpload/*: Skip # https://github.com/dart-lang/co19/issues/932
LibTest/html/IFrameElement/blur_A01_t01: Skip # Times out
LibTest/html/IFrameElement/focus_A01_t01: Skip # Times out
diff --git a/tools/VERSION b/tools/VERSION
index 679ae2d..8594b2d 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 12
PATCH 0
-PRERELEASE 132
+PRERELEASE 133
PRERELEASE_PATCH 0
\ No newline at end of file