[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>
This commit is contained in:
Johnni Winther 2023-06-28 07:52:09 +00:00 committed by Commit Queue
parent cfd4200c85
commit 0c8ded72dc
120 changed files with 816 additions and 257 deletions

View file

@ -25,15 +25,22 @@ class MetadataBuilder {
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);

View file

@ -2225,9 +2225,15 @@ class ConstantsTransformer extends RemovingTransformer {
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) {

View file

@ -301,37 +301,51 @@ class TypeDependency {
}
}
/// 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);
}

View file

@ -372,7 +372,8 @@ class SourceClassBuilder extends ClassBuilderImpl
}
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 @@ class SourceClassBuilder extends ClassBuilderImpl
}
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;

View file

@ -932,6 +932,15 @@ class DeclaredSourceConstructorBuilder
// 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 @@ class SourceInlineClassConstructorBuilder
// TODO(johnniwinther): Add annotations to tear-offs.
@override
Iterable<Annotatable> get annotatables => [_constructor];
@override
bool get isAugmented => false;
}
class InlineClassInitializerToStatementConverter

View file

@ -321,6 +321,15 @@ class SourceFactoryBuilder extends SourceFunctionBuilderImpl {
// 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 {

View file

@ -206,6 +206,10 @@ abstract class SourceFunctionBuilderImpl extends SourceMemberBuilderImpl
@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 @@ abstract class SourceFunctionBuilderImpl extends SourceMemberBuilderImpl
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++) {

View file

@ -3343,7 +3343,8 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
}
MetadataBuilder.buildAnnotations(
library, metadata, bodyBuilderContext, this, fileUri, scope);
library, metadata, bodyBuilderContext, this, fileUri, scope,
createFileUriExpression: isPatch);
Iterator<Builder> iterator = localMembersIterator;
while (iterator.moveNext()) {

View file

@ -933,6 +933,8 @@ severity: $severity
// 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);

View file

@ -640,6 +640,15 @@ class SourceProcedureBuilder extends SourceFunctionBuilderImpl
// 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 {

View file

@ -526,7 +526,10 @@ class InferenceVisitorImpl extends InferenceVisitorBase
@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

View file

@ -518,6 +518,7 @@ class ComponentResult {
}
bool isUserLibraryImportUri(Uri? importUri) {
// TODO(johnniwinther): Support patch libraries user libraries.
return userLibraries.contains(importUri);
}

View file

@ -29,7 +29,7 @@ import "dart:_internal";
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 @@ class Class<T extends core::Object? = dynamic> extends core::Object {
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::•()

View file

@ -29,7 +29,7 @@ import "dart:_internal";
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 @@ class Class<T extends core::Object? = dynamic> extends core::Object {
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::•()

View file

@ -29,7 +29,7 @@ import "dart:_internal";
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 @@ class Class<T extends core::Object? = dynamic> extends core::Object {
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::•()

View file

@ -62,11 +62,11 @@ static method _#AliasImpl#patched#tearOff<T extends core::num>({has-declared-ini
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

View file

@ -15,7 +15,7 @@ import "dart:core" as core;
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

View file

@ -15,7 +15,7 @@ import "dart:core" as core;
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

View file

@ -15,7 +15,7 @@ import "dart:core" as core;
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

View file

@ -33,7 +33,7 @@ class Class extends core::Object {
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

View file

@ -35,7 +35,7 @@ import "dart:core" as core;
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 @@ class Class extends core::Object /*hasConstConstructor*/ {
: 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;

View file

@ -35,7 +35,7 @@ import "dart:core" as core;
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 @@ class Class extends core::Object /*hasConstConstructor*/ {
: 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;

View file

@ -35,7 +35,7 @@ import "dart:core" as core;
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 @@ class Class extends core::Object /*hasConstConstructor*/ {
: 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;

View file

@ -51,10 +51,10 @@ static method test() → dynamic
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

View file

@ -23,7 +23,7 @@ import "dart:core" as core;
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

View file

@ -23,7 +23,7 @@ import "dart:core" as core;
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

View file

@ -23,7 +23,7 @@ import "dart:core" as core;
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

View file

@ -30,8 +30,8 @@ class Class extends core::Object {
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

View file

@ -48,8 +48,8 @@ import "dart:core" as core;
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::•()

View file

@ -48,8 +48,8 @@ import "dart:core" as core;
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::•()

View file

@ -48,8 +48,8 @@ import "dart:core" as core;
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::•()

View file

@ -88,6 +88,6 @@ static method /* from org-dartlang-testcase:///patch_lib2.dart */ _privateInject
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

View file

@ -38,7 +38,7 @@ class InjectedClass extends core::Object { // from org-dartlang-testcase:///patc
: super core::Object::•()
;
}
@#C1
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class extends core::Object {
synthetic constructor •() → test::Class
: super core::Object::•()

View file

@ -38,7 +38,7 @@ class InjectedClass extends core::Object { // from org-dartlang-testcase:///patc
: super core::Object::•()
;
}
@#C1
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class extends core::Object {
synthetic constructor •() → test::Class
: super core::Object::•()

View file

@ -38,7 +38,7 @@ class InjectedClass extends core::Object { // from org-dartlang-testcase:///patc
: super core::Object::•()
;
}
@#C1
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class extends core::Object {
synthetic constructor •() → test::Class
: super core::Object::•()

View file

@ -44,5 +44,5 @@ static method /* from org-dartlang-testcase:///patch_lib.dart */ injectedMethod(
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

View file

@ -18,8 +18,8 @@ class _ArraySize<T extends core::Object? = dynamic> extends core::Object impleme
: 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 @@ constants {
#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)

View file

@ -32,9 +32,3 @@ constants {
#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)

View file

@ -18,8 +18,8 @@ class _ArraySize<T extends core::Object? = dynamic> extends core::Object impleme
: 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 @@ constants {
#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)

View file

@ -18,8 +18,8 @@ class _ArraySize<T extends core::Object? = dynamic> extends core::Object impleme
: 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 @@ constants {
#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)

View file

@ -20,7 +20,7 @@ class _ArraySize<T extends core::Object? = dynamic> extends core::Object impleme
;
}
@_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 @@ class Array<T extends core::Object? = dynamic> extends core::Object {
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

View file

@ -32,9 +32,3 @@ constants {
#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)

View file

@ -18,7 +18,7 @@ import "dart:core" as core;
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 @@ abstract class _SubClass&Class&Mixin = test::Class with test::Mixin /*isAnonymou
: 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)

View file

@ -18,7 +18,7 @@ import "dart:core" as core;
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 @@ abstract class _SubClass&Class&Mixin = test::Class with test::Mixin /*isAnonymou
: 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)

View file

@ -18,7 +18,7 @@ import "dart:core" as core;
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 @@ abstract class _SubClass&Class&Mixin = test::Class with test::Mixin /*isAnonymou
: 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)

View file

@ -47,8 +47,8 @@ class SubClass extends self2::_SubClass&Class&Mixin {
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

View file

@ -25,8 +25,8 @@ import "dart:core" as core;
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 @@ class Class extends core::Object {
@#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;

View file

@ -25,8 +25,8 @@ import "dart:core" as core;
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 @@ class Class extends core::Object {
@#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;

View file

@ -25,8 +25,8 @@ import "dart:core" as core;
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 @@ class Class extends core::Object {
@#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;

View file

@ -32,10 +32,10 @@ class Class extends core::Object {
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

View file

@ -33,7 +33,7 @@ import "dart:core" as core;
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:core" as core;
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::•()

View file

@ -33,7 +33,7 @@ import "dart:core" as core;
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:core" as core;
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::•()

View file

@ -33,7 +33,7 @@ import "dart:core" as core;
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:core" as core;
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::•()

View file

@ -85,6 +85,6 @@ class Common extends core::Object {
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

View file

@ -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"
}
}
}
}

View file

@ -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() {}

View file

@ -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)

View file

@ -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)

View file

@ -0,0 +1,3 @@
import 'dart:test';
main() {}

View file

@ -0,0 +1,3 @@
import 'dart:test';
main() {}

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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>();
}

View file

@ -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>();
}

View file

@ -96,7 +96,7 @@ class ExistingOriginClass#0#1 extends core::Object { // from org-dartlang-testca
: super core::Object::•()
;
}
@#C1
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class extends core::Object {
@#C1
constructor missingOriginConstructor() → self2::Class

View file

@ -96,7 +96,7 @@ class ExistingOriginClass#0#1 extends core::Object { // from org-dartlang-testca
: super core::Object::•()
;
}
@#C1
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class extends core::Object {
@#C1
constructor missingOriginConstructor() → self2::Class

View file

@ -96,7 +96,7 @@ class ExistingOriginClass#0#1 extends core::Object { // from org-dartlang-testca
: super core::Object::•()
;
}
@#C1
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class extends core::Object {
@#C1
constructor missingOriginConstructor() → self2::Class

View file

@ -129,7 +129,7 @@ static method /* from org-dartlang-testcase:///patch_lib.dart */ existingOriginM
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{})

View file

@ -118,37 +118,37 @@ class SuperClass extends core::Object {
: 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 @@ abstract class _Class4a&Object&Mixin = core::Object with test::Mixin /*isAnonymo
: 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 @@ class Class5b extends core::Object {
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 @@ class Class5c extends core::Object {
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 @@ class Class6a<T extends core::Object? = dynamic> extends core::Object {
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%>*/

View file

@ -118,37 +118,37 @@ class SuperClass extends core::Object {
: 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 @@ abstract class _Class4a&Object&Mixin = core::Object with test::Mixin /*isAnonymo
: 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 @@ class Class5b extends core::Object {
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 @@ class Class5c extends core::Object {
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 @@ class Class6a<T extends core::Object? = dynamic> extends core::Object {
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%>*/

View file

@ -118,37 +118,37 @@ class SuperClass extends core::Object {
: 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 @@ abstract class _Class4a&Object&Mixin = core::Object with test::Mixin /*isAnonymo
: 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 @@ class Class5b extends core::Object {
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 @@ class Class5c extends core::Object {
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 @@ class Class6a<T extends core::Object? = dynamic> extends core::Object {
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%>*/

View file

@ -166,27 +166,27 @@ class Class6c<T extends core::Object? = dynamic> extends core::Object {
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

View file

@ -138,8 +138,8 @@ import "dart:core" as core;
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::•()

View file

@ -138,8 +138,8 @@ import "dart:core" as core;
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::•()

View file

@ -138,8 +138,8 @@ import "dart:core" as core;
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::•()

View file

@ -137,6 +137,6 @@ static extension-member method /* from org-dartlang-testcase:///patch_lib2.dart
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

View file

@ -58,7 +58,7 @@ export "org-dartlang-malformed-uri:?%3Ad";
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::•()

View file

@ -58,7 +58,7 @@ export "org-dartlang-malformed-uri:?%3Ad";
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::•()

View file

@ -58,7 +58,7 @@ export "org-dartlang-malformed-uri:?%3Ad";
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::•()

View file

@ -80,5 +80,5 @@ import self as self6;
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

View file

@ -29,7 +29,7 @@ import "dart:_internal";
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 @@ class Class<T extends core::Object? = dynamic> extends core::Object {
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::•()

View file

@ -29,7 +29,7 @@ import "dart:_internal";
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 @@ class Class<T extends core::Object? = dynamic> extends core::Object {
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::•()

View file

@ -29,7 +29,7 @@ import "dart:_internal";
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 @@ class Class<T extends core::Object? = dynamic> extends core::Object {
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::•()

View file

@ -50,11 +50,11 @@ static method _#AliasImpl#patched#tearOff<T extends core::num>({has-declared-ini
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

View file

@ -12,7 +12,7 @@ import "dart:core" as core;
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

View file

@ -12,7 +12,7 @@ import "dart:core" as core;
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 */;

View file

@ -12,7 +12,7 @@ import "dart:core" as core;
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 */;

View file

@ -27,5 +27,5 @@ class Class extends core::Object {
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

View file

@ -12,7 +12,7 @@ import "dart:core" as core;
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

View file

@ -12,7 +12,7 @@ import "dart:core" as core;
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

View file

@ -12,7 +12,7 @@ import "dart:core" as core;
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

View file

@ -24,5 +24,5 @@ class Class extends core::Object {
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

View file

@ -51,7 +51,7 @@ import "dart:core" as core;
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;

View file

@ -51,7 +51,7 @@ import "dart:core" as core;
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;

View file

@ -51,7 +51,7 @@ import "dart:core" as core;
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;

View file

@ -40,7 +40,7 @@ static method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod
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{})

View file

@ -35,7 +35,7 @@ import "dart:core" as core;
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 @@ class Class1 extends core::Object {
: 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

View file

@ -35,7 +35,7 @@ import "dart:core" as core;
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 @@ class Class1 extends core::Object {
: 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

Some files were not shown because too many files have changed in this diff Show more