[cfe] Add FileUriConstantExpression This adds FileUriConstantExpression, a subclass of ConstantExpression, to support correct file offset of annotations for augmentations and patches. The FileUriExpression is used to carry the file uri of the expression before constant evaluation. TEST=general/patch_annotations Change-Id: I0dc8a0cb97dd530fd1960785d38c2d5e4883c3dd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/311660 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jens Johansen <jensj@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com>
diff --git a/pkg/front_end/lib/src/fasta/builder/metadata_builder.dart b/pkg/front_end/lib/src/fasta/builder/metadata_builder.dart index f0e52a4..20a0b7e 100644 --- a/pkg/front_end/lib/src/fasta/builder/metadata_builder.dart +++ b/pkg/front_end/lib/src/fasta/builder/metadata_builder.dart
@@ -25,15 +25,22 @@ BodyBuilderContext bodyBuilderContext, SourceLibraryBuilder library, Uri fileUri, - Scope scope) { + Scope scope, + {bool createFileUriExpression = false}) { if (metadata == null) return; BodyBuilder bodyBuilder = library.loader .createBodyBuilderForOutlineExpression( library, bodyBuilderContext, scope, fileUri); for (int i = 0; i < metadata.length; ++i) { MetadataBuilder annotationBuilder = metadata[i]; - parent.addAnnotation( - bodyBuilder.parseAnnotation(annotationBuilder.beginToken)); + Expression annotation = + bodyBuilder.parseAnnotation(annotationBuilder.beginToken); + if (createFileUriExpression) { + parent.addAnnotation(new FileUriExpression(annotation, fileUri) + ..fileOffset = annotationBuilder.beginToken.charOffset); + } else { + parent.addAnnotation(annotation); + } } bodyBuilder.inferAnnotations(parent, parent.annotations); bodyBuilder.performBacklogComputations(allowFurtherDelays: false);
diff --git a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart index 762a9c7..9cccf59 100644 --- a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart +++ b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
@@ -2225,9 +2225,15 @@ constant.expression is InvalidExpression) { return constant.expression; } - return new ConstantExpression( - constant, node.getStaticType(staticTypeContext)) - ..fileOffset = node.fileOffset; + ConstantExpression constantExpression = + new ConstantExpression(constant, node.getStaticType(staticTypeContext)) + ..fileOffset = node.fileOffset; + if (node is FileUriExpression) { + return new FileUriConstantExpression(constantExpression.constant, + type: constantExpression.type, fileUri: node.fileUri) + ..fileOffset = node.fileOffset; + } + return constantExpression; } bool shouldInline(Expression initializer) {
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_helper.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_helper.dart index 0d14819..b58a19c 100644 --- a/pkg/front_end/lib/src/fasta/kernel/kernel_helper.dart +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_helper.dart
@@ -301,37 +301,51 @@ } } +/// Removes [FileUriExpression] nodes for annotations whose file URI is +/// [annotatableFileUri], the file URI of the [annotatable]. +/// +/// This is an optimization to avoid unnecessary [FileUriConstantExpression] +/// nodes in the generated AST. +void adjustAnnotationFileUri(Annotatable annotatable, Uri annotatableFileUri) { + List<Expression> annotations = annotatable.annotations; + for (int i = 0; i < annotations.length; i++) { + Expression annotation = annotations[i]; + if (annotation is FileUriExpression && + annotation.fileUri == annotatableFileUri) { + annotations[i] = annotation.expression..parent = annotatable; + } + } +} + /// Copies properties, function parameters and body from the [patch] constructor /// to its [origin]. void finishConstructorPatch(Constructor origin, Constructor patch) { - // TODO(ahe): restore file-offset once we track both origin and patch file - // URIs. See https://github.com/dart-lang/sdk/issues/31579 origin.fileUri = patch.fileUri; origin.startFileOffset = patch.startFileOffset; origin.fileOffset = patch.fileOffset; origin.fileEndOffset = patch.fileEndOffset; - origin.annotations.forEach((m) => m.fileOffset = patch.fileOffset); origin.isExternal = patch.isExternal; origin.function = patch.function; origin.function.parent = origin; origin.initializers = patch.initializers; setParents(origin.initializers, origin); + + adjustAnnotationFileUri(origin, origin.fileUri); } /// Copies properties, function parameters and body from the [patch] procedure /// to its [origin]. void finishProcedurePatch(Procedure origin, Procedure patch) { - // TODO(ahe): restore file-offset once we track both origin and patch file - // URIs. See https://github.com/dart-lang/sdk/issues/31579 origin.fileUri = patch.fileUri; origin.fileStartOffset = patch.fileStartOffset; origin.fileOffset = patch.fileOffset; origin.fileEndOffset = patch.fileEndOffset; - origin.annotations.forEach((m) => m.fileOffset = patch.fileOffset); origin.isAbstract = patch.isAbstract; origin.isExternal = patch.isExternal; origin.function = patch.function; origin.function.parent = origin; + + adjustAnnotationFileUri(origin, origin.fileUri); }
diff --git a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart index c60a2f6..e450ef3 100644 --- a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart +++ b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
@@ -372,7 +372,8 @@ } MetadataBuilder.buildAnnotations(isPatch ? origin.cls : cls, metadata, - bodyBuilderContext, libraryBuilder, fileUri, libraryBuilder.scope); + bodyBuilderContext, libraryBuilder, fileUri, libraryBuilder.scope, + createFileUriExpression: isPatch); if (typeVariables != null) { for (int i = 0; i < typeVariables!.length; i++) { typeVariables![i].buildOutlineExpressions( @@ -1116,11 +1117,7 @@ } int buildBodyNodes() { - // TODO(ahe): restore file-offset once we track both origin and patch file - // URIs. See https://github.com/dart-lang/sdk/issues/31579 - if (isPatch) { - cls.annotations.forEach((m) => m.fileOffset = origin.cls.fileOffset); - } + adjustAnnotationFileUri(cls, cls.fileUri); int count = 0;
diff --git a/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart b/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart index 7754922..b7b38d7 100644 --- a/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart +++ b/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart
@@ -932,6 +932,15 @@ // TODO(johnniwinther): Add annotations to tear-offs. @override Iterable<Annotatable> get annotatables => [constructor]; + + @override + bool get isAugmented { + if (isPatch) { + return origin._patches!.last != this; + } else { + return _patches != null; + } + } } class SyntheticSourceConstructorBuilder extends DillConstructorBuilder @@ -1293,6 +1302,9 @@ // TODO(johnniwinther): Add annotations to tear-offs. @override Iterable<Annotatable> get annotatables => [_constructor]; + + @override + bool get isAugmented => false; } class InlineClassInitializerToStatementConverter
diff --git a/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart b/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart index c32bcc2..c82006b 100644 --- a/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart +++ b/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart
@@ -321,6 +321,15 @@ // TODO(johnniwinther): Add annotations to tear-offs. @override Iterable<Annotatable> get annotatables => [_procedure]; + + @override + bool get isAugmented { + if (isPatch) { + return origin._patches!.last != this; + } else { + return _patches != null; + } + } } class RedirectingFactoryBuilder extends SourceFactoryBuilder {
diff --git a/pkg/front_end/lib/src/fasta/source/source_function_builder.dart b/pkg/front_end/lib/src/fasta/source/source_function_builder.dart index 714546d..a38e589 100644 --- a/pkg/front_end/lib/src/fasta/source/source_function_builder.dart +++ b/pkg/front_end/lib/src/fasta/source/source_function_builder.dart
@@ -206,6 +206,10 @@ @override bool get isAssignable => false; + /// Returns `true` if this member is augmented, either by being the origin + /// of a augmented member or by not being the last among augmentations. + bool get isAugmented; + @override Scope computeFormalParameterScope(Scope parent) { if (formals == null) return parent; @@ -479,7 +483,8 @@ classOrExtensionBuilder?.scope ?? libraryBuilder.scope; for (Annotatable annotatable in annotatables) { MetadataBuilder.buildAnnotations(annotatable, metadata, - bodyBuilderContext, libraryBuilder, fileUri, parentScope); + bodyBuilderContext, libraryBuilder, fileUri, parentScope, + createFileUriExpression: isAugmented); } if (typeVariables != null) { for (int i = 0; i < typeVariables!.length; i++) {
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 9303c97..56890d3 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
@@ -3343,7 +3343,8 @@ } MetadataBuilder.buildAnnotations( - library, metadata, bodyBuilderContext, this, fileUri, scope); + library, metadata, bodyBuilderContext, this, fileUri, scope, + createFileUriExpression: isPatch); Iterator<Builder> iterator = localMembersIterator; while (iterator.moveNext()) {
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart index acafdb2..490ca6c 100644 --- a/pkg/front_end/lib/src/fasta/source/source_loader.dart +++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -933,6 +933,8 @@ // and the VM does not support that. Also, what would, for instance, // setting a breakpoint on line 42 of some import uri mean, if the uri // represented several files? + // TODO(johnniwinther): Replace this with something that supports + // augmentation libraries. List<String> newPathSegments = new List<String>.of(importUri.pathSegments); newPathSegments.add(libraryBuilder.fileUri.pathSegments.last);
diff --git a/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart b/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart index b29dd2f..a2332f2 100644 --- a/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart +++ b/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart
@@ -640,6 +640,15 @@ // TODO(johnniwinther): Add annotations to tear-offs. @override Iterable<Annotatable> get annotatables => [procedure]; + + @override + bool get isAugmented { + if (isPatch) { + return origin._patches!.last != this; + } else { + return _patches != null; + } + } } class SourceProcedureMember extends BuilderClassMember {
diff --git a/pkg/front_end/lib/src/fasta/type_inference/inference_visitor.dart b/pkg/front_end/lib/src/fasta/type_inference/inference_visitor.dart index 03d8708..a6fa9d1 100644 --- a/pkg/front_end/lib/src/fasta/type_inference/inference_visitor.dart +++ b/pkg/front_end/lib/src/fasta/type_inference/inference_visitor.dart
@@ -526,7 +526,10 @@ @override ExpressionInferenceResult visitFileUriExpression( FileUriExpression node, DartType typeContext) { - return _unhandledExpression(node, typeContext); + ExpressionInferenceResult result = + inferExpression(node.expression, typeContext); + node.expression = result.expression..parent = node; + return new ExpressionInferenceResult(result.inferredType, node); } @override
diff --git a/pkg/front_end/test/utils/kernel_chain.dart b/pkg/front_end/test/utils/kernel_chain.dart index 871318c..1e265d6 100644 --- a/pkg/front_end/test/utils/kernel_chain.dart +++ b/pkg/front_end/test/utils/kernel_chain.dart
@@ -518,6 +518,7 @@ } bool isUserLibraryImportUri(Uri? importUri) { + // TODO(johnniwinther): Support patch libraries user libraries. return userLibraries.contains(importUri); }
diff --git a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.expect b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.expect index 93ce634..ff5639b 100644 --- a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.expect +++ b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.expect
@@ -29,7 +29,7 @@ typedef Alias<T extends core::num> = test::Class<T>; typedef AliasImpl<T extends core::num> = test::ClassImpl<T>; -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class Class<T extends core::Object? = dynamic> extends core::Object { @#C13 constructor •({core::bool defaultValue = #C14, required test::Class::T% value = #C15}) → test::Class<test::Class::T%> @@ -54,7 +54,7 @@ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect2#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#redirect2#tearOff::T% value = #C15}) → test::Class<test::Class::_#redirect2#tearOff::T%> return new test::ClassImpl::patched<test::Class::_#redirect2#tearOff::T%>(defaultValue: defaultValue, value: value); } -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements test::Class<test::ClassImpl::T%> { constructor •({core::bool defaultValue = #C14, required test::ClassImpl::T% value = #C15}) → test::ClassImpl<test::ClassImpl::T%> : super core::Object::•()
diff --git a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.expect b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.expect index 93ce634..ff5639b 100644 --- a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.expect +++ b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.expect
@@ -29,7 +29,7 @@ typedef Alias<T extends core::num> = test::Class<T>; typedef AliasImpl<T extends core::num> = test::ClassImpl<T>; -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class Class<T extends core::Object? = dynamic> extends core::Object { @#C13 constructor •({core::bool defaultValue = #C14, required test::Class::T% value = #C15}) → test::Class<test::Class::T%> @@ -54,7 +54,7 @@ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect2#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#redirect2#tearOff::T% value = #C15}) → test::Class<test::Class::_#redirect2#tearOff::T%> return new test::ClassImpl::patched<test::Class::_#redirect2#tearOff::T%>(defaultValue: defaultValue, value: value); } -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements test::Class<test::ClassImpl::T%> { constructor •({core::bool defaultValue = #C14, required test::ClassImpl::T% value = #C15}) → test::ClassImpl<test::ClassImpl::T%> : super core::Object::•()
diff --git a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.modular.expect b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.modular.expect index 93ce634..ff5639b 100644 --- a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.modular.expect
@@ -29,7 +29,7 @@ typedef Alias<T extends core::num> = test::Class<T>; typedef AliasImpl<T extends core::num> = test::ClassImpl<T>; -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class Class<T extends core::Object? = dynamic> extends core::Object { @#C13 constructor •({core::bool defaultValue = #C14, required test::Class::T% value = #C15}) → test::Class<test::Class::T%> @@ -54,7 +54,7 @@ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect2#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#redirect2#tearOff::T% value = #C15}) → test::Class<test::Class::_#redirect2#tearOff::T%> return new test::ClassImpl::patched<test::Class::_#redirect2#tearOff::T%>(defaultValue: defaultValue, value: value); } -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements test::Class<test::ClassImpl::T%> { constructor •({core::bool defaultValue = #C14, required test::ClassImpl::T% value = #C15}) → test::ClassImpl<test::ClassImpl::T%> : super core::Object::•()
diff --git a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.outline.expect b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.outline.expect index a7e481e..2a40210 100644 --- a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.weak.outline.expect
@@ -62,11 +62,11 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:6:46 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:8 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:27 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:12:21 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:15:10 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:18:36 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:27:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:19:45 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 49, effectively constant: 7
diff --git a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.expect b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.expect index c492c25..742c6c5 100644 --- a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.expect +++ b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.expect
@@ -15,7 +15,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */; const constructor _internal({core::bool defaultValue = #C2}) → test::Class
diff --git a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.expect b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.expect index c492c25..742c6c5 100644 --- a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.expect +++ b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.expect
@@ -15,7 +15,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */; const constructor _internal({core::bool defaultValue = #C2}) → test::Class
diff --git a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.modular.expect b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.modular.expect index c492c25..742c6c5 100644 --- a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.modular.expect
@@ -15,7 +15,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */; const constructor _internal({core::bool defaultValue = #C2}) → test::Class
diff --git a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.outline.expect b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.outline.expect index 2d35f60..c309efe 100644 --- a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.weak.outline.expect
@@ -33,7 +33,7 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:6:49 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:26 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 10, effectively constant: 3
diff --git a/pkg/front_end/testcases/general/constructor_patch/main.dart.strong.expect b/pkg/front_end/testcases/general/constructor_patch/main.dart.strong.expect index 515ddfb..bbbf1ec 100644 --- a/pkg/front_end/testcases/general/constructor_patch/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/constructor_patch/main.dart.strong.expect
@@ -35,7 +35,7 @@ import "dart:_internal"; -@#C3 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C3 class Class extends core::Object /*hasConstConstructor*/ { final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */; constructor _privateInjected() → test::Class @@ -60,7 +60,7 @@ : test::Class::defaultValue = true, super core::Object::•() ; } -@#C3 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C3 class Class2 extends core::Object { final field core::int injectedField /* from org-dartlang-testcase:///patch_lib.dart */; field core::int field;
diff --git a/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.expect b/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.expect index 515ddfb..bbbf1ec 100644 --- a/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.expect
@@ -35,7 +35,7 @@ import "dart:_internal"; -@#C3 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C3 class Class extends core::Object /*hasConstConstructor*/ { final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */; constructor _privateInjected() → test::Class @@ -60,7 +60,7 @@ : test::Class::defaultValue = true, super core::Object::•() ; } -@#C3 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C3 class Class2 extends core::Object { final field core::int injectedField /* from org-dartlang-testcase:///patch_lib.dart */; field core::int field;
diff --git a/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.modular.expect index 515ddfb..bbbf1ec 100644 --- a/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.modular.expect
@@ -35,7 +35,7 @@ import "dart:_internal"; -@#C3 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C3 class Class extends core::Object /*hasConstConstructor*/ { final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */; constructor _privateInjected() → test::Class @@ -60,7 +60,7 @@ : test::Class::defaultValue = true, super core::Object::•() ; } -@#C3 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C3 class Class2 extends core::Object { final field core::int injectedField /* from org-dartlang-testcase:///patch_lib.dart */; field core::int field;
diff --git a/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.outline.expect index c802b90..a591faf 100644 --- a/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/constructor_patch/main.dart.weak.outline.expect
@@ -51,10 +51,10 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:6:49 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:43 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:16:9 -> InstanceConstant(const _Patch{}) +Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:15:4 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:17:8 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:24:60 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:28:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 7, effectively constant: 6
diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.expect index 4491cff..55092a2 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.expect
@@ -23,7 +23,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */; const constructor _internal({core::bool defaultValue = #C2}) → test::Class
diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.expect index 4491cff..55092a2 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.expect
@@ -23,7 +23,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */; const constructor _internal({core::bool defaultValue = #C2}) → test::Class
diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.modular.expect index 4491cff..55092a2 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.modular.expect
@@ -23,7 +23,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */; const constructor _internal({core::bool defaultValue = #C2}) → test::Class
diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.outline.expect index 4eacaec..b175e2a 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.outline.expect
@@ -30,8 +30,8 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:6:49 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:26 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:22:17 -> InstanceConstant(const _Patch{}) +Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:21:4 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 7, effectively constant: 4
diff --git a/pkg/front_end/testcases/general/inject_private_patch/main.dart.strong.expect b/pkg/front_end/testcases/general/inject_private_patch/main.dart.strong.expect index 689f23c..0b8dfde 100644 --- a/pkg/front_end/testcases/general/inject_private_patch/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/inject_private_patch/main.dart.strong.expect
@@ -48,8 +48,8 @@ import "dart:_internal"; import "dart:_internal"; -@#C1 -@#C1 +@/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class extends core::Object { synthetic constructor •() → self2::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.expect b/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.expect index 689f23c..0b8dfde 100644 --- a/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.expect
@@ -48,8 +48,8 @@ import "dart:_internal"; import "dart:_internal"; -@#C1 -@#C1 +@/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class extends core::Object { synthetic constructor •() → self2::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.modular.expect index 689f23c..0b8dfde 100644 --- a/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.modular.expect
@@ -48,8 +48,8 @@ import "dart:_internal"; import "dart:_internal"; -@#C1 -@#C1 +@/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class extends core::Object { synthetic constructor •() → self2::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.outline.expect index e053383..c687cc2 100644 --- a/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/inject_private_patch/main.dart.weak.outline.expect
@@ -88,6 +88,6 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:8 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:8 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib1.dart:8:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib2.dart:8:1 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 2, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/inject_public/main.dart.strong.expect b/pkg/front_end/testcases/general/inject_public/main.dart.strong.expect index 59234de..46edd73 100644 --- a/pkg/front_end/testcases/general/inject_public/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/inject_public/main.dart.strong.expect
@@ -38,7 +38,7 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/inject_public/main.dart.weak.expect b/pkg/front_end/testcases/general/inject_public/main.dart.weak.expect index 59234de..46edd73 100644 --- a/pkg/front_end/testcases/general/inject_public/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/inject_public/main.dart.weak.expect
@@ -38,7 +38,7 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/inject_public/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/inject_public/main.dart.weak.modular.expect index 59234de..46edd73 100644 --- a/pkg/front_end/testcases/general/inject_public/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/inject_public/main.dart.weak.modular.expect
@@ -38,7 +38,7 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/inject_public/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/inject_public/main.dart.weak.outline.expect index ecc25eb..f5b52c8 100644 --- a/pkg/front_end/testcases/general/inject_public/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/inject_public/main.dart.weak.outline.expect
@@ -44,5 +44,5 @@ Extra constant evaluation status: -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:12:1 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 1, effectively constant: 1
diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.strong.expect b/pkg/front_end/testcases/general/issue45101/main.dart.strong.expect index 550491b..375479e 100644 --- a/pkg/front_end/testcases/general/issue45101/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue45101/main.dart.strong.expect
@@ -18,8 +18,8 @@ : self2::_ArraySize::foo = foo, super core::Object::•() ; } -@#C1 -@#C4 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C4 class Array<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>(core::int foo) → self2::Array<self2::Array::•::T%> /* redirection-target: self2::_ArraySize::•<self2::Array::•::T%>*/ @@ -32,9 +32,3 @@ #C3 = null #C4 = core::pragma {name:#C2, options:#C3} } - - -Constructor coverage from constants: -org-dartlang-testcase:///origin_lib.dart: -- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) -- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue45101/main.dart.strong.transformed.expect index 550491b..c8d2f42 100644 --- a/pkg/front_end/testcases/general/issue45101/main.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue45101/main.dart.strong.transformed.expect
@@ -32,9 +32,3 @@ #C3 = null #C4 = core::pragma {name:#C2, options:#C3} } - - -Constructor coverage from constants: -org-dartlang-testcase:///origin_lib.dart: -- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) -- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect b/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect index 550491b..375479e 100644 --- a/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect
@@ -18,8 +18,8 @@ : self2::_ArraySize::foo = foo, super core::Object::•() ; } -@#C1 -@#C4 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C4 class Array<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>(core::int foo) → self2::Array<self2::Array::•::T%> /* redirection-target: self2::_ArraySize::•<self2::Array::•::T%>*/ @@ -32,9 +32,3 @@ #C3 = null #C4 = core::pragma {name:#C2, options:#C3} } - - -Constructor coverage from constants: -org-dartlang-testcase:///origin_lib.dart: -- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) -- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue45101/main.dart.weak.modular.expect index 550491b..375479e 100644 --- a/pkg/front_end/testcases/general/issue45101/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue45101/main.dart.weak.modular.expect
@@ -18,8 +18,8 @@ : self2::_ArraySize::foo = foo, super core::Object::•() ; } -@#C1 -@#C4 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C4 class Array<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>(core::int foo) → self2::Array<self2::Array::•::T%> /* redirection-target: self2::_ArraySize::•<self2::Array::•::T%>*/ @@ -32,9 +32,3 @@ #C3 = null #C4 = core::pragma {name:#C2, options:#C3} } - - -Constructor coverage from constants: -org-dartlang-testcase:///origin_lib.dart: -- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) -- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue45101/main.dart.weak.outline.expect index 09219cb..cce9288 100644 --- a/pkg/front_end/testcases/general/issue45101/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue45101/main.dart.weak.outline.expect
@@ -20,7 +20,7 @@ ; } @_in::patch -@core::pragma::_("vm:entry-point") +@const core::pragma::_("vm:entry-point") class Array<T extends core::Object? = dynamic> extends core::Object { @_in::patch static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>(core::int foo) → self2::Array<self2::Array::•::T%> /* redirection-target: self2::_ArraySize::•<self2::Array::•::T%>*/ @@ -29,7 +29,7 @@ Extra constant evaluation status: -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) -Evaluated: ConstructorInvocation @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const pragma{pragma.name: "vm:entry-point", pragma.options: null}) -Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:14:17 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:9:1 -> InstanceConstant(const pragma{pragma.name: "vm:entry-point", pragma.options: null}) +Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:13:4 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 6, effectively constant: 3
diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect index 550491b..c8d2f42 100644 --- a/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect
@@ -32,9 +32,3 @@ #C3 = null #C4 = core::pragma {name:#C2, options:#C3} } - - -Constructor coverage from constants: -org-dartlang-testcase:///origin_lib.dart: -- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) -- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/mixin_from_patch/main.dart.strong.expect b/pkg/front_end/testcases/general/mixin_from_patch/main.dart.strong.expect index 3861b7f..f808d0d 100644 --- a/pkg/front_end/testcases/general/mixin_from_patch/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_from_patch/main.dart.strong.expect
@@ -18,7 +18,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { constructor _internal({core::bool value = #C2}) → test::Class : super core::Object::•() @@ -44,7 +44,7 @@ : super test::Class::_internal(value: value) ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class SubClass extends test::_SubClass&Class&Mixin { constructor _internal() → test::SubClass : super test::_SubClass&Class&Mixin::_internal(value: true)
diff --git a/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.expect b/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.expect index 3861b7f..f808d0d 100644 --- a/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.expect
@@ -18,7 +18,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { constructor _internal({core::bool value = #C2}) → test::Class : super core::Object::•() @@ -44,7 +44,7 @@ : super test::Class::_internal(value: value) ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class SubClass extends test::_SubClass&Class&Mixin { constructor _internal() → test::SubClass : super test::_SubClass&Class&Mixin::_internal(value: true)
diff --git a/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.modular.expect index 3861b7f..f808d0d 100644 --- a/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.modular.expect
@@ -18,7 +18,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { constructor _internal({core::bool value = #C2}) → test::Class : super core::Object::•() @@ -44,7 +44,7 @@ : super test::Class::_internal(value: value) ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class SubClass extends test::_SubClass&Class&Mixin { constructor _internal() → test::SubClass : super test::_SubClass&Class&Mixin::_internal(value: true)
diff --git a/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.outline.expect index ec56334..1bfb45f 100644 --- a/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_from_patch/main.dart.weak.outline.expect
@@ -47,8 +47,8 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:20 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:14:3 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:16:19 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:16:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 5, effectively constant: 4
diff --git a/pkg/front_end/testcases/general/multiple_class_patches/main.dart.strong.expect b/pkg/front_end/testcases/general/multiple_class_patches/main.dart.strong.expect index 6b27aa1..01334f2 100644 --- a/pkg/front_end/testcases/general/multiple_class_patches/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/multiple_class_patches/main.dart.strong.expect
@@ -25,8 +25,8 @@ import "dart:_internal"; import "dart:_internal"; -@#C1 -@#C1 +@/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•() @@ -37,7 +37,7 @@ @#C1 method /* from org-dartlang-testcase:///patch_lib2.dart */ method2() → core::int return 87; - @#C1 + @/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 @#C1 method /* from org-dartlang-testcase:///patch_lib2.dart */ method3() → core::int return 123;
diff --git a/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.expect b/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.expect index 6b27aa1..01334f2 100644 --- a/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.expect
@@ -25,8 +25,8 @@ import "dart:_internal"; import "dart:_internal"; -@#C1 -@#C1 +@/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•() @@ -37,7 +37,7 @@ @#C1 method /* from org-dartlang-testcase:///patch_lib2.dart */ method2() → core::int return 87; - @#C1 + @/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 @#C1 method /* from org-dartlang-testcase:///patch_lib2.dart */ method3() → core::int return 123;
diff --git a/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.modular.expect index 6b27aa1..01334f2 100644 --- a/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.modular.expect
@@ -25,8 +25,8 @@ import "dart:_internal"; import "dart:_internal"; -@#C1 -@#C1 +@/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•() @@ -37,7 +37,7 @@ @#C1 method /* from org-dartlang-testcase:///patch_lib2.dart */ method2() → core::int return 87; - @#C1 + @/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 @#C1 method /* from org-dartlang-testcase:///patch_lib2.dart */ method3() → core::int return 123;
diff --git a/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.outline.expect index 57d4e2a..8c172ea 100644 --- a/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/multiple_class_patches/main.dart.weak.outline.expect
@@ -32,10 +32,10 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:23 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:23 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib1.dart:8:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib2.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:20 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:20 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib1.dart:13:3 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 6, effectively constant: 6
diff --git a/pkg/front_end/testcases/general/nested_lib_spec/main.dart.strong.expect b/pkg/front_end/testcases/general/nested_lib_spec/main.dart.strong.expect index 20336b8..c834e45 100644 --- a/pkg/front_end/testcases/general/nested_lib_spec/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/nested_lib_spec/main.dart.strong.expect
@@ -33,7 +33,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•() @@ -47,7 +47,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///extra_patch_lib.dart */ #C1 class Extra extends core::Object { synthetic constructor •() → ext::Extra : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.expect b/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.expect index 20336b8..c834e45 100644 --- a/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.expect
@@ -33,7 +33,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•() @@ -47,7 +47,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///extra_patch_lib.dart */ #C1 class Extra extends core::Object { synthetic constructor •() → ext::Extra : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.modular.expect index 20336b8..c834e45 100644 --- a/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.modular.expect
@@ -33,7 +33,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•() @@ -47,7 +47,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///extra_patch_lib.dart */ #C1 class Extra extends core::Object { synthetic constructor •() → ext::Extra : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.outline.expect index d82856a..d70d895 100644 --- a/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/nested_lib_spec/main.dart.weak.outline.expect
@@ -85,6 +85,6 @@ Extra constant evaluation status: -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///extra_lib.dart) -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///extra_patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 2, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/patch_annotations/libraries.json b/pkg/front_end/testcases/general/patch_annotations/libraries.json new file mode 100644 index 0000000..6b6fc26 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/libraries.json
@@ -0,0 +1,13 @@ +{ + "none": { + "comment:0": "This adds to the default libraries found in the platform.", + "libraries": { + "test": { + "patches": [ + "patch_lib.dart" + ], + "uri": "origin_lib.dart" + } + } + } +}
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart b/pkg/front_end/testcases/general/patch_annotations/main.dart new file mode 100644 index 0000000..c0f0df1 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/main.dart
@@ -0,0 +1,7 @@ +// Copyright (c) 2023, 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. + +import 'dart:test'; + +main() {}
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.expect b/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.expect new file mode 100644 index 0000000..41ec652 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.expect
@@ -0,0 +1,62 @@ +library; +import self as self; + +import "dart:test"; + +static method main() → dynamic {} + +@/* from org-dartlang-testcase:///patch_lib.dart */ #C3 +@#C5 +library; +import self as self2; +import "dart:core" as core; +import "dart:_internal" as _in; + +import "dart:_internal"; + +@/* from org-dartlang-testcase:///patch_lib.dart */ #C6 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C8 +@#C10 +class Class<@#C12 @#C14 T extends core::Object? = dynamic> extends core::Object { + @#C6 + @#C16 + @/* from org-dartlang-testcase:///origin_lib.dart */ #C18 + external constructor •() → self2::Class<self2::Class::T%>; + @#C6 + @#C20 + @/* from org-dartlang-testcase:///origin_lib.dart */ #C22 + external method /* from org-dartlang-testcase:///patch_lib.dart */ method<@#C24 S extends core::Object? = dynamic>() → void; +} + +constants { + #C1 = "patch-library" + #C2 = null + #C3 = core::pragma {name:#C1, options:#C2} + #C4 = "origin-library" + #C5 = core::pragma {name:#C4, options:#C2} + #C6 = _in::_Patch {} + #C7 = "patch-class" + #C8 = core::pragma {name:#C7, options:#C2} + #C9 = "origin-class" + #C10 = core::pragma {name:#C9, options:#C2} + #C11 = "patch-class-type-variable" + #C12 = core::pragma {name:#C11, options:#C2} + #C13 = "origin-class-type-variable" + #C14 = core::pragma {name:#C13, options:#C2} + #C15 = "patch-constructor" + #C16 = core::pragma {name:#C15, options:#C2} + #C17 = "origin-constructor" + #C18 = core::pragma {name:#C17, options:#C2} + #C19 = "patch-procedure" + #C20 = core::pragma {name:#C19, options:#C2} + #C21 = "origin-procedure" + #C22 = core::pragma {name:#C21, options:#C2} + #C23 = "patch-method-type-variable" + #C24 = core::pragma {name:#C23, options:#C2} +} + + +Constructor coverage from constants: +org-dartlang-testcase:///origin_lib.dart: +- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) +- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.transformed.expect b/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.transformed.expect new file mode 100644 index 0000000..6f2b2a4 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/main.dart.strong.transformed.expect
@@ -0,0 +1,62 @@ +library; +import self as self; + +import "dart:test"; + +static method main() → dynamic {} + +@#C3 +@#C5 +library; +import self as self2; +import "dart:core" as core; +import "dart:_internal" as _in; + +import "dart:_internal"; + +@#C6 +@#C8 +@#C10 +class Class<@#C12 @#C14 T extends core::Object? = dynamic> extends core::Object { + @#C6 + @#C16 + @#C18 + external constructor •() → self2::Class<self2::Class::T%>; + @#C6 + @#C20 + @#C22 + external method /* from org-dartlang-testcase:///patch_lib.dart */ method<@#C24 S extends core::Object? = dynamic>() → void; +} + +constants { + #C1 = "patch-library" + #C2 = null + #C3 = core::pragma {name:#C1, options:#C2} + #C4 = "origin-library" + #C5 = core::pragma {name:#C4, options:#C2} + #C6 = _in::_Patch {} + #C7 = "patch-class" + #C8 = core::pragma {name:#C7, options:#C2} + #C9 = "origin-class" + #C10 = core::pragma {name:#C9, options:#C2} + #C11 = "patch-class-type-variable" + #C12 = core::pragma {name:#C11, options:#C2} + #C13 = "origin-class-type-variable" + #C14 = core::pragma {name:#C13, options:#C2} + #C15 = "patch-constructor" + #C16 = core::pragma {name:#C15, options:#C2} + #C17 = "origin-constructor" + #C18 = core::pragma {name:#C17, options:#C2} + #C19 = "patch-procedure" + #C20 = core::pragma {name:#C19, options:#C2} + #C21 = "origin-procedure" + #C22 = core::pragma {name:#C21, options:#C2} + #C23 = "patch-method-type-variable" + #C24 = core::pragma {name:#C23, options:#C2} +} + + +Constructor coverage from constants: +org-dartlang-testcase:///origin_lib.dart: +- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) +- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart.textual_outline.expect b/pkg/front_end/testcases/general/patch_annotations/main.dart.textual_outline.expect new file mode 100644 index 0000000..3c9c90e --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/main.dart.textual_outline.expect
@@ -0,0 +1,3 @@ +import 'dart:test'; + +main() {}
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/patch_annotations/main.dart.textual_outline_modelled.expect new file mode 100644 index 0000000..3c9c90e --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/main.dart.textual_outline_modelled.expect
@@ -0,0 +1,3 @@ +import 'dart:test'; + +main() {}
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.expect b/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.expect new file mode 100644 index 0000000..41ec652 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.expect
@@ -0,0 +1,62 @@ +library; +import self as self; + +import "dart:test"; + +static method main() → dynamic {} + +@/* from org-dartlang-testcase:///patch_lib.dart */ #C3 +@#C5 +library; +import self as self2; +import "dart:core" as core; +import "dart:_internal" as _in; + +import "dart:_internal"; + +@/* from org-dartlang-testcase:///patch_lib.dart */ #C6 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C8 +@#C10 +class Class<@#C12 @#C14 T extends core::Object? = dynamic> extends core::Object { + @#C6 + @#C16 + @/* from org-dartlang-testcase:///origin_lib.dart */ #C18 + external constructor •() → self2::Class<self2::Class::T%>; + @#C6 + @#C20 + @/* from org-dartlang-testcase:///origin_lib.dart */ #C22 + external method /* from org-dartlang-testcase:///patch_lib.dart */ method<@#C24 S extends core::Object? = dynamic>() → void; +} + +constants { + #C1 = "patch-library" + #C2 = null + #C3 = core::pragma {name:#C1, options:#C2} + #C4 = "origin-library" + #C5 = core::pragma {name:#C4, options:#C2} + #C6 = _in::_Patch {} + #C7 = "patch-class" + #C8 = core::pragma {name:#C7, options:#C2} + #C9 = "origin-class" + #C10 = core::pragma {name:#C9, options:#C2} + #C11 = "patch-class-type-variable" + #C12 = core::pragma {name:#C11, options:#C2} + #C13 = "origin-class-type-variable" + #C14 = core::pragma {name:#C13, options:#C2} + #C15 = "patch-constructor" + #C16 = core::pragma {name:#C15, options:#C2} + #C17 = "origin-constructor" + #C18 = core::pragma {name:#C17, options:#C2} + #C19 = "patch-procedure" + #C20 = core::pragma {name:#C19, options:#C2} + #C21 = "origin-procedure" + #C22 = core::pragma {name:#C21, options:#C2} + #C23 = "patch-method-type-variable" + #C24 = core::pragma {name:#C23, options:#C2} +} + + +Constructor coverage from constants: +org-dartlang-testcase:///origin_lib.dart: +- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) +- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.modular.expect new file mode 100644 index 0000000..41ec652 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.modular.expect
@@ -0,0 +1,62 @@ +library; +import self as self; + +import "dart:test"; + +static method main() → dynamic {} + +@/* from org-dartlang-testcase:///patch_lib.dart */ #C3 +@#C5 +library; +import self as self2; +import "dart:core" as core; +import "dart:_internal" as _in; + +import "dart:_internal"; + +@/* from org-dartlang-testcase:///patch_lib.dart */ #C6 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C8 +@#C10 +class Class<@#C12 @#C14 T extends core::Object? = dynamic> extends core::Object { + @#C6 + @#C16 + @/* from org-dartlang-testcase:///origin_lib.dart */ #C18 + external constructor •() → self2::Class<self2::Class::T%>; + @#C6 + @#C20 + @/* from org-dartlang-testcase:///origin_lib.dart */ #C22 + external method /* from org-dartlang-testcase:///patch_lib.dart */ method<@#C24 S extends core::Object? = dynamic>() → void; +} + +constants { + #C1 = "patch-library" + #C2 = null + #C3 = core::pragma {name:#C1, options:#C2} + #C4 = "origin-library" + #C5 = core::pragma {name:#C4, options:#C2} + #C6 = _in::_Patch {} + #C7 = "patch-class" + #C8 = core::pragma {name:#C7, options:#C2} + #C9 = "origin-class" + #C10 = core::pragma {name:#C9, options:#C2} + #C11 = "patch-class-type-variable" + #C12 = core::pragma {name:#C11, options:#C2} + #C13 = "origin-class-type-variable" + #C14 = core::pragma {name:#C13, options:#C2} + #C15 = "patch-constructor" + #C16 = core::pragma {name:#C15, options:#C2} + #C17 = "origin-constructor" + #C18 = core::pragma {name:#C17, options:#C2} + #C19 = "patch-procedure" + #C20 = core::pragma {name:#C19, options:#C2} + #C21 = "origin-procedure" + #C22 = core::pragma {name:#C21, options:#C2} + #C23 = "patch-method-type-variable" + #C24 = core::pragma {name:#C23, options:#C2} +} + + +Constructor coverage from constants: +org-dartlang-testcase:///origin_lib.dart: +- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) +- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.outline.expect new file mode 100644 index 0000000..72884c4 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.outline.expect
@@ -0,0 +1,48 @@ +library; +import self as self; + +import "dart:test"; + +static method main() → dynamic + ; + +@const dart.core::pragma::_("patch-library") +@dart.core::pragma::_("origin-library") +library; +import self as self2; +import "dart:core" as core; +import "dart:_internal" as _in; + +import "dart:_internal"; + +@_in::patch +@const core::pragma::_("patch-class") +@core::pragma::_("origin-class") +class Class<@core::pragma::_("patch-class-type-variable") @core::pragma::_("origin-class-type-variable") T extends core::Object? = dynamic> extends core::Object { + @_in::patch + @core::pragma::_("patch-constructor") + @const core::pragma::_("origin-constructor") + external constructor •() → self2::Class<self2::Class::T%>; + @_in::patch + @core::pragma::_("patch-procedure") + @const core::pragma::_("origin-procedure") + external method method<@core::pragma::_("origin-method-type-variable") S extends core::Object? = dynamic>() → void; +} + + +Extra constant evaluation status: +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:5:1 -> InstanceConstant(const pragma{pragma.name: "patch-library", pragma.options: null}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:5:2 -> InstanceConstant(const pragma{pragma.name: "origin-library", pragma.options: null}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:11:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:12:1 -> InstanceConstant(const pragma{pragma.name: "patch-class", pragma.options: null}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:8:2 -> InstanceConstant(const pragma{pragma.name: "origin-class", pragma.options: null}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:10:25 -> InstanceConstant(const pragma{pragma.name: "patch-class-type-variable", pragma.options: null}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:9:14 -> InstanceConstant(const pragma{pragma.name: "origin-class-type-variable", pragma.options: null}) +Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:13:16 -> InstanceConstant(const _Patch{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:13:25 -> InstanceConstant(const pragma{pragma.name: "patch-constructor", pragma.options: null}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///origin_lib.dart:10:3 -> InstanceConstant(const pragma{pragma.name: "origin-constructor", pragma.options: null}) +Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:14:47 -> InstanceConstant(const _Patch{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:14:56 -> InstanceConstant(const pragma{pragma.name: "patch-procedure", pragma.options: null}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///origin_lib.dart:13:3 -> InstanceConstant(const pragma{pragma.name: "origin-procedure", pragma.options: null}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///origin_lib.dart:14:25 -> InstanceConstant(const pragma{pragma.name: "origin-method-type-variable", pragma.options: null}) +Extra constant evaluation: evaluated: 14, effectively constant: 14
diff --git a/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.transformed.expect new file mode 100644 index 0000000..6f2b2a4 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/main.dart.weak.transformed.expect
@@ -0,0 +1,62 @@ +library; +import self as self; + +import "dart:test"; + +static method main() → dynamic {} + +@#C3 +@#C5 +library; +import self as self2; +import "dart:core" as core; +import "dart:_internal" as _in; + +import "dart:_internal"; + +@#C6 +@#C8 +@#C10 +class Class<@#C12 @#C14 T extends core::Object? = dynamic> extends core::Object { + @#C6 + @#C16 + @#C18 + external constructor •() → self2::Class<self2::Class::T%>; + @#C6 + @#C20 + @#C22 + external method /* from org-dartlang-testcase:///patch_lib.dart */ method<@#C24 S extends core::Object? = dynamic>() → void; +} + +constants { + #C1 = "patch-library" + #C2 = null + #C3 = core::pragma {name:#C1, options:#C2} + #C4 = "origin-library" + #C5 = core::pragma {name:#C4, options:#C2} + #C6 = _in::_Patch {} + #C7 = "patch-class" + #C8 = core::pragma {name:#C7, options:#C2} + #C9 = "origin-class" + #C10 = core::pragma {name:#C9, options:#C2} + #C11 = "patch-class-type-variable" + #C12 = core::pragma {name:#C11, options:#C2} + #C13 = "origin-class-type-variable" + #C14 = core::pragma {name:#C13, options:#C2} + #C15 = "patch-constructor" + #C16 = core::pragma {name:#C15, options:#C2} + #C17 = "origin-constructor" + #C18 = core::pragma {name:#C17, options:#C2} + #C19 = "patch-procedure" + #C20 = core::pragma {name:#C19, options:#C2} + #C21 = "origin-procedure" + #C22 = core::pragma {name:#C21, options:#C2} + #C23 = "patch-method-type-variable" + #C24 = core::pragma {name:#C23, options:#C2} +} + + +Constructor coverage from constants: +org-dartlang-testcase:///origin_lib.dart: +- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart) +- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/patch_annotations/origin_lib.dart b/pkg/front_end/testcases/general/patch_annotations/origin_lib.dart new file mode 100644 index 0000000..810a394 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/origin_lib.dart
@@ -0,0 +1,15 @@ +// Copyright (c) 2023, 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. + +@pragma('origin-library') +library; + +@pragma('origin-class') +class Class<@pragma('origin-class-type-variable') T> { + @pragma('origin-constructor') + external Class(); + + @pragma('origin-procedure') + external void method<@pragma('origin-method-type-variable') S>(); +}
diff --git a/pkg/front_end/testcases/general/patch_annotations/patch_lib.dart b/pkg/front_end/testcases/general/patch_annotations/patch_lib.dart new file mode 100644 index 0000000..717ed23 --- /dev/null +++ b/pkg/front_end/testcases/general/patch_annotations/patch_lib.dart
@@ -0,0 +1,21 @@ +// Copyright (c) 2023, 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. + +@pragma('patch-library') +library; + +// ignore: import_internal_library +import 'dart:_internal'; + +@patch +@pragma('patch-class') +class Class<@pragma('patch-class-type-variable') T> { + @patch + @pragma('patch-constructor') + external Class(); + + @patch + @pragma('patch-procedure') + external void method<@pragma('patch-method-type-variable') S>(); +}
diff --git a/pkg/front_end/testcases/general/patch_conflict/main.dart.strong.expect b/pkg/front_end/testcases/general/patch_conflict/main.dart.strong.expect index fd33f3f..93c0fff 100644 --- a/pkg/front_end/testcases/general/patch_conflict/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/patch_conflict/main.dart.strong.expect
@@ -96,7 +96,7 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { @#C1 constructor missingOriginConstructor() → self2::Class
diff --git a/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.expect b/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.expect index fd33f3f..93c0fff 100644 --- a/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.expect
@@ -96,7 +96,7 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { @#C1 constructor missingOriginConstructor() → self2::Class
diff --git a/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.modular.expect index fd33f3f..93c0fff 100644 --- a/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.modular.expect
@@ -96,7 +96,7 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { @#C1 constructor missingOriginConstructor() → self2::Class
diff --git a/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.outline.expect index c7784d6..60af488 100644 --- a/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/patch_conflict/main.dart.weak.outline.expect
@@ -129,7 +129,7 @@ Extra constant evaluation status: Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:24:2 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:37 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:10:4 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:15:4 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:27:2 -> InstanceConstant(const _Patch{})
diff --git a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.expect b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.expect index 3361083..4031b34 100644 --- a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.expect
@@ -118,37 +118,37 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 abstract class Class1a extends core::Object { synthetic constructor •() → test::Class1a : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class1b extends core::Object { synthetic constructor •() → test::Class1b : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class2a extends test::SuperClass { synthetic constructor •() → test::Class2a : super test::SuperClass::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class2b extends core::Object { synthetic constructor •() → test::Class2b : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class3a extends core::Object implements test::Interface { synthetic constructor •() → test::Class3a : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class3b extends core::Object { synthetic constructor •() → test::Class3b : super core::Object::•() @@ -159,31 +159,31 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class4a extends test::_Class4a&Object&Mixin { synthetic constructor •() → test::Class4a : super test::_Class4a&Object&Mixin::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class4b extends core::Object { synthetic constructor •() → test::Class4b : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5a extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5a /* redirection-target: test::Class5aImpl::• */ return new test::Class5aImpl::•(); } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5aImpl extends core::Object implements test::Class5a { synthetic constructor •() → test::Class5aImpl : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5b extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5b /* redirection-target: test::Class5bImpl::• */ @@ -193,13 +193,13 @@ factory Class5b() = Class5bImpl; ^"; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5bImpl extends core::Object { synthetic constructor •() → test::Class5bImpl : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5c extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5c /* redirection-target: test::Class5cImpl::• */ @@ -209,13 +209,13 @@ factory Class5c() = Class5cImpl; ^"; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5cImpl extends core::Object { synthetic constructor •() → test::Class5cImpl : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class6a<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6a::•::T%) → void f) → test::Class6a<test::Class6a::•::T%> /* redirection-target: test::_Class6aImpl::•<test::Class6a::•::T%>*/ @@ -225,13 +225,13 @@ factory Class6a(void Function(T) f) = _Class6aImpl<T>; ^"; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class6b<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6b::•::T%) → void f) → test::Class6b<test::Class6b::•::T%> /* redirection-target: test::_Class6bImpl::•<test::Class6b::•::T%>*/ return new test::_Class6bImpl::•<test::Class6b::•::T%>(f); } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class6c<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6c::•::T%) → void f) → test::Class6c<test::Class6c::•::T%> /* redirection-target: test::_Class6cImpl::•<test::Class6c::•::T%>*/
diff --git a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.expect b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.expect index 3361083..4031b34 100644 --- a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.expect
@@ -118,37 +118,37 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 abstract class Class1a extends core::Object { synthetic constructor •() → test::Class1a : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class1b extends core::Object { synthetic constructor •() → test::Class1b : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class2a extends test::SuperClass { synthetic constructor •() → test::Class2a : super test::SuperClass::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class2b extends core::Object { synthetic constructor •() → test::Class2b : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class3a extends core::Object implements test::Interface { synthetic constructor •() → test::Class3a : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class3b extends core::Object { synthetic constructor •() → test::Class3b : super core::Object::•() @@ -159,31 +159,31 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class4a extends test::_Class4a&Object&Mixin { synthetic constructor •() → test::Class4a : super test::_Class4a&Object&Mixin::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class4b extends core::Object { synthetic constructor •() → test::Class4b : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5a extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5a /* redirection-target: test::Class5aImpl::• */ return new test::Class5aImpl::•(); } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5aImpl extends core::Object implements test::Class5a { synthetic constructor •() → test::Class5aImpl : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5b extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5b /* redirection-target: test::Class5bImpl::• */ @@ -193,13 +193,13 @@ factory Class5b() = Class5bImpl; ^"; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5bImpl extends core::Object { synthetic constructor •() → test::Class5bImpl : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5c extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5c /* redirection-target: test::Class5cImpl::• */ @@ -209,13 +209,13 @@ factory Class5c() = Class5cImpl; ^"; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5cImpl extends core::Object { synthetic constructor •() → test::Class5cImpl : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class6a<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6a::•::T%) → void f) → test::Class6a<test::Class6a::•::T%> /* redirection-target: test::_Class6aImpl::•<test::Class6a::•::T%>*/ @@ -225,13 +225,13 @@ factory Class6a(void Function(T) f) = _Class6aImpl<T>; ^"; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class6b<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6b::•::T%) → void f) → test::Class6b<test::Class6b::•::T%> /* redirection-target: test::_Class6bImpl::•<test::Class6b::•::T%>*/ return new test::_Class6bImpl::•<test::Class6b::•::T%>(f); } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class6c<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6c::•::T%) → void f) → test::Class6c<test::Class6c::•::T%> /* redirection-target: test::_Class6cImpl::•<test::Class6c::•::T%>*/
diff --git a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.modular.expect index 3361083..4031b34 100644 --- a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.modular.expect
@@ -118,37 +118,37 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 abstract class Class1a extends core::Object { synthetic constructor •() → test::Class1a : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class1b extends core::Object { synthetic constructor •() → test::Class1b : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class2a extends test::SuperClass { synthetic constructor •() → test::Class2a : super test::SuperClass::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class2b extends core::Object { synthetic constructor •() → test::Class2b : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class3a extends core::Object implements test::Interface { synthetic constructor •() → test::Class3a : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class3b extends core::Object { synthetic constructor •() → test::Class3b : super core::Object::•() @@ -159,31 +159,31 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class4a extends test::_Class4a&Object&Mixin { synthetic constructor •() → test::Class4a : super test::_Class4a&Object&Mixin::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class4b extends core::Object { synthetic constructor •() → test::Class4b : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5a extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5a /* redirection-target: test::Class5aImpl::• */ return new test::Class5aImpl::•(); } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5aImpl extends core::Object implements test::Class5a { synthetic constructor •() → test::Class5aImpl : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5b extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5b /* redirection-target: test::Class5bImpl::• */ @@ -193,13 +193,13 @@ factory Class5b() = Class5bImpl; ^"; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5bImpl extends core::Object { synthetic constructor •() → test::Class5bImpl : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5c extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5c /* redirection-target: test::Class5cImpl::• */ @@ -209,13 +209,13 @@ factory Class5c() = Class5cImpl; ^"; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class5cImpl extends core::Object { synthetic constructor •() → test::Class5cImpl : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class6a<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6a::•::T%) → void f) → test::Class6a<test::Class6a::•::T%> /* redirection-target: test::_Class6aImpl::•<test::Class6a::•::T%>*/ @@ -225,13 +225,13 @@ factory Class6a(void Function(T) f) = _Class6aImpl<T>; ^"; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class6b<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6b::•::T%) → void f) → test::Class6b<test::Class6b::•::T%> /* redirection-target: test::_Class6bImpl::•<test::Class6b::•::T%>*/ return new test::_Class6bImpl::•<test::Class6b::•::T%>(f); } -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class6c<T extends core::Object? = dynamic> extends core::Object { @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6c::•::T%) → void f) → test::Class6c<test::Class6c::•::T%> /* redirection-target: test::_Class6cImpl::•<test::Class6c::•::T%>*/
diff --git a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.outline.expect index 0362a98..539032f 100644 --- a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.weak.outline.expect
@@ -166,27 +166,27 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:9:18 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:11:22 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:15:11 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:15:36 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:19:25 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:21:11 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:25:10 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:28:1 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:31:4 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:11:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:14:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:17:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:20:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:23:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:26:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:29:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:32:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:31:29 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:34:17 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:37:13 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:38:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:41:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:39:16 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:43:12 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:46:19 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:47:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:50:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:46:44 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:50:19 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:50:48 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:56:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:59:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:54:6 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:69:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:79:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 32, effectively constant: 23
diff --git a/pkg/front_end/testcases/general/patch_extension_scope/main.dart.strong.expect b/pkg/front_end/testcases/general/patch_extension_scope/main.dart.strong.expect index 0112b2d..e927982 100644 --- a/pkg/front_end/testcases/general/patch_extension_scope/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/patch_extension_scope/main.dart.strong.expect
@@ -138,8 +138,8 @@ import "dart:_internal"; import "dart:_internal"; -@#C1 -@#C1 +@/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.expect b/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.expect index 0112b2d..e927982 100644 --- a/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.expect
@@ -138,8 +138,8 @@ import "dart:_internal"; import "dart:_internal"; -@#C1 -@#C1 +@/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.modular.expect index 0112b2d..e927982 100644 --- a/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.modular.expect
@@ -138,8 +138,8 @@ import "dart:_internal"; import "dart:_internal"; -@#C1 -@#C1 +@/* from org-dartlang-testcase:///patch_lib1.dart */ #C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.outline.expect index 563f88e..9df2ebb 100644 --- a/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/patch_extension_scope/main.dart.weak.outline.expect
@@ -137,6 +137,6 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:30 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:30 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib1.dart:8:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib2.dart:8:1 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 38, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.expect b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.expect index 281cd62..1e8bed4 100644 --- a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.expect
@@ -58,7 +58,7 @@ import "org-dartlang-malformed-uri:?%3Aa"; export "org-dartlang-malformed-uri:?%3Ab"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.expect b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.expect index 281cd62..1e8bed4 100644 --- a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.expect
@@ -58,7 +58,7 @@ import "org-dartlang-malformed-uri:?%3Aa"; export "org-dartlang-malformed-uri:?%3Ab"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.modular.expect index 281cd62..1e8bed4 100644 --- a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.modular.expect
@@ -58,7 +58,7 @@ import "org-dartlang-malformed-uri:?%3Aa"; export "org-dartlang-malformed-uri:?%3Ab"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.outline.expect index c348e23..4346feb 100644 --- a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.weak.outline.expect
@@ -80,5 +80,5 @@ Extra constant evaluation status: -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:11:1 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 1, effectively constant: 1
diff --git a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.expect b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.expect index 3087029..e33d3ed 100644 --- a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.expect
@@ -29,7 +29,7 @@ typedef Alias<T extends core::num> = test::Class<T>; typedef AliasImpl<T extends core::num> = test::ClassImpl<T>; -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class Class<T extends core::Object? = dynamic> extends core::Object { @#C13 constructor •({core::bool defaultValue = #C14, required test::Class::T% value = #C15}) → test::Class<test::Class::T%> @@ -46,7 +46,7 @@ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect2::T% value = #C15}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/ return new test::ClassImpl::patched<test::Class::redirect2::T%>(defaultValue: defaultValue, value: value); } -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements test::Class<test::ClassImpl::T%> { constructor •({core::bool defaultValue = #C14, required test::ClassImpl::T% value = #C15}) → test::ClassImpl<test::ClassImpl::T%> : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.expect b/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.expect index 3087029..e33d3ed 100644 --- a/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.expect
@@ -29,7 +29,7 @@ typedef Alias<T extends core::num> = test::Class<T>; typedef AliasImpl<T extends core::num> = test::ClassImpl<T>; -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class Class<T extends core::Object? = dynamic> extends core::Object { @#C13 constructor •({core::bool defaultValue = #C14, required test::Class::T% value = #C15}) → test::Class<test::Class::T%> @@ -46,7 +46,7 @@ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect2::T% value = #C15}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/ return new test::ClassImpl::patched<test::Class::redirect2::T%>(defaultValue: defaultValue, value: value); } -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements test::Class<test::ClassImpl::T%> { constructor •({core::bool defaultValue = #C14, required test::ClassImpl::T% value = #C15}) → test::ClassImpl<test::ClassImpl::T%> : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.modular.expect b/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.modular.expect index 3087029..e33d3ed 100644 --- a/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.modular.expect
@@ -29,7 +29,7 @@ typedef Alias<T extends core::num> = test::Class<T>; typedef AliasImpl<T extends core::num> = test::ClassImpl<T>; -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class Class<T extends core::Object? = dynamic> extends core::Object { @#C13 constructor •({core::bool defaultValue = #C14, required test::Class::T% value = #C15}) → test::Class<test::Class::T%> @@ -46,7 +46,7 @@ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect2::T% value = #C15}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/ return new test::ClassImpl::patched<test::Class::redirect2::T%>(defaultValue: defaultValue, value: value); } -@#C13 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C13 class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements test::Class<test::ClassImpl::T%> { constructor •({core::bool defaultValue = #C14, required test::ClassImpl::T% value = #C15}) → test::ClassImpl<test::ClassImpl::T%> : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.outline.expect index 93081db..82211a2 100644 --- a/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/tear_off_patch/main.dart.weak.outline.expect
@@ -50,11 +50,11 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:6:46 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:8 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:27 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:12:21 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:15:10 -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:18:36 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:27:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:19:45 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 31, effectively constant: 7
diff --git a/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.strong.expect b/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.strong.expect index 0379b37..e946862 100644 --- a/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.strong.expect +++ b/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.strong.expect
@@ -12,7 +12,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { field core::int? _#Class#foo = null /* from org-dartlang-testcase:///patch_lib.dart */; constructor bar() → self2::Class
diff --git a/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.expect b/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.expect index c5e89e4..dc190a3 100644 --- a/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.expect +++ b/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.expect
@@ -12,7 +12,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { field core::int? _#Class#foo = null /* from org-dartlang-testcase:///patch_lib.dart */; field core::bool _#Class#foo#isSet = false /* from org-dartlang-testcase:///patch_lib.dart */;
diff --git a/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.modular.expect b/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.modular.expect index c5e89e4..dc190a3 100644 --- a/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.modular.expect
@@ -12,7 +12,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { field core::int? _#Class#foo = null /* from org-dartlang-testcase:///patch_lib.dart */; field core::bool _#Class#foo#isSet = false /* from org-dartlang-testcase:///patch_lib.dart */;
diff --git a/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.outline.expect b/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.outline.expect index 1e68a11..761b05e 100644 --- a/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/late_lowering/injected_late_field_checks/main.dart.weak.outline.expect
@@ -27,5 +27,5 @@ Extra constant evaluation status: -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 1, effectively constant: 1
diff --git a/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.strong.expect b/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.strong.expect index 2ed0e61..3a8af24 100644 --- a/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.strong.expect
@@ -12,7 +12,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { late field core::int foo /* from org-dartlang-testcase:///patch_lib.dart */; constructor bar() → self2::Class
diff --git a/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.expect b/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.expect index 2ed0e61..3a8af24 100644 --- a/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.expect
@@ -12,7 +12,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { late field core::int foo /* from org-dartlang-testcase:///patch_lib.dart */; constructor bar() → self2::Class
diff --git a/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.modular.expect index 2ed0e61..3a8af24 100644 --- a/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.modular.expect
@@ -12,7 +12,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { late field core::int foo /* from org-dartlang-testcase:///patch_lib.dart */; constructor bar() → self2::Class
diff --git a/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.outline.expect index 4dd6717..9e6ae34 100644 --- a/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/injected_late_field_checks/main.dart.weak.outline.expect
@@ -24,5 +24,5 @@ Extra constant evaluation status: -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 1, effectively constant: 1
diff --git a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.expect b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.expect index 08c9c20..4adb050 100644 --- a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.expect
@@ -51,7 +51,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class<T extends core::num> extends core::Object /*hasConstConstructor*/ { final field core::int a; final field test::Class::T b;
diff --git a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.expect b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.expect index 08c9c20..4adb050 100644 --- a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.expect
@@ -51,7 +51,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class<T extends core::num> extends core::Object /*hasConstConstructor*/ { final field core::int a; final field test::Class::T b;
diff --git a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.modular.expect index 08c9c20..4adb050 100644 --- a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.modular.expect
@@ -51,7 +51,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class<T extends core::num> extends core::Object /*hasConstConstructor*/ { final field core::int a; final field test::Class::T b;
diff --git a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.outline.expect index f41cb62..379ba5b 100644 --- a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.outline.expect
@@ -40,7 +40,7 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:9:5 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:9:43 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:15:19 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:28:17 -> InstanceConstant(const _Patch{})
diff --git a/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.strong.expect b/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.strong.expect index e65cc0a..1123c64 100644 --- a/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.strong.expect
@@ -35,7 +35,7 @@ import "dart:_internal"; part patch_lib2.dart; -@#C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class1 extends core::Object { field core::int _field = null /* from org-dartlang-testcase:///patch_lib2.dart */; static field core::int _staticField = null /* from org-dartlang-testcase:///patch_lib2.dart */; @@ -43,7 +43,7 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class2 extends core::Object { field core::int _field /* from org-dartlang-testcase:///patch_lib2.dart */; constructor constructor2(core::int _field) → test::Class2
diff --git a/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.expect b/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.expect index e65cc0a..1123c64 100644 --- a/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.expect
@@ -35,7 +35,7 @@ import "dart:_internal"; part patch_lib2.dart; -@#C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class1 extends core::Object { field core::int _field = null /* from org-dartlang-testcase:///patch_lib2.dart */; static field core::int _staticField = null /* from org-dartlang-testcase:///patch_lib2.dart */; @@ -43,7 +43,7 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class2 extends core::Object { field core::int _field /* from org-dartlang-testcase:///patch_lib2.dart */; constructor constructor2(core::int _field) → test::Class2
diff --git a/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.modular.expect index e65cc0a..1123c64 100644 --- a/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.modular.expect
@@ -35,7 +35,7 @@ import "dart:_internal"; part patch_lib2.dart; -@#C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class1 extends core::Object { field core::int _field = null /* from org-dartlang-testcase:///patch_lib2.dart */; static field core::int _staticField = null /* from org-dartlang-testcase:///patch_lib2.dart */; @@ -43,7 +43,7 @@ : super core::Object::•() ; } -@#C1 +@/* from org-dartlang-testcase:///patch_lib2.dart */ #C1 class Class2 extends core::Object { field core::int _field /* from org-dartlang-testcase:///patch_lib2.dart */; constructor constructor2(core::int _field) → test::Class2
diff --git a/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.outline.expect index f403453..674052b 100644 --- a/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/platform_nonnullable_fields/main.dart.weak.outline.expect
@@ -39,6 +39,6 @@ Extra constant evaluation status: -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) -Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib2.dart:30:1 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib2.dart:37:1 -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 2, effectively constant: 2
diff --git a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.expect b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.expect index 9662183..ab03b8e 100644 --- a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.expect
@@ -48,7 +48,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.expect b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.expect index 9662183..ab03b8e 100644 --- a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.expect
@@ -48,7 +48,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.modular.expect index 9662183..ab03b8e 100644 --- a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.modular.expect
@@ -48,7 +48,7 @@ import "dart:_internal"; -@#C1 +@/* from org-dartlang-testcase:///patch_lib.dart */ #C1 class Class extends core::Object { synthetic constructor •() → test::Class : super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.outline.expect index c3a9cb3..ddbafe9 100644 --- a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.weak.outline.expect
@@ -66,7 +66,7 @@ Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:22 -> InstanceConstant(const _Patch{}) +Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:11:2 -> InstanceConstant(const _Patch{}) Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{}) Extra constant evaluation: evaluated: 3, effectively constant: 3
diff --git a/pkg/kernel/binary.md b/pkg/kernel/binary.md index 292b41d..181dc6e 100644 --- a/pkg/kernel/binary.md +++ b/pkg/kernel/binary.md
@@ -147,7 +147,7 @@ type ComponentFile { UInt32 magic = 0x90ABCDEF; - UInt32 formatVersion = 105; + UInt32 formatVersion = 106; Byte[10] shortSdkHash; List<String> problemsAsJson; // Described in problems.md. Library[] libraries; @@ -1192,6 +1192,14 @@ ConstantReference constantReference; } +type FileUriConstantExpression extends Expression { + Byte tag = 108; + FileOffset fileOffset; + UriReference fileUri; + DartType type; + ConstantReference constantReference; +} + abstract type Constant extends Node { Byte tag; }
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart index 449f354..91e49c7 100644 --- a/pkg/kernel/lib/ast.dart +++ b/pkg/kernel/lib/ast.dart
@@ -8683,6 +8683,16 @@ } } +class FileUriConstantExpression extends ConstantExpression + implements FileUriNode { + @override + Uri fileUri; + + FileUriConstantExpression(Constant constant, + {DartType type = const DynamicType(), required this.fileUri}) + : super(constant, type); +} + /// Synthetic expression of form `let v = x in y` class Let extends Expression { VariableDeclaration variable; // Must have an initializer.
diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart index 9dac20c..5c1e9d4 100644 --- a/pkg/kernel/lib/binary/ast_from_binary.dart +++ b/pkg/kernel/lib/binary/ast_from_binary.dart
@@ -2323,6 +2323,8 @@ return _readSwitchExpression(); case Tag.PatternAssignment: return _readPatternAssignment(); + case Tag.FileUriConstantExpression: + return _readFileUriConstantExpression(); default: throw fail('unexpected expression tag: $tag'); } @@ -2903,6 +2905,15 @@ return new ConstantExpression(constant, type)..fileOffset = offset; } + Expression _readFileUriConstantExpression() { + int offset = readOffset(); + Uri fileUri = readUriReference(); + DartType type = readDartType(); + Constant constant = readConstantReference(); + return new FileUriConstantExpression(constant, type: type, fileUri: fileUri) + ..fileOffset = offset; + } + List<MapLiteralEntry> readMapLiteralEntryList() { int length = readUInt30(); if (!useGrowableLists && length == 0) {
diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart index 2ceb70b..5716b8d 100644 --- a/pkg/kernel/lib/binary/ast_to_binary.dart +++ b/pkg/kernel/lib/binary/ast_to_binary.dart
@@ -2200,10 +2200,18 @@ @override void visitConstantExpression(ConstantExpression node) { - writeByte(Tag.ConstantExpression); - writeOffset(node.fileOffset); - writeDartType(node.type); - writeConstantReference(node.constant); + if (node is FileUriConstantExpression) { + writeByte(Tag.FileUriConstantExpression); + writeOffset(node.fileOffset); + writeUriReference(node.fileUri); + writeDartType(node.type); + writeConstantReference(node.constant); + } else { + writeByte(Tag.ConstantExpression); + writeOffset(node.fileOffset); + writeDartType(node.type); + writeConstantReference(node.constant); + } } @override
diff --git a/pkg/kernel/lib/binary/tag.dart b/pkg/kernel/lib/binary/tag.dart index fde90d7..b97ca65 100644 --- a/pkg/kernel/lib/binary/tag.dart +++ b/pkg/kernel/lib/binary/tag.dart
@@ -87,6 +87,8 @@ static const int RecordLiteral = 104; static const int ConstRecordLiteral = 105; static const int ConstantExpression = 106; + // 107 is occupied by [FutureOrType] (type). + static const int FileUriConstantExpression = 108; static const int SetLiteral = 109; static const int ConstSetLiteral = 110; static const int ListConcatenation = 111; @@ -159,7 +161,7 @@ // 106 is occupied by [ConstantExpression]. static const int FutureOrType = 107; - // 108 is occupied by [RedirectingFactory] (member). + // 108 is occupied by [FileUriConstantExpression] (expression). // 109 is occupied by [SetLiteral] (expression). // 110 is occupied by [ConstSetLiteral] (expression). // 111 is occupied by [ListConcatenation] (expression). @@ -224,7 +226,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 = 105; + static const int BinaryFormatVersion = 106; } abstract class ConstantTag {
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart index 39305f1..88a045f 100644 --- a/pkg/kernel/lib/text/ast_to_text.dart +++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -1801,6 +1801,9 @@ @override void visitFileUriExpression(FileUriExpression node) { + if (node is FileUriConstantExpression) { + writeWord('/* from ${node.fileUri} */'); + } writeExpression(node.expression); } @@ -2804,6 +2807,9 @@ @override void visitConstantExpression(ConstantExpression node) { + if (node is FileUriConstantExpression) { + writeWord('/* from ${node.fileUri} */'); + } writeConstantReference(node.constant); }
diff --git a/runtime/vm/compiler/frontend/constant_reader.cc b/runtime/vm/compiler/frontend/constant_reader.cc index 8cd0f66..6dcaf58 100644 --- a/runtime/vm/compiler/frontend/constant_reader.cc +++ b/runtime/vm/compiler/frontend/constant_reader.cc
@@ -119,6 +119,12 @@ helper_->SkipDartType(); result_ = ReadConstant(helper_->ReadUInt()); break; + case kFileUriConstantExpression: + helper_->ReadPosition(); + helper_->ReadUInt(); + helper_->SkipDartType(); + result_ = ReadConstant(helper_->ReadUInt()); + break; case kInvalidExpression: { helper_->ReadPosition(); // Skip position. const String& message = H.DartString(helper_->ReadStringReference());
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc index d71072b..9de53e4 100644 --- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc +++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -1161,6 +1161,7 @@ case kNullLiteral: return BuildNullLiteral(position); case kConstantExpression: + case kFileUriConstantExpression: return BuildConstantExpression(position, tag); case kInstantiation: return BuildPartialTearoffInstantiation(position); @@ -1170,6 +1171,8 @@ return BuildLibraryPrefixAction(position, Symbols::CheckLoaded()); case kAwaitExpression: return BuildAwaitExpression(position); + case kFileUriExpression: + return BuildFileUriExpression(position); case kConstStaticInvocation: case kConstConstructorInvocation: case kConstListLiteral: @@ -1180,7 +1183,6 @@ case kSetConcatenation: case kMapConcatenation: case kInstanceCreation: - case kFileUriExpression: case kStaticTearOff: case kSwitchExpression: case kPatternAssignment: @@ -4374,6 +4376,11 @@ if (tag == kConstantExpression) { p = ReadPosition(); SkipDartType(); + } else if (tag == kFileUriConstantExpression) { + // TODO(alexmarkov): Use file offset together with file uri. + ReadPosition(); + ReadUInt(); + SkipDartType(); } if (position != nullptr) *position = p; const intptr_t constant_index = ReadUInt(); @@ -4508,6 +4515,16 @@ return instructions; } +Fragment StreamingFlowGraphBuilder::BuildFileUriExpression( + TokenPosition* position) { + ReadUInt(); // read uri + + const TokenPosition pos = ReadPosition(); // read position. + if (position != nullptr) *position = pos; + + return BuildExpression(position); // read expression. +} + Fragment StreamingFlowGraphBuilder::BuildExpressionStatement( TokenPosition* position) { Fragment instructions = BuildExpression(position); // read expression. @@ -5928,7 +5945,7 @@ if (tag != kInvalidExpression) { has_valid_annotation = true; } - if (tag == kConstantExpression) { + if (tag == kConstantExpression || tag == kFileUriConstantExpression) { auto& instance = Instance::Handle(); instance = constant_reader_.ReadConstantExpression(); if (instance.clazz() == IG->object_store()->pragma_class()) {
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h index 90d4f1f..740affc 100644 --- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h +++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
@@ -339,6 +339,7 @@ Fragment BuildLibraryPrefixAction(TokenPosition* position, const String& selector); Fragment BuildAwaitExpression(TokenPosition* position); + Fragment BuildFileUriExpression(TokenPosition* position); Fragment BuildExpressionStatement(TokenPosition* position); Fragment BuildBlock(TokenPosition* position);
diff --git a/runtime/vm/compiler/frontend/kernel_fingerprints.cc b/runtime/vm/compiler/frontend/kernel_fingerprints.cc index 7c19af4..cc3c90a 100644 --- a/runtime/vm/compiler/frontend/kernel_fingerprints.cc +++ b/runtime/vm/compiler/frontend/kernel_fingerprints.cc
@@ -670,6 +670,12 @@ SkipDartType(); SkipConstantReference(); return; + case kFileUriConstantExpression: + ReadPosition(); + ReadUInt(); // skip uri + SkipDartType(); + SkipConstantReference(); + return; case kLoadLibrary: case kCheckLibraryIsLoaded: ReadUInt(); // skip library index @@ -681,6 +687,11 @@ CalculateDartTypeFingerprint(); // read runtime check type. } return; + case kFileUriExpression: + ReadUInt(); // skip uri + ReadPosition(); // read position + CalculateExpressionFingerprint(); + return; case kConstStaticInvocation: case kConstConstructorInvocation: case kConstListLiteral: @@ -691,7 +702,6 @@ case kSetConcatenation: case kMapConcatenation: case kInstanceCreation: - case kFileUriExpression: case kStaticTearOff: case kSwitchExpression: case kPatternAssignment:
diff --git a/runtime/vm/compiler/frontend/kernel_translation_helper.cc b/runtime/vm/compiler/frontend/kernel_translation_helper.cc index 1ebee58..0e4b3ca 100644 --- a/runtime/vm/compiler/frontend/kernel_translation_helper.cc +++ b/runtime/vm/compiler/frontend/kernel_translation_helper.cc
@@ -2754,6 +2754,12 @@ SkipDartType(); // read type. SkipConstantReference(); return; + case kFileUriConstantExpression: + ReadPosition(); // read position. + ReadUInt(); // skip uri + SkipDartType(); // read type. + SkipConstantReference(); + return; case kLoadLibrary: case kCheckLibraryIsLoaded: ReadUInt(); // skip library index @@ -2765,6 +2771,11 @@ SkipDartType(); // read runtime check type. } return; + case kFileUriExpression: + ReadUInt(); // skip uri + ReadPosition(); // read position + SkipExpression(); // read expression + return; case kConstStaticInvocation: case kConstConstructorInvocation: case kConstListLiteral: @@ -2775,7 +2786,6 @@ case kSetConcatenation: case kMapConcatenation: case kInstanceCreation: - case kFileUriExpression: case kStaticTearOff: case kSwitchExpression: case kPatternAssignment:
diff --git a/runtime/vm/compiler/frontend/scope_builder.cc b/runtime/vm/compiler/frontend/scope_builder.cc index c19e442..fe02792 100644 --- a/runtime/vm/compiler/frontend/scope_builder.cc +++ b/runtime/vm/compiler/frontend/scope_builder.cc
@@ -966,6 +966,12 @@ helper_.SkipDartType(); helper_.SkipConstantReference(); return; + case kFileUriConstantExpression: + helper_.ReadPosition(); + helper_.ReadUInt(); + helper_.SkipDartType(); + helper_.SkipConstantReference(); + return; case kInstantiation: { VisitExpression(); const intptr_t list_length = @@ -986,6 +992,11 @@ VisitDartType(); // read runtime check type. } return; + case kFileUriExpression: + helper_.ReadUInt(); // read uri. + helper_.ReadPosition(); // read position. + VisitExpression(); // read expression. + return; case kConstStaticInvocation: case kConstConstructorInvocation: case kConstListLiteral: @@ -996,7 +1007,6 @@ case kSetConcatenation: case kMapConcatenation: case kInstanceCreation: - case kFileUriExpression: case kStaticTearOff: case kSwitchExpression: case kPatternAssignment:
diff --git a/runtime/vm/kernel_binary.h b/runtime/vm/kernel_binary.h index 186b6e9b..88146d8 100644 --- a/runtime/vm/kernel_binary.h +++ b/runtime/vm/kernel_binary.h
@@ -18,7 +18,7 @@ // package:kernel/binary.md. static const uint32_t kMagicProgramFile = 0x90ABCDEFu; -static const uint32_t kSupportedKernelFormatVersion = 105; +static const uint32_t kSupportedKernelFormatVersion = 106; // Keep in sync with package:kernel/lib/binary/tag.dart #define KERNEL_TAG_LIST(V) \ @@ -136,6 +136,7 @@ V(InlineType, 103) \ V(ConstantExpression, 106) \ V(FutureOrType, 107) \ + V(FileUriConstantExpression, 108) \ V(InstanceGet, 118) \ V(InstanceSet, 119) \ V(InstanceInvocation, 120) \
diff --git a/runtime/vm/kernel_loader.cc b/runtime/vm/kernel_loader.cc index ffdb9a2..d75eed4 100644 --- a/runtime/vm/kernel_loader.cc +++ b/runtime/vm/kernel_loader.cc
@@ -1744,9 +1744,12 @@ for (intptr_t i = 0; i < annotation_count; ++i) { const intptr_t tag = helper_.PeekTag(); - if (tag == kConstantExpression) { + if (tag == kConstantExpression || tag == kFileUriConstantExpression) { helper_.ReadByte(); // Skip the tag. helper_.ReadPosition(); // Skip fileOffset. + if (tag == kFileUriConstantExpression) { + helper_.ReadUInt(); // Skip uri. + } helper_.SkipDartType(); // Skip type. const intptr_t index_in_constant_table = helper_.ReadUInt();