mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 22:59:47 +00:00
[cfe] Add representation field to ExtensionTypeDeclaration
This adds the representation field of an extension type declaration as an abstract getter in the ExtensionTypeDeclaraiton marking it as a ProcedureStubKind.RepresentationField These are never used as interface targets and are therefore skipped in the type flow analysis. TEST=existing Change-Id: Ie645e63e0995a31895e985a2025dccb1476d16bf Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/330782 Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Ömer Ağacan <omersa@google.com> Reviewed-by: Mayank Patke <fishythefish@google.com> Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
This commit is contained in:
parent
fd1a969918
commit
d252bb11a3
|
@ -28,6 +28,7 @@ bool memberIsIgnorable(ir.Member node, {ir.Class? cls}) {
|
|||
case ir.ProcedureStubKind.MemberSignature:
|
||||
case ir.ProcedureStubKind.AbstractMixinStub:
|
||||
case ir.ProcedureStubKind.ConcreteMixinStub:
|
||||
case ir.ProcedureStubKind.RepresentationField:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -807,7 +807,8 @@ class ClosureLayouter extends RecursiveVisitor {
|
|||
|
||||
@override
|
||||
void visitProcedure(Procedure node) {
|
||||
if (node.isInstanceMember) {
|
||||
if (node.isInstanceMember &&
|
||||
node.stubKind != ProcedureStubKind.RepresentationField) {
|
||||
ProcedureAttributesMetadata metadata = procedureAttributeMetadata[node]!;
|
||||
if (metadata.hasTearOffUses) {
|
||||
_visitFunctionNode(node.function);
|
||||
|
|
|
@ -8881,17 +8881,20 @@ class BodyBuilder extends StackListenerImpl
|
|||
..fileOffset = charOffset;
|
||||
}
|
||||
|
||||
Initializer buildDuplicatedInitializer(Field field, Expression value,
|
||||
String name, int offset, int previousInitializerOffset) {
|
||||
return new ShadowInvalidFieldInitializer(
|
||||
field,
|
||||
value,
|
||||
new VariableDeclaration.forValue(buildProblem(
|
||||
Initializer buildDuplicatedInitializer(
|
||||
SourceFieldBuilder fieldBuilder,
|
||||
Expression value,
|
||||
String name,
|
||||
int offset,
|
||||
int previousInitializerOffset) {
|
||||
return fieldBuilder.buildErroneousInitializer(
|
||||
buildProblem(
|
||||
fasta.templateConstructorInitializeSameInstanceVariableSeveralTimes
|
||||
.withArguments(name),
|
||||
offset,
|
||||
noLength)))
|
||||
..fileOffset = offset;
|
||||
noLength),
|
||||
value,
|
||||
fileOffset: offset);
|
||||
}
|
||||
|
||||
/// Parameter [formalType] should only be passed in the special case of
|
||||
|
@ -8923,7 +8926,7 @@ class BodyBuilder extends StackListenerImpl
|
|||
initializedFields ??= <String, int>{};
|
||||
if (initializedFields!.containsKey(name)) {
|
||||
return <Initializer>[
|
||||
buildDuplicatedInitializer(builder.field, expression, name,
|
||||
buildDuplicatedInitializer(builder, expression, name,
|
||||
assignmentOffset, initializedFields![name]!)
|
||||
];
|
||||
}
|
||||
|
@ -8964,12 +8967,9 @@ class BodyBuilder extends StackListenerImpl
|
|||
charOffset: assignmentOffset,
|
||||
isConstructorInvocation: true);
|
||||
return <Initializer>[
|
||||
new ShadowInvalidFieldInitializer(
|
||||
builder.field,
|
||||
expression,
|
||||
new VariableDeclaration.forValue(
|
||||
forest.createThrow(assignmentOffset, invocation)))
|
||||
..fileOffset = assignmentOffset
|
||||
builder.buildErroneousInitializer(
|
||||
forest.createThrow(assignmentOffset, invocation), expression,
|
||||
fileOffset: assignmentOffset)
|
||||
];
|
||||
} else {
|
||||
if (formal != null && formal.type is! OmittedTypeBuilder) {
|
||||
|
|
|
@ -188,6 +188,13 @@ class ForwardingNode {
|
|||
case ProcedureStubKind.ConcreteMixinStub:
|
||||
finalTarget = interfaceMember.stubTarget!;
|
||||
break;
|
||||
case ProcedureStubKind.RepresentationField:
|
||||
assert(
|
||||
false,
|
||||
"Unexpected representation field as forwarding stub target "
|
||||
"$interfaceMember.");
|
||||
finalTarget = interfaceMember;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
finalTarget = interfaceMember;
|
||||
|
|
|
@ -899,12 +899,11 @@ class ShadowInvalidInitializer extends LocalInitializer
|
|||
/// Concrete shadow object representing an invalid initializer in kernel form.
|
||||
class ShadowInvalidFieldInitializer extends LocalInitializer
|
||||
implements InitializerJudgment {
|
||||
Field field;
|
||||
DartType fieldType;
|
||||
Expression value;
|
||||
|
||||
ShadowInvalidFieldInitializer(
|
||||
this.field, this.value, VariableDeclaration variable)
|
||||
: super(variable) {
|
||||
ShadowInvalidFieldInitializer(this.fieldType, this.value, Expression effect)
|
||||
: super(new VariableDeclaration.forValue(effect)) {
|
||||
value.parent = this;
|
||||
}
|
||||
|
||||
|
@ -3440,3 +3439,35 @@ class ExtensionTypeRedirectingInitializer extends InternalInitializer {
|
|||
String toString() =>
|
||||
'ExtensionTypeRedirectingInitializer(${toStringInternal()})';
|
||||
}
|
||||
|
||||
/// Internal expression for an explicit initialization of an extension type
|
||||
/// declaration representation field.
|
||||
class ExtensionTypeRepresentationFieldInitializer extends InternalInitializer {
|
||||
Reference fieldReference;
|
||||
Expression value;
|
||||
|
||||
ExtensionTypeRepresentationFieldInitializer(Procedure field, this.value)
|
||||
: assert(field.stubKind == ProcedureStubKind.RepresentationField),
|
||||
this.fieldReference = field.reference {
|
||||
value.parent = this;
|
||||
}
|
||||
|
||||
/// [Procedure] that represents the representation field.
|
||||
Procedure get field => fieldReference.asProcedure;
|
||||
|
||||
@override
|
||||
InitializerInferenceResult acceptInference(InferenceVisitorImpl visitor) {
|
||||
return visitor.visitExtensionTypeRepresentationFieldInitializer(this);
|
||||
}
|
||||
|
||||
@override
|
||||
void toTextInternal(AstPrinter printer) {
|
||||
printer.writeMemberName(fieldReference);
|
||||
printer.write(" = ");
|
||||
printer.writeExpression(value);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() =>
|
||||
'ExtensionTypeRepresentationFieldInitializer(${toStringInternal()})';
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import 'package:_fe_analyzer_shared/src/messages/severity.dart' show Severity;
|
|||
import 'package:kernel/ast.dart';
|
||||
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
|
||||
import 'package:kernel/core_types.dart';
|
||||
import 'package:kernel/reference_from_index.dart' show IndexedClass;
|
||||
import 'package:kernel/reference_from_index.dart' show IndexedContainer;
|
||||
import 'package:kernel/target/changed_structure_notifier.dart'
|
||||
show ChangedStructureNotifier;
|
||||
import 'package:kernel/target/targets.dart' show DiagnosticReporter, Target;
|
||||
|
@ -849,7 +849,7 @@ class KernelTarget extends TargetImplementation {
|
|||
if (proc.isFactory) return;
|
||||
}
|
||||
|
||||
IndexedClass? indexedClass = builder.referencesFromIndexed;
|
||||
IndexedContainer? indexedClass = builder.referencesFromIndexed;
|
||||
Reference? constructorReference;
|
||||
Reference? tearOffReference;
|
||||
if (indexedClass != null) {
|
||||
|
@ -907,7 +907,7 @@ class KernelTarget extends TargetImplementation {
|
|||
installForwardingConstructors(supertype);
|
||||
}
|
||||
|
||||
IndexedClass? indexedClass = builder.referencesFromIndexed;
|
||||
IndexedContainer? indexedClass = builder.referencesFromIndexed;
|
||||
Reference? constructorReference;
|
||||
Reference? tearOffReference;
|
||||
if (indexedClass != null) {
|
||||
|
@ -1458,8 +1458,7 @@ class KernelTarget extends TargetImplementation {
|
|||
fieldBuilder.fileUri);
|
||||
}
|
||||
}
|
||||
fieldBuilder.field.initializer = new NullLiteral()
|
||||
..parent = fieldBuilder.field;
|
||||
fieldBuilder.buildImplicitDefaultValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1473,9 +1472,7 @@ class KernelTarget extends TargetImplementation {
|
|||
for (SourceFieldBuilder fieldBuilder
|
||||
in initializedFieldBuilders!.difference(fieldBuilders)) {
|
||||
if (!fieldBuilder.hasInitializer && !fieldBuilder.isLate) {
|
||||
FieldInitializer initializer =
|
||||
new FieldInitializer(fieldBuilder.field, new NullLiteral())
|
||||
..isSynthetic = true;
|
||||
Initializer initializer = fieldBuilder.buildImplicitInitializer();
|
||||
constructorBuilder.prependInitializer(initializer);
|
||||
if (fieldBuilder.isFinal) {
|
||||
libraryBuilder.addProblem(
|
||||
|
|
|
@ -53,8 +53,7 @@ class LoadLibraryBuilder extends BuilderImpl {
|
|||
LoadLibrary expression = createLoadLibrary(charOffset, forest, null);
|
||||
String prefix = expression.import.name!;
|
||||
Name name = new Name('_#loadLibrary_$prefix', parent.library);
|
||||
Reference? reference =
|
||||
parent.referencesFromIndexed?.lookupGetterReference(name);
|
||||
Reference? reference = parent.indexedLibrary?.lookupGetterReference(name);
|
||||
return tearoff = new Procedure(
|
||||
name,
|
||||
ProcedureKind.Method,
|
||||
|
|
|
@ -7,7 +7,7 @@ import 'package:kernel/ast.dart';
|
|||
import '../kernel/constructor_tearoff_lowering.dart';
|
||||
import '../kernel/late_lowering.dart' as late_lowering;
|
||||
|
||||
enum FieldNameType { Field, Getter, Setter, IsSetField }
|
||||
enum FieldNameType { Field, Getter, Setter, IsSetField, RepresentationField }
|
||||
|
||||
enum ContainerType { Library, Class, ExtensionType, Extension }
|
||||
|
||||
|
@ -32,6 +32,7 @@ class NameScheme {
|
|||
bool get isExtensionTypeMember =>
|
||||
containerType == ContainerType.ExtensionType;
|
||||
|
||||
// TODO(johnniwinther): Why do we need [isSynthesized] ?
|
||||
MemberName getFieldMemberName(FieldNameType fieldNameType, String name,
|
||||
{required bool isSynthesized}) {
|
||||
bool hasSynthesizedName;
|
||||
|
@ -93,6 +94,8 @@ class NameScheme {
|
|||
return baseName;
|
||||
case FieldNameType.IsSetField:
|
||||
return "$namePrefix$baseName${late_lowering.lateIsSetSuffix}";
|
||||
case FieldNameType.RepresentationField:
|
||||
return name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1034,7 +1034,8 @@ class OutlineBuilder extends StackListenerImpl {
|
|||
}
|
||||
libraryBuilder.currentTypeParameterScopeBuilder
|
||||
.markAsClassDeclaration(name.lexeme, name.charOffset, typeVariables);
|
||||
libraryBuilder.setCurrentClassName(name.lexeme);
|
||||
libraryBuilder.beginIndexedContainer(name.lexeme,
|
||||
isExtensionTypeDeclaration: false);
|
||||
inAbstractOrSealedClass = abstractToken != null || sealedToken != null;
|
||||
push(abstractToken != null ? abstractMask : 0);
|
||||
push(macroToken ?? NullValues.Token);
|
||||
|
@ -1066,7 +1067,8 @@ class OutlineBuilder extends StackListenerImpl {
|
|||
push(typeVariables ?? NullValues.NominalVariables);
|
||||
libraryBuilder.currentTypeParameterScopeBuilder
|
||||
.markAsMixinDeclaration(name.lexeme, name.charOffset, typeVariables);
|
||||
libraryBuilder.setCurrentClassName(name.lexeme);
|
||||
libraryBuilder.beginIndexedContainer(name.lexeme,
|
||||
isExtensionTypeDeclaration: false);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -1374,7 +1376,7 @@ class OutlineBuilder extends StackListenerImpl {
|
|||
isAugmentation: augmentToken != null,
|
||||
isMixinClass: mixinToken != null);
|
||||
}
|
||||
libraryBuilder.setCurrentClassName(null);
|
||||
libraryBuilder.endIndexedContainer();
|
||||
popDeclarationContext(DeclarationContext.Class);
|
||||
}
|
||||
|
||||
|
@ -1463,7 +1465,7 @@ class OutlineBuilder extends StackListenerImpl {
|
|||
isBase: baseToken != null,
|
||||
isAugmentation: augmentToken != null);
|
||||
}
|
||||
libraryBuilder.setCurrentClassName(null);
|
||||
libraryBuilder.endIndexedContainer();
|
||||
popDeclarationContext(DeclarationContext.Mixin);
|
||||
}
|
||||
|
||||
|
@ -1547,13 +1549,15 @@ class OutlineBuilder extends StackListenerImpl {
|
|||
pushDeclarationContext(DeclarationContext.ExtensionType);
|
||||
List<NominalVariableBuilder>? typeVariables =
|
||||
pop() as List<NominalVariableBuilder>?;
|
||||
String name = nameToken.lexeme;
|
||||
int offset = nameToken.charOffset;
|
||||
push(nameToken.lexeme);
|
||||
push(name);
|
||||
push(offset);
|
||||
push(typeVariables ?? NullValues.NominalVariables);
|
||||
libraryBuilder.currentTypeParameterScopeBuilder
|
||||
.markAsExtensionTypeDeclaration(
|
||||
nameToken.lexeme, offset, typeVariables);
|
||||
.markAsExtensionTypeDeclaration(name, offset, typeVariables);
|
||||
libraryBuilder.beginIndexedContainer(name,
|
||||
isExtensionTypeDeclaration: true);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -1595,6 +1599,7 @@ class OutlineBuilder extends StackListenerImpl {
|
|||
nameOffset,
|
||||
endToken.charOffset);
|
||||
|
||||
libraryBuilder.endIndexedContainer();
|
||||
popDeclarationContext(DeclarationContext.ExtensionType);
|
||||
}
|
||||
|
||||
|
@ -2815,7 +2820,8 @@ class OutlineBuilder extends StackListenerImpl {
|
|||
} else {
|
||||
declarationName = '#enum';
|
||||
}
|
||||
libraryBuilder.setCurrentClassName(declarationName);
|
||||
libraryBuilder.beginIndexedContainer(declarationName,
|
||||
isExtensionTypeDeclaration: false);
|
||||
pushDeclarationContext(DeclarationContext.Enum);
|
||||
libraryBuilder.beginNestedDeclaration(
|
||||
TypeParameterScopeKind.enumDeclaration, declarationName);
|
||||
|
@ -2980,7 +2986,7 @@ class OutlineBuilder extends StackListenerImpl {
|
|||
.resolveNamedTypes(typeVariables, libraryBuilder);
|
||||
}
|
||||
|
||||
libraryBuilder.setCurrentClassName(null);
|
||||
libraryBuilder.endIndexedContainer();
|
||||
checkEmpty(enumKeyword.charOffset);
|
||||
popDeclarationContext(DeclarationContext.Enum);
|
||||
}
|
||||
|
|
|
@ -170,33 +170,42 @@ mixin SourceDeclarationBuilderMixin implements DeclarationBuilderMixin {
|
|||
void _buildMember(SourceMemberBuilder memberBuilder, Member member,
|
||||
Member? tearOff, BuiltMemberKind memberKind,
|
||||
{required bool addMembersToLibrary}) {
|
||||
if (addMembersToLibrary &&
|
||||
!memberBuilder.isPatch &&
|
||||
if (!memberBuilder.isPatch &&
|
||||
!memberBuilder.isDuplicate &&
|
||||
!memberBuilder.isConflictingSetter) {
|
||||
Reference addMember(Member member) {
|
||||
if (member is Field) {
|
||||
libraryBuilder.library.addField(member);
|
||||
return member.fieldReference;
|
||||
} else if (member is Procedure) {
|
||||
libraryBuilder.library.addProcedure(member);
|
||||
return member.reference;
|
||||
} else {
|
||||
unhandled("${member.runtimeType}", "buildBuilders", member.fileOffset,
|
||||
member.fileUri);
|
||||
if (memberKind == BuiltMemberKind.ExtensionTypeRepresentationField) {
|
||||
addMemberInternal(memberBuilder, memberKind, member, tearOff);
|
||||
} else {
|
||||
if (addMembersToLibrary) {
|
||||
Reference addMember(Member member) {
|
||||
if (member is Field) {
|
||||
libraryBuilder.library.addField(member);
|
||||
return member.fieldReference;
|
||||
} else if (member is Procedure) {
|
||||
libraryBuilder.library.addProcedure(member);
|
||||
return member.reference;
|
||||
} else {
|
||||
unhandled("${member.runtimeType}", "buildBuilders",
|
||||
member.fileOffset, member.fileUri);
|
||||
}
|
||||
}
|
||||
|
||||
Reference memberReference = addMember(member);
|
||||
Reference? tearOffReference;
|
||||
if (tearOff != null) {
|
||||
tearOffReference = addMember(tearOff);
|
||||
}
|
||||
addMemberDescriptorInternal(
|
||||
memberBuilder, memberKind, memberReference, tearOffReference);
|
||||
}
|
||||
}
|
||||
|
||||
Reference memberReference = addMember(member);
|
||||
Reference? tearOffReference;
|
||||
if (tearOff != null) {
|
||||
tearOffReference = addMember(tearOff);
|
||||
}
|
||||
addMemberDescriptorInternal(
|
||||
memberBuilder, memberKind, memberReference, tearOffReference);
|
||||
}
|
||||
}
|
||||
|
||||
/// Adds [member] and [tearOff] to this declaration.
|
||||
void addMemberInternal(SourceMemberBuilder memberBuilder,
|
||||
BuiltMemberKind memberKind, Member member, Member? tearOff);
|
||||
|
||||
/// Adds a descriptor for [member] to this declaration.
|
||||
void addMemberDescriptorInternal(
|
||||
SourceMemberBuilder memberBuilder,
|
||||
|
|
|
@ -8,7 +8,7 @@ import 'package:kernel/ast.dart';
|
|||
import 'package:kernel/class_hierarchy.dart'
|
||||
show ClassHierarchy, ClassHierarchyBase, ClassHierarchyMembers;
|
||||
import 'package:kernel/core_types.dart';
|
||||
import 'package:kernel/reference_from_index.dart' show IndexedClass;
|
||||
import 'package:kernel/reference_from_index.dart' show IndexedContainer;
|
||||
import 'package:kernel/src/bounds_checks.dart';
|
||||
import 'package:kernel/src/legacy_erasure.dart';
|
||||
import 'package:kernel/src/types.dart' show Types;
|
||||
|
@ -59,7 +59,7 @@ Class initializeClass(
|
|||
int startCharOffset,
|
||||
int charOffset,
|
||||
int charEndOffset,
|
||||
IndexedClass? referencesFrom,
|
||||
IndexedContainer? referencesFrom,
|
||||
{required bool isAugmentation}) {
|
||||
cls ??= new Class(
|
||||
name: name,
|
||||
|
@ -69,7 +69,7 @@ Class initializeClass(
|
|||
// from index even when available.
|
||||
// TODO(johnniwinther): Avoid creating [Class] so early in the builder
|
||||
// that we end up creating unneeded nodes.
|
||||
reference: isAugmentation ? null : referencesFrom?.cls.reference,
|
||||
reference: isAugmentation ? null : referencesFrom?.reference,
|
||||
fileUri: parent.fileUri);
|
||||
if (cls.startFileOffset == TreeNode.noOffset) {
|
||||
cls.startFileOffset = startCharOffset;
|
||||
|
@ -107,7 +107,7 @@ class SourceClassBuilder extends ClassBuilderImpl
|
|||
@override
|
||||
TypeBuilder? mixedInTypeBuilder;
|
||||
|
||||
final IndexedClass? referencesFromIndexed;
|
||||
final IndexedContainer? referencesFromIndexed;
|
||||
|
||||
@override
|
||||
final bool isMacro;
|
||||
|
|
|
@ -1339,6 +1339,11 @@ class ExtensionTypeInitializerToStatementConverter
|
|||
..fileOffset = node.fileOffset)
|
||||
..fileOffset = node.fileOffset);
|
||||
return;
|
||||
} else if (node is ExtensionTypeRepresentationFieldInitializer) {
|
||||
thisVariable
|
||||
..initializer = (node.value..parent = thisVariable)
|
||||
..fileOffset = node.fileOffset;
|
||||
return;
|
||||
}
|
||||
throw new UnsupportedError(
|
||||
"Unexpected initializer $node (${node.runtimeType})");
|
||||
|
|
|
@ -107,6 +107,13 @@ class SourceExtensionBuilder extends ExtensionBuilderImpl
|
|||
return _extension;
|
||||
}
|
||||
|
||||
@override
|
||||
void addMemberInternal(SourceMemberBuilder memberBuilder,
|
||||
BuiltMemberKind memberKind, Member member, Member? tearOff) {
|
||||
unhandled("${memberBuilder.runtimeType}:${memberKind}", "addMemberInternal",
|
||||
memberBuilder.charOffset, memberBuilder.fileUri);
|
||||
}
|
||||
|
||||
@override
|
||||
void addMemberDescriptorInternal(
|
||||
SourceMemberBuilder memberBuilder,
|
||||
|
@ -128,8 +135,12 @@ class SourceExtensionBuilder extends ExtensionBuilderImpl
|
|||
case BuiltMemberKind.ExtensionTypeOperator:
|
||||
case BuiltMemberKind.ExtensionTypeFactory:
|
||||
case BuiltMemberKind.ExtensionTypeRedirectingFactory:
|
||||
unhandled("${memberBuilder.runtimeType}:${memberKind}", "buildMembers",
|
||||
memberBuilder.charOffset, memberBuilder.fileUri);
|
||||
case BuiltMemberKind.ExtensionTypeRepresentationField:
|
||||
unhandled(
|
||||
"${memberBuilder.runtimeType}:${memberKind}",
|
||||
"addMemberDescriptorInternal",
|
||||
memberBuilder.charOffset,
|
||||
memberBuilder.fileUri);
|
||||
case BuiltMemberKind.ExtensionField:
|
||||
case BuiltMemberKind.LateIsSetField:
|
||||
kind = ExtensionMemberKind.Field;
|
||||
|
|
|
@ -455,6 +455,41 @@ class SourceExtensionTypeDeclarationBuilder
|
|||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void addMemberInternal(SourceMemberBuilder memberBuilder,
|
||||
BuiltMemberKind memberKind, Member member, Member? tearOff) {
|
||||
switch (memberKind) {
|
||||
case BuiltMemberKind.Constructor:
|
||||
case BuiltMemberKind.RedirectingFactory:
|
||||
case BuiltMemberKind.Field:
|
||||
case BuiltMemberKind.Method:
|
||||
case BuiltMemberKind.Factory:
|
||||
case BuiltMemberKind.ExtensionMethod:
|
||||
case BuiltMemberKind.ExtensionGetter:
|
||||
case BuiltMemberKind.ExtensionSetter:
|
||||
case BuiltMemberKind.ExtensionOperator:
|
||||
case BuiltMemberKind.ExtensionField:
|
||||
case BuiltMemberKind.LateIsSetField:
|
||||
case BuiltMemberKind.ExtensionTypeConstructor:
|
||||
case BuiltMemberKind.ExtensionTypeFactory:
|
||||
case BuiltMemberKind.ExtensionTypeRedirectingFactory:
|
||||
case BuiltMemberKind.ExtensionTypeMethod:
|
||||
case BuiltMemberKind.ExtensionTypeGetter:
|
||||
case BuiltMemberKind.LateGetter:
|
||||
case BuiltMemberKind.ExtensionTypeSetter:
|
||||
case BuiltMemberKind.LateSetter:
|
||||
case BuiltMemberKind.ExtensionTypeOperator:
|
||||
unhandled(
|
||||
"${memberBuilder.runtimeType}:${memberKind}",
|
||||
"addMemberInternal",
|
||||
memberBuilder.charOffset,
|
||||
memberBuilder.fileUri);
|
||||
case BuiltMemberKind.ExtensionTypeRepresentationField:
|
||||
assert(tearOff == null, "Unexpected tear-off $tearOff");
|
||||
extensionTypeDeclaration.addProcedure(member as Procedure);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void addMemberDescriptorInternal(
|
||||
SourceMemberBuilder memberBuilder,
|
||||
|
@ -473,6 +508,7 @@ class SourceExtensionTypeDeclarationBuilder
|
|||
case BuiltMemberKind.ExtensionGetter:
|
||||
case BuiltMemberKind.ExtensionSetter:
|
||||
case BuiltMemberKind.ExtensionOperator:
|
||||
case BuiltMemberKind.ExtensionTypeRepresentationField:
|
||||
unhandled("${memberBuilder.runtimeType}:${memberKind}", "buildMembers",
|
||||
memberBuilder.charOffset, memberBuilder.fileUri);
|
||||
case BuiltMemberKind.ExtensionField:
|
||||
|
|
|
@ -26,6 +26,7 @@ import '../kernel/body_builder_context.dart';
|
|||
import '../kernel/hierarchy/class_member.dart';
|
||||
import '../kernel/hierarchy/members_builder.dart';
|
||||
import '../kernel/implicit_field_type.dart';
|
||||
import '../kernel/internal_ast.dart';
|
||||
import '../kernel/kernel_helper.dart';
|
||||
import '../kernel/late_lowering.dart' as late_lowering;
|
||||
import '../kernel/member_covariance.dart';
|
||||
|
@ -135,6 +136,23 @@ class SourceFieldBuilder extends SourceMemberBuilderImpl
|
|||
isFinal: isFinal,
|
||||
isCovariantByDeclaration: isCovariantByDeclaration,
|
||||
isNonNullableByDefault: libraryBuilder.isNonNullableByDefault);
|
||||
} else if (fieldNameScheme.isExtensionTypeMember &&
|
||||
fieldNameScheme.isInstanceMember) {
|
||||
assert(fieldReference == null);
|
||||
assert(fieldSetterReference == null);
|
||||
assert(lateIsSetFieldReference == null);
|
||||
assert(lateIsSetGetterReference == null);
|
||||
assert(lateIsSetSetterReference == null);
|
||||
assert(lateGetterReference == null);
|
||||
assert(lateSetterReference == null);
|
||||
_fieldEncoding = new RepresentationFieldEncoding(
|
||||
this,
|
||||
name,
|
||||
fieldNameScheme,
|
||||
fileUri,
|
||||
charOffset,
|
||||
charEndOffset,
|
||||
fieldGetterReference);
|
||||
} else if (isLate &&
|
||||
libraryBuilder.loader.target.backendTarget.isLateFieldLoweringEnabled(
|
||||
hasInitializer: hasInitializer,
|
||||
|
@ -355,6 +373,23 @@ class SourceFieldBuilder extends SourceMemberBuilderImpl
|
|||
isSynthetic: isSynthetic);
|
||||
}
|
||||
|
||||
/// Creates the AST node for this field as the default initializer.
|
||||
void buildImplicitDefaultValue() {
|
||||
_fieldEncoding.buildImplicitDefaultValue();
|
||||
}
|
||||
|
||||
/// Create the [Initializer] for the implicit initialization of this field
|
||||
/// in a constructor.
|
||||
Initializer buildImplicitInitializer() {
|
||||
return _fieldEncoding.buildImplicitInitializer();
|
||||
}
|
||||
|
||||
Initializer buildErroneousInitializer(Expression effect, Expression value,
|
||||
{required int fileOffset}) {
|
||||
return _fieldEncoding.buildErroneousInitializer(effect, value,
|
||||
fileOffset: fileOffset);
|
||||
}
|
||||
|
||||
@override
|
||||
bool get isAssignable {
|
||||
if (isConst) return false;
|
||||
|
@ -568,6 +603,16 @@ abstract class FieldEncoding {
|
|||
List<Initializer> createInitializer(int fileOffset, Expression value,
|
||||
{required bool isSynthetic});
|
||||
|
||||
/// Creates the AST node for this field as the default initializer.
|
||||
void buildImplicitDefaultValue();
|
||||
|
||||
/// Create the [Initializer] for the implicit initialization of this field
|
||||
/// in a constructor.
|
||||
Initializer buildImplicitInitializer();
|
||||
|
||||
Initializer buildErroneousInitializer(Expression effect, Expression value,
|
||||
{required int fileOffset});
|
||||
|
||||
/// Registers that the (implicit) setter associated with this field needs to
|
||||
/// contain a runtime type check to deal with generic covariance.
|
||||
void setGenericCovariantImpl();
|
||||
|
@ -701,9 +746,6 @@ class RegularFieldEncoding implements FieldEncoding {
|
|||
@override
|
||||
void registerMembers(SourceLibraryBuilder library,
|
||||
SourceFieldBuilder fieldBuilder, BuildNodesCallback f) {
|
||||
if (fieldBuilder.isExtensionTypeMember && !fieldBuilder.isStatic) {
|
||||
return;
|
||||
}
|
||||
f(
|
||||
member: _field,
|
||||
kind:
|
||||
|
@ -744,6 +786,23 @@ class RegularFieldEncoding implements FieldEncoding {
|
|||
|
||||
@override
|
||||
bool get isLateLowering => false;
|
||||
|
||||
@override
|
||||
void buildImplicitDefaultValue() {
|
||||
_field.initializer = new NullLiteral()..parent = _field;
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildImplicitInitializer() {
|
||||
return new FieldInitializer(_field, new NullLiteral())..isSynthetic = true;
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildErroneousInitializer(Expression effect, Expression value,
|
||||
{required int fileOffset}) {
|
||||
return new ShadowInvalidFieldInitializer(type, value, effect)
|
||||
..fileOffset = fileOffset;
|
||||
}
|
||||
}
|
||||
|
||||
class SourceFieldMember extends BuilderClassMember {
|
||||
|
@ -1213,6 +1272,22 @@ mixin LateWithoutInitializer on AbstractLateFieldEncoding {
|
|||
isSetEncoding: isSetEncoding,
|
||||
forField: true);
|
||||
}
|
||||
|
||||
@override
|
||||
void buildImplicitDefaultValue() {
|
||||
throw new UnsupportedError("$runtimeType.buildImplicitDefaultValue");
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildImplicitInitializer() {
|
||||
throw new UnsupportedError("$runtimeType.buildImplicitInitializer");
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildErroneousInitializer(Expression effect, Expression value,
|
||||
{required int fileOffset}) {
|
||||
throw new UnsupportedError("$runtimeType.buildDuplicatedInitializer");
|
||||
}
|
||||
}
|
||||
|
||||
class LateFieldWithoutInitializerEncoding extends AbstractLateFieldEncoding
|
||||
|
@ -1300,6 +1375,22 @@ class LateFieldWithInitializerEncoding extends AbstractLateFieldEncoding
|
|||
_createFieldSet(_lateIsSetField!, value),
|
||||
isSetEncoding: isSetEncoding);
|
||||
}
|
||||
|
||||
@override
|
||||
void buildImplicitDefaultValue() {
|
||||
throw new UnsupportedError("$runtimeType.buildImplicitDefaultValue");
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildImplicitInitializer() {
|
||||
throw new UnsupportedError("$runtimeType.buildImplicitInitializer");
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildErroneousInitializer(Expression effect, Expression value,
|
||||
{required int fileOffset}) {
|
||||
throw new UnsupportedError("$runtimeType.buildDuplicatedInitializer");
|
||||
}
|
||||
}
|
||||
|
||||
class LateFinalFieldWithoutInitializerEncoding extends AbstractLateFieldEncoding
|
||||
|
@ -1415,6 +1506,22 @@ class LateFinalFieldWithInitializerEncoding extends AbstractLateFieldEncoding {
|
|||
CoreTypes coreTypes, String name, VariableDeclaration parameter) =>
|
||||
throw new UnsupportedError(
|
||||
'$runtimeType._createSetterBody is not supported.');
|
||||
|
||||
@override
|
||||
void buildImplicitDefaultValue() {
|
||||
throw new UnsupportedError("$runtimeType.buildImplicitDefaultValue");
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildImplicitInitializer() {
|
||||
throw new UnsupportedError("$runtimeType.buildImplicitInitializer");
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildErroneousInitializer(Expression effect, Expression value,
|
||||
{required int fileOffset}) {
|
||||
throw new UnsupportedError("$runtimeType.buildDuplicatedInitializer");
|
||||
}
|
||||
}
|
||||
|
||||
class _SynthesizedFieldClassMember implements ClassMember {
|
||||
|
@ -1463,7 +1570,7 @@ class _SynthesizedFieldClassMember implements ClassMember {
|
|||
bool get isProperty => isField || isGetter || isSetter;
|
||||
|
||||
@override
|
||||
DeclarationBuilder get declarationBuilder => fieldBuilder.classBuilder!;
|
||||
DeclarationBuilder get declarationBuilder => fieldBuilder.declarationBuilder!;
|
||||
|
||||
@override
|
||||
bool isObjectMember(ClassBuilder objectClass) {
|
||||
|
@ -1750,6 +1857,7 @@ class AbstractOrExternalFieldEncoding implements FieldEncoding {
|
|||
|
||||
@override
|
||||
void createBodies(CoreTypes coreTypes, Expression? initializer) {
|
||||
// TODO(johnniwinther): Enable this assert.
|
||||
//assert(initializer != null);
|
||||
}
|
||||
|
||||
|
@ -1864,6 +1972,157 @@ class AbstractOrExternalFieldEncoding implements FieldEncoding {
|
|||
|
||||
@override
|
||||
bool get isLateLowering => false;
|
||||
|
||||
@override
|
||||
void buildImplicitDefaultValue() {
|
||||
throw new UnsupportedError("$runtimeType.buildImplicitDefaultValue");
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildImplicitInitializer() {
|
||||
throw new UnsupportedError("$runtimeType.buildImplicitInitializer");
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildErroneousInitializer(Expression effect, Expression value,
|
||||
{required int fileOffset}) {
|
||||
throw new UnsupportedError("$runtimeType.buildDuplicatedInitializer");
|
||||
}
|
||||
}
|
||||
|
||||
/// The encoding of an extension type declaration representation field.
|
||||
class RepresentationFieldEncoding implements FieldEncoding {
|
||||
final SourceFieldBuilder _fieldBuilder;
|
||||
|
||||
late Procedure _getter;
|
||||
DartType? _type;
|
||||
|
||||
RepresentationFieldEncoding(
|
||||
this._fieldBuilder,
|
||||
String name,
|
||||
NameScheme nameScheme,
|
||||
Uri fileUri,
|
||||
int charOffset,
|
||||
int charEndOffset,
|
||||
Reference? getterReference) {
|
||||
_getter = new Procedure(
|
||||
dummyName, ProcedureKind.Getter, new FunctionNode(null),
|
||||
isAbstractFieldAccessor: true,
|
||||
fileUri: fileUri,
|
||||
reference: getterReference)
|
||||
..stubKind = ProcedureStubKind.RepresentationField
|
||||
..fileOffset = charOffset
|
||||
..fileEndOffset = charEndOffset
|
||||
..isNonNullableByDefault = true;
|
||||
nameScheme
|
||||
.getFieldMemberName(FieldNameType.RepresentationField, name,
|
||||
isSynthesized: true)
|
||||
.attachMember(_getter);
|
||||
}
|
||||
|
||||
@override
|
||||
DartType get type {
|
||||
assert(_type != null,
|
||||
"Type has not been computed for field ${_fieldBuilder.name}.");
|
||||
return _type!;
|
||||
}
|
||||
|
||||
@override
|
||||
void set type(DartType value) {
|
||||
assert(_type == null || _type is InferredType,
|
||||
"Type has already been computed for field ${_fieldBuilder.name}.");
|
||||
_type = value;
|
||||
if (value is! InferredType) {
|
||||
_getter.function.returnType = value;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void createBodies(CoreTypes coreTypes, Expression? initializer) {
|
||||
// TODO(johnniwinther): Enable this assert.
|
||||
//assert(initializer != null);
|
||||
}
|
||||
|
||||
@override
|
||||
List<Initializer> createInitializer(int fileOffset, Expression value,
|
||||
{required bool isSynthetic}) {
|
||||
return <Initializer>[
|
||||
new ExtensionTypeRepresentationFieldInitializer(_getter, value)
|
||||
];
|
||||
}
|
||||
|
||||
@override
|
||||
void build(
|
||||
SourceLibraryBuilder libraryBuilder, SourceFieldBuilder fieldBuilder) {
|
||||
_getter..isConst = fieldBuilder.isConst;
|
||||
_getter
|
||||
..isStatic = false
|
||||
..isExtensionMember = false
|
||||
..isExtensionTypeMember = true
|
||||
..isAbstract = true
|
||||
..isExternal = false;
|
||||
}
|
||||
|
||||
@override
|
||||
void registerMembers(SourceLibraryBuilder library,
|
||||
SourceFieldBuilder fieldBuilder, BuildNodesCallback f) {
|
||||
f(member: _getter, kind: BuiltMemberKind.ExtensionTypeRepresentationField);
|
||||
}
|
||||
|
||||
@override
|
||||
void setGenericCovariantImpl() {
|
||||
throw new UnsupportedError("$runtimeType.setGenericCovariantImpl");
|
||||
}
|
||||
|
||||
@override
|
||||
Field get field {
|
||||
throw new UnsupportedError("$runtimeType.field");
|
||||
}
|
||||
|
||||
@override
|
||||
Iterable<Annotatable> get annotatables => [_getter];
|
||||
|
||||
@override
|
||||
Member get readTarget => _getter;
|
||||
|
||||
@override
|
||||
Member? get writeTarget => null;
|
||||
|
||||
@override
|
||||
Iterable<Member> get exportedMembers => [_getter];
|
||||
|
||||
@override
|
||||
List<ClassMember> getLocalMembers(SourceFieldBuilder fieldBuilder) =>
|
||||
<ClassMember>[
|
||||
new _SynthesizedFieldClassMember(fieldBuilder, _getter,
|
||||
_SynthesizedFieldMemberKind.RepresentationField,
|
||||
forSetter: false, isInternalImplementation: false)
|
||||
];
|
||||
|
||||
@override
|
||||
List<ClassMember> getLocalSetters(SourceFieldBuilder fieldBuilder) =>
|
||||
const <ClassMember>[];
|
||||
|
||||
@override
|
||||
bool get isLateLowering => false;
|
||||
|
||||
@override
|
||||
void buildImplicitDefaultValue() {
|
||||
// Not needed.
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildImplicitInitializer() {
|
||||
return new ExtensionTypeRepresentationFieldInitializer(
|
||||
_getter, new NullLiteral());
|
||||
}
|
||||
|
||||
@override
|
||||
Initializer buildErroneousInitializer(Expression effect, Expression value,
|
||||
{required int fileOffset}) {
|
||||
return new ShadowInvalidFieldInitializer(type, value, effect)
|
||||
..fileOffset = fileOffset;
|
||||
}
|
||||
}
|
||||
|
||||
enum _SynthesizedFieldMemberKind {
|
||||
|
@ -1878,4 +2137,7 @@ enum _SynthesizedFieldMemberKind {
|
|||
|
||||
/// A getter or setter used for abstract or external fields.
|
||||
AbstractExternalGetterSetter,
|
||||
|
||||
/// A getter for an extension type declaration representation field.
|
||||
RepresentationField,
|
||||
}
|
||||
|
|
|
@ -213,8 +213,11 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
final LibraryBuilder? _nameOrigin;
|
||||
|
||||
final Library? referencesFrom;
|
||||
final IndexedLibrary? referencesFromIndexed;
|
||||
IndexedClass? _currentClassReferencesFromIndexed;
|
||||
|
||||
final IndexedLibrary? indexedLibrary;
|
||||
// TODO(johnniwinther): Use [_indexedContainer] for library members and make
|
||||
// it [null] when there is null corresponding [IndexedContainer].
|
||||
IndexedContainer? _indexedContainer;
|
||||
|
||||
/// Exports that can't be serialized.
|
||||
///
|
||||
|
@ -320,7 +323,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
Map<String, Builder>? omittedTypes})
|
||||
: _languageVersion = packageLanguageVersion,
|
||||
currentTypeParameterScopeBuilder = _libraryTypeParameterScopeBuilder,
|
||||
referencesFromIndexed =
|
||||
indexedLibrary =
|
||||
referencesFrom == null ? null : new IndexedLibrary(referencesFrom),
|
||||
_immediateOrigin = origin,
|
||||
_omittedTypeDeclarationBuilders = omittedTypes,
|
||||
|
@ -1156,9 +1159,9 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
if (unserializableExports != null) {
|
||||
Name fieldName = new Name(unserializableExportName, library);
|
||||
Reference? fieldReference =
|
||||
referencesFromIndexed?.lookupFieldReference(fieldName);
|
||||
indexedLibrary?.lookupFieldReference(fieldName);
|
||||
Reference? getterReference =
|
||||
referencesFromIndexed?.lookupGetterReference(fieldName);
|
||||
indexedLibrary?.lookupGetterReference(fieldName);
|
||||
library.addField(new Field.immutable(fieldName,
|
||||
initializer: new StringLiteral(jsonEncode(unserializableExports)),
|
||||
isStatic: true,
|
||||
|
@ -2051,7 +2054,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
startOffset,
|
||||
nameOffset,
|
||||
endOffset,
|
||||
_currentClassReferencesFromIndexed,
|
||||
_indexedContainer,
|
||||
isMixinDeclaration: isMixinDeclaration,
|
||||
isMacro: isMacro,
|
||||
isSealed: isSealed,
|
||||
|
@ -2092,7 +2095,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
constructors.forEach(setParentAndCheckConflicts);
|
||||
setters.forEach(setParentAndCheckConflicts);
|
||||
addBuilder(className, classBuilder, nameOffset,
|
||||
getterReference: _currentClassReferencesFromIndexed?.cls.reference);
|
||||
getterReference: _indexedContainer?.reference);
|
||||
}
|
||||
|
||||
Map<String, NominalVariableBuilder>? checkTypeVariables(
|
||||
|
@ -2307,7 +2310,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
Extension? referenceFrom;
|
||||
ExtensionName extensionName = declaration.extensionName!;
|
||||
if (name != null) {
|
||||
referenceFrom = referencesFromIndexed?.lookupExtension(name);
|
||||
referenceFrom = indexedLibrary?.lookupExtension(name);
|
||||
}
|
||||
|
||||
ExtensionBuilder extensionBuilder = new SourceExtensionBuilder(
|
||||
|
@ -2385,7 +2388,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
new ConstructorScope(name, constructors);
|
||||
|
||||
ExtensionTypeDeclaration? referenceFrom =
|
||||
referencesFromIndexed?.lookupExtensionTypeDeclaration(name);
|
||||
indexedLibrary?.lookupExtensionTypeDeclaration(name);
|
||||
|
||||
SourceFieldBuilder? representationFieldBuilder;
|
||||
outer:
|
||||
|
@ -2481,7 +2484,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
new ConstructorScope(name, constructors);
|
||||
|
||||
ExtensionTypeDeclaration? referenceFrom =
|
||||
referencesFromIndexed?.lookupExtensionTypeDeclaration(name);
|
||||
indexedLibrary?.lookupExtensionTypeDeclaration(name);
|
||||
|
||||
SourceFieldBuilder? representationFieldBuilder;
|
||||
outer:
|
||||
|
@ -2799,9 +2802,9 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
: metadata.first.charOffset;
|
||||
|
||||
IndexedClass? referencesFromIndexedClass;
|
||||
if (referencesFromIndexed != null) {
|
||||
if (indexedLibrary != null) {
|
||||
referencesFromIndexedClass =
|
||||
referencesFromIndexed!.lookupIndexedClass(fullname);
|
||||
indexedLibrary!.lookupIndexedClass(fullname);
|
||||
}
|
||||
|
||||
SourceClassBuilder application = new SourceClassBuilder(
|
||||
|
@ -2959,6 +2962,8 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
(modifiers & staticMask) == 0;
|
||||
final bool isExtensionMember = currentTypeParameterScopeBuilder.kind ==
|
||||
TypeParameterScopeKind.extensionDeclaration;
|
||||
final bool isExtensionTypeMember = currentTypeParameterScopeBuilder.kind ==
|
||||
TypeParameterScopeKind.extensionTypeDeclaration;
|
||||
ContainerType containerType =
|
||||
currentTypeParameterScopeBuilder.containerType;
|
||||
ContainerName? containerName =
|
||||
|
@ -2977,21 +2982,29 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
isInstanceMember: isInstanceMember,
|
||||
containerName: containerName,
|
||||
containerType: containerType,
|
||||
libraryName: referencesFrom != null
|
||||
? new LibraryName(referencesFrom!.reference)
|
||||
libraryName: indexedLibrary != null
|
||||
? new LibraryName(indexedLibrary!.reference)
|
||||
: libraryName);
|
||||
if (referencesFrom != null) {
|
||||
IndexedContainer indexedContainer =
|
||||
(_currentClassReferencesFromIndexed ?? referencesFromIndexed)!;
|
||||
if (isExtensionMember && isInstanceMember && isExternal) {
|
||||
/// An external extension instance field is special. It is treated
|
||||
/// as an external getter/setter pair and is therefore encoded as a pair
|
||||
/// of top level methods using the extension instance member naming
|
||||
/// convention.
|
||||
IndexedContainer? indexedContainer = _indexedContainer ?? indexedLibrary;
|
||||
if (indexedContainer != null) {
|
||||
if ((isExtensionMember || isExtensionTypeMember) &&
|
||||
isInstanceMember &&
|
||||
isExternal) {
|
||||
/// An external extension (type) instance field is special. It is
|
||||
/// treated as an external getter/setter pair and is therefore encoded
|
||||
/// as a pair of top level methods using the extension instance member
|
||||
/// naming convention.
|
||||
fieldGetterReference = indexedContainer.lookupGetterReference(
|
||||
nameScheme.getProcedureMemberName(ProcedureKind.Getter, name).name);
|
||||
fieldSetterReference = indexedContainer.lookupGetterReference(
|
||||
nameScheme.getProcedureMemberName(ProcedureKind.Setter, name).name);
|
||||
} else if (isExtensionTypeMember && isInstanceMember) {
|
||||
Name nameToLookup = nameScheme
|
||||
.getFieldMemberName(FieldNameType.RepresentationField, name,
|
||||
isSynthesized: true)
|
||||
.name;
|
||||
fieldGetterReference =
|
||||
indexedContainer.lookupGetterReference(nameToLookup);
|
||||
} else {
|
||||
Name nameToLookup = nameScheme
|
||||
.getFieldMemberName(FieldNameType.Field, name,
|
||||
|
@ -3119,21 +3132,13 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
Reference? constructorReference;
|
||||
Reference? tearOffReference;
|
||||
|
||||
if (_currentClassReferencesFromIndexed != null) {
|
||||
constructorReference = _currentClassReferencesFromIndexed!
|
||||
.lookupConstructorReference(nameScheme
|
||||
.getConstructorMemberName(constructorName, isTearOff: false)
|
||||
.name);
|
||||
tearOffReference = _currentClassReferencesFromIndexed!
|
||||
.lookupGetterReference(nameScheme
|
||||
.getConstructorMemberName(constructorName, isTearOff: true)
|
||||
.name);
|
||||
} else if (referencesFromIndexed != null) {
|
||||
constructorReference = referencesFromIndexed!.lookupGetterReference(
|
||||
IndexedContainer? indexedContainer = _indexedContainer;
|
||||
if (indexedContainer != null) {
|
||||
constructorReference = indexedContainer.lookupConstructorReference(
|
||||
nameScheme
|
||||
.getConstructorMemberName(constructorName, isTearOff: false)
|
||||
.name);
|
||||
tearOffReference = referencesFromIndexed!.lookupGetterReference(nameScheme
|
||||
tearOffReference = indexedContainer.lookupGetterReference(nameScheme
|
||||
.getConstructorMemberName(constructorName, isTearOff: true)
|
||||
.name);
|
||||
}
|
||||
|
@ -3244,33 +3249,26 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
}
|
||||
Reference? procedureReference;
|
||||
Reference? tearOffReference;
|
||||
if (referencesFrom != null) {
|
||||
IndexedContainer? indexedContainer = _indexedContainer ?? indexedLibrary;
|
||||
if (indexedContainer != null) {
|
||||
Name nameToLookup = nameScheme.getProcedureMemberName(kind, name).name;
|
||||
if (_currentClassReferencesFromIndexed != null) {
|
||||
if (kind == ProcedureKind.Setter) {
|
||||
procedureReference = _currentClassReferencesFromIndexed!
|
||||
.lookupSetterReference(nameToLookup);
|
||||
if (kind == ProcedureKind.Setter) {
|
||||
if ((isExtensionMember || isExtensionTypeMember) && isInstanceMember) {
|
||||
// Extension (type) instance setters are encoded as methods.
|
||||
procedureReference =
|
||||
indexedContainer.lookupGetterReference(nameToLookup);
|
||||
} else {
|
||||
procedureReference = _currentClassReferencesFromIndexed!
|
||||
.lookupGetterReference(nameToLookup);
|
||||
procedureReference =
|
||||
indexedContainer.lookupSetterReference(nameToLookup);
|
||||
}
|
||||
} else {
|
||||
if (kind == ProcedureKind.Setter &&
|
||||
// Extension (type) instance setters are encoded as methods.
|
||||
!((isExtensionMember || isExtensionTypeMember) &&
|
||||
isInstanceMember)) {
|
||||
procedureReference =
|
||||
referencesFromIndexed!.lookupSetterReference(nameToLookup);
|
||||
} else {
|
||||
procedureReference =
|
||||
referencesFromIndexed!.lookupGetterReference(nameToLookup);
|
||||
}
|
||||
procedureReference =
|
||||
indexedContainer.lookupGetterReference(nameToLookup);
|
||||
if ((isExtensionMember || isExtensionTypeMember) &&
|
||||
kind == ProcedureKind.Method) {
|
||||
tearOffReference = referencesFromIndexed!.lookupGetterReference(
|
||||
nameScheme
|
||||
.getProcedureMemberName(ProcedureKind.Getter, name)
|
||||
.name);
|
||||
tearOffReference = indexedContainer.lookupGetterReference(nameScheme
|
||||
.getProcedureMemberName(ProcedureKind.Getter, name)
|
||||
.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3356,28 +3354,26 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
isInstanceMember: false,
|
||||
libraryName: referencesFrom != null
|
||||
? new LibraryName(
|
||||
(_currentClassReferencesFromIndexed ?? referencesFromIndexed)!
|
||||
.library
|
||||
.reference)
|
||||
(_indexedContainer ?? indexedLibrary)!.library.reference)
|
||||
: libraryName);
|
||||
|
||||
Reference? constructorReference;
|
||||
Reference? tearOffReference;
|
||||
if (_currentClassReferencesFromIndexed != null) {
|
||||
constructorReference = _currentClassReferencesFromIndexed!
|
||||
.lookupConstructorReference(procedureNameScheme
|
||||
.getConstructorMemberName(procedureName, isTearOff: false)
|
||||
.name);
|
||||
tearOffReference = _currentClassReferencesFromIndexed!
|
||||
.lookupGetterReference(procedureNameScheme
|
||||
.getConstructorMemberName(procedureName, isTearOff: true)
|
||||
.name);
|
||||
} else if (referencesFromIndexed != null) {
|
||||
constructorReference = referencesFromIndexed!.lookupGetterReference(
|
||||
if (_indexedContainer != null) {
|
||||
constructorReference = _indexedContainer!.lookupConstructorReference(
|
||||
procedureNameScheme
|
||||
.getConstructorMemberName(procedureName, isTearOff: false)
|
||||
.name);
|
||||
tearOffReference = referencesFromIndexed!.lookupGetterReference(
|
||||
tearOffReference = _indexedContainer!.lookupGetterReference(
|
||||
procedureNameScheme
|
||||
.getConstructorMemberName(procedureName, isTearOff: true)
|
||||
.name);
|
||||
} else if (indexedLibrary != null) {
|
||||
constructorReference = indexedLibrary!.lookupGetterReference(
|
||||
procedureNameScheme
|
||||
.getConstructorMemberName(procedureName, isTearOff: false)
|
||||
.name);
|
||||
tearOffReference = indexedLibrary!.lookupGetterReference(
|
||||
procedureNameScheme
|
||||
.getConstructorMemberName(procedureName, isTearOff: true)
|
||||
.name);
|
||||
|
@ -3469,8 +3465,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
int charEndOffset) {
|
||||
IndexedClass? referencesFromIndexedClass;
|
||||
if (referencesFrom != null) {
|
||||
referencesFromIndexedClass =
|
||||
referencesFromIndexed!.lookupIndexedClass(name);
|
||||
referencesFromIndexedClass = indexedLibrary!.lookupIndexedClass(name);
|
||||
}
|
||||
// Nested declaration began in `OutlineBuilder.beginEnum`.
|
||||
TypeParameterScopeBuilder declaration =
|
||||
|
@ -3565,7 +3560,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
typeVariable.variance = pendingVariance;
|
||||
}
|
||||
}
|
||||
Typedef? referenceFrom = referencesFromIndexed?.lookupTypedef(name);
|
||||
Typedef? referenceFrom = indexedLibrary?.lookupTypedef(name);
|
||||
TypeAliasBuilder typedefBuilder = new SourceTypeAliasBuilder(
|
||||
metadata, name, typeVariables, type, this, charOffset,
|
||||
referenceFrom: referenceFrom);
|
||||
|
@ -5302,22 +5297,37 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
_extensionsInScope = null;
|
||||
}
|
||||
|
||||
/// Set to some non-null name when entering a class; set to null when leaving
|
||||
/// the class.
|
||||
/// Call this when entering a class, mixin, enum, or extension type
|
||||
/// declaration.
|
||||
///
|
||||
/// Called in OutlineBuilder.beginClassDeclaration,
|
||||
/// OutlineBuilder.endClassDeclaration,
|
||||
/// OutlineBuilder.beginMixinDeclaration,
|
||||
/// OutlineBuilder.endMixinDeclaration.
|
||||
void setCurrentClassName(String? name) {
|
||||
if (name == null) {
|
||||
_currentClassReferencesFromIndexed = null;
|
||||
} else if (referencesFrom != null) {
|
||||
_currentClassReferencesFromIndexed =
|
||||
referencesFromIndexed!.lookupIndexedClass(name);
|
||||
/// This is done to set up the current [_indexedContainer] used to lookup
|
||||
/// references of members from a previous incremental compilation.
|
||||
///
|
||||
/// Called in `OutlineBuilder.beginClassDeclaration`,
|
||||
/// `OutlineBuilder.beginEnum`, `OutlineBuilder.beginMixinDeclaration` and
|
||||
/// `OutlineBuilder.beginExtensionTypeDeclaration`.
|
||||
void beginIndexedContainer(String name,
|
||||
{required bool isExtensionTypeDeclaration}) {
|
||||
if (indexedLibrary != null) {
|
||||
if (isExtensionTypeDeclaration) {
|
||||
_indexedContainer =
|
||||
indexedLibrary!.lookupIndexedExtensionTypeDeclaration(name);
|
||||
} else {
|
||||
_indexedContainer = indexedLibrary!.lookupIndexedClass(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Call this when leaving a class, mixin, enum, or extension type
|
||||
/// declaration.
|
||||
///
|
||||
/// Called in `OutlineBuilder.endClassDeclaration`,
|
||||
/// `OutlineBuilder.endEnum`, `OutlineBuilder.endMixinDeclaration` and
|
||||
/// `OutlineBuilder.endExtensionTypeDeclaration`.
|
||||
void endIndexedContainer() {
|
||||
_indexedContainer = null;
|
||||
}
|
||||
|
||||
void registerPendingNullability(
|
||||
Uri fileUri, int charOffset, TypeParameterType type) {
|
||||
_pendingNullabilities
|
||||
|
|
|
@ -2580,8 +2580,7 @@ severity: $severity
|
|||
Library target = library.buildOutlineNodes(coreLibrary);
|
||||
if (library.referencesFrom != null) {
|
||||
referenceFromIndex ??= new ReferenceFromIndex();
|
||||
referenceFromIndex!
|
||||
.addIndexedLibrary(target, library.referencesFromIndexed!);
|
||||
referenceFromIndex!.addIndexedLibrary(target, library.indexedLibrary!);
|
||||
}
|
||||
libraries.add(target);
|
||||
}
|
||||
|
|
|
@ -197,6 +197,7 @@ enum BuiltMemberKind {
|
|||
ExtensionTypeOperator,
|
||||
ExtensionTypeFactory,
|
||||
ExtensionTypeRedirectingFactory,
|
||||
ExtensionTypeRepresentationField,
|
||||
LateIsSetField,
|
||||
LateGetter,
|
||||
LateSetter,
|
||||
|
|
|
@ -269,11 +269,11 @@ class SourceTypeAliasBuilder extends TypeAliasBuilderImpl {
|
|||
Name targetName =
|
||||
new Name(constructorName, declaration.libraryBuilder.library);
|
||||
Reference? tearOffReference;
|
||||
if (libraryBuilder.referencesFromIndexed != null) {
|
||||
if (libraryBuilder.indexedLibrary != null) {
|
||||
Name tearOffName = new Name(
|
||||
typedefTearOffName(name, constructorName),
|
||||
libraryBuilder.referencesFromIndexed!.library);
|
||||
tearOffReference = libraryBuilder.referencesFromIndexed!
|
||||
libraryBuilder.indexedLibrary!.library);
|
||||
tearOffReference = libraryBuilder.indexedLibrary!
|
||||
.lookupGetterReference(tearOffName);
|
||||
}
|
||||
|
||||
|
|
|
@ -2056,7 +2056,7 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
|||
InitializerInferenceResult visitShadowInvalidFieldInitializer(
|
||||
ShadowInvalidFieldInitializer node) {
|
||||
ExpressionInferenceResult initializerResult =
|
||||
inferExpression(node.value, node.field.type, isVoidAllowed: false);
|
||||
inferExpression(node.value, node.fieldType, isVoidAllowed: false);
|
||||
node.value = initializerResult.expression..parent = node;
|
||||
return const SuccessfulInitializerInferenceResult();
|
||||
}
|
||||
|
@ -7870,6 +7870,20 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
|||
inferenceResult);
|
||||
}
|
||||
|
||||
InitializerInferenceResult visitExtensionTypeRepresentationFieldInitializer(
|
||||
ExtensionTypeRepresentationFieldInitializer node) {
|
||||
DartType fieldType = node.field.getterType;
|
||||
fieldType = constructorDeclaration!.substituteFieldType(fieldType);
|
||||
ExpressionInferenceResult initializerResult =
|
||||
inferExpression(node.value, fieldType);
|
||||
Expression initializer = ensureAssignableResult(
|
||||
fieldType, initializerResult,
|
||||
fileOffset: node.fileOffset)
|
||||
.expression;
|
||||
node.value = initializer..parent = node;
|
||||
return const SuccessfulInitializerInferenceResult();
|
||||
}
|
||||
|
||||
@override
|
||||
ExpressionInferenceResult visitRethrow(Rethrow node, DartType typeContext) {
|
||||
flowAnalysis.handleExit();
|
||||
|
|
|
@ -224,6 +224,9 @@ class InheritanceDataExtractor extends CfeDataExtractor<Features> {
|
|||
features.add(Tag.concreteMixinStub);
|
||||
features[Tag.stubTarget] = memberQualifiedName(member.stubTarget!);
|
||||
break;
|
||||
case ProcedureStubKind.RepresentationField:
|
||||
// TODO: Handle this case.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -362,6 +365,9 @@ class InheritanceDataExtractor extends CfeDataExtractor<Features> {
|
|||
features.add(Tag.concreteMixinStub);
|
||||
features[Tag.stubTarget] = memberQualifiedName(member.stubTarget!);
|
||||
break;
|
||||
case ProcedureStubKind.RepresentationField:
|
||||
// TODO: Handle this case.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -20,6 +20,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -18,6 +18,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -18,6 +18,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -17,6 +17,7 @@ class A extends core::Object {
|
|||
}
|
||||
@js_::JS::•()
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -20,6 +20,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -18,6 +18,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -20,6 +20,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -18,6 +18,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -18,6 +18,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -17,6 +17,7 @@ class A extends core::Object {
|
|||
}
|
||||
@js_::JS::•()
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -20,6 +20,7 @@ class A extends core::Object {
|
|||
}
|
||||
@#C2
|
||||
extension type B(self::A a) {
|
||||
abstract inline-class-member representation-field get a() → self::A;
|
||||
get field = self::B|get#field;
|
||||
set field = self::B|set#field;
|
||||
method method = self::B|method;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -3,18 +3,21 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::I|constructor#_;
|
||||
constructor tearoff _ = self::I|constructor#_#_#tearOff;
|
||||
static factory • = self::I|constructor#;
|
||||
static factory tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type J(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor _ = self::J|constructor#_;
|
||||
constructor tearoff _ = self::J|constructor#_#_#tearOff;
|
||||
static factory • = self::J|constructor#;
|
||||
static factory tearoff • = self::J|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type K<T extends core::Object? = dynamic>(T% i) {
|
||||
abstract inline-class-member representation-field get i() → T%;
|
||||
constructor _ = self::K|constructor#_;
|
||||
constructor tearoff _ = self::K|constructor#_#_#tearOff;
|
||||
static factory • = self::K|constructor#;
|
||||
|
|
|
@ -21,10 +21,12 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type E(self::B it) implements self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */ {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -21,10 +21,12 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type E(self::B it) implements self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */ {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -21,10 +21,12 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type E(self::B it) implements self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */ {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -21,10 +21,12 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type E(self::B it) implements self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */ {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -18,10 +18,12 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type E(self::B it) implements self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */ {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -21,10 +21,12 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type E(self::B it) implements self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */ {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import "dart:core" as core;
|
|||
|
||||
@#C2
|
||||
extension type A(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
method m = self::A|m;
|
||||
method tearoff m = self::A|get#m;
|
||||
constructor • = self::A|constructor#;
|
||||
|
|
|
@ -4,6 +4,7 @@ import "dart:core" as core;
|
|||
|
||||
@#C2
|
||||
extension type A(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
method m = self::A|m;
|
||||
method tearoff m = self::A|get#m;
|
||||
constructor • = self::A|constructor#;
|
||||
|
|
|
@ -4,6 +4,7 @@ import "dart:core" as core;
|
|||
|
||||
@#C2
|
||||
extension type A(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
method m = self::A|m;
|
||||
method tearoff m = self::A|get#m;
|
||||
constructor • = self::A|constructor#;
|
||||
|
|
|
@ -4,6 +4,7 @@ import "dart:core" as core;
|
|||
|
||||
@#C2
|
||||
extension type A(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
method m = self::A|m;
|
||||
method tearoff m = self::A|get#m;
|
||||
constructor • = self::A|constructor#;
|
||||
|
|
|
@ -4,6 +4,7 @@ import "dart:core" as core;
|
|||
|
||||
@core::Deprecated::•("")
|
||||
extension type A(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
method m = self::A|m;
|
||||
method tearoff m = self::A|get#m;
|
||||
constructor • = self::A|constructor#;
|
||||
|
|
|
@ -4,6 +4,7 @@ import "dart:core" as core;
|
|||
|
||||
@#C2
|
||||
extension type A(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
method m = self::A|m;
|
||||
method tearoff m = self::A|get#m;
|
||||
constructor • = self::A|constructor#;
|
||||
|
|
|
@ -295,22 +295,27 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type C(core::Object? o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object?;
|
||||
constructor • = self::C|constructor#;
|
||||
constructor tearoff • = self::C|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type D(core::Object o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object;
|
||||
constructor • = self::D|constructor#;
|
||||
constructor tearoff • = self::D|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type E(self::B it) implements self::A {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */, self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type G<T extends core::Object? = dynamic>(T% o) {
|
||||
abstract inline-class-member representation-field get o() → T%;
|
||||
constructor • = self::G|constructor#;
|
||||
constructor tearoff • = self::G|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -295,22 +295,27 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type C(core::Object? o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object?;
|
||||
constructor • = self::C|constructor#;
|
||||
constructor tearoff • = self::C|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type D(core::Object o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object;
|
||||
constructor • = self::D|constructor#;
|
||||
constructor tearoff • = self::D|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type E(self::B it) implements self::A {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */, self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type G<T extends core::Object? = dynamic>(T% o) {
|
||||
abstract inline-class-member representation-field get o() → T%;
|
||||
constructor • = self::G|constructor#;
|
||||
constructor tearoff • = self::G|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -295,22 +295,27 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type C(core::Object? o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object?;
|
||||
constructor • = self::C|constructor#;
|
||||
constructor tearoff • = self::C|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type D(core::Object o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object;
|
||||
constructor • = self::D|constructor#;
|
||||
constructor tearoff • = self::D|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type E(self::B it) implements self::A {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */, self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type G<T extends core::Object? = dynamic>(T% o) {
|
||||
abstract inline-class-member representation-field get o() → T%;
|
||||
constructor • = self::G|constructor#;
|
||||
constructor tearoff • = self::G|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -295,22 +295,27 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type C(core::Object? o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object?;
|
||||
constructor • = self::C|constructor#;
|
||||
constructor tearoff • = self::C|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type D(core::Object o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object;
|
||||
constructor • = self::D|constructor#;
|
||||
constructor tearoff • = self::D|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type E(self::B it) implements self::A {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */, self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type G<T extends core::Object? = dynamic>(T% o) {
|
||||
abstract inline-class-member representation-field get o() → T%;
|
||||
constructor • = self::G|constructor#;
|
||||
constructor tearoff • = self::G|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -11,22 +11,27 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type C(core::Object? o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object?;
|
||||
constructor • = self::C|constructor#;
|
||||
constructor tearoff • = self::C|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type D(core::Object o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object;
|
||||
constructor • = self::D|constructor#;
|
||||
constructor tearoff • = self::D|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type E(self::B it) implements self::A {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */, self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type G<T extends core::Object? = dynamic>(T% o) {
|
||||
abstract inline-class-member representation-field get o() → T%;
|
||||
constructor • = self::G|constructor#;
|
||||
constructor tearoff • = self::G|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -295,22 +295,27 @@ class B extends self::A {
|
|||
;
|
||||
}
|
||||
extension type C(core::Object? o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object?;
|
||||
constructor • = self::C|constructor#;
|
||||
constructor tearoff • = self::C|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type D(core::Object o) {
|
||||
abstract inline-class-member representation-field get o() → core::Object;
|
||||
constructor • = self::D|constructor#;
|
||||
constructor tearoff • = self::D|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type E(self::B it) implements self::A {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::E|constructor#;
|
||||
constructor tearoff • = self::E|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type F(self::B it) implements self::E /* = self::B */, self::B {
|
||||
abstract inline-class-member representation-field get it() → self::B;
|
||||
constructor • = self::F|constructor#;
|
||||
constructor tearoff • = self::F|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type G<T extends core::Object? = dynamic>(T% o) {
|
||||
abstract inline-class-member representation-field get o() → T%;
|
||||
constructor • = self::G|constructor#;
|
||||
constructor tearoff • = self::G|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -89,75 +89,90 @@ class C2 extends core::Object implements self::C1 {
|
|||
return 1;
|
||||
}
|
||||
extension type I1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
method x = self::I1|x;
|
||||
method tearoff x = self::I1|get#x;
|
||||
constructor • = self::I1|constructor#;
|
||||
constructor tearoff • = self::I1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int id1) {
|
||||
abstract inline-class-member representation-field get id1() → core::int;
|
||||
constructor • = self::I2|constructor#;
|
||||
constructor tearoff • = self::I2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I3(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::I3|get#property;
|
||||
constructor • = self::I3|constructor#;
|
||||
constructor tearoff • = self::I3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I4(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::I4|property;
|
||||
constructor • = self::I4|constructor#;
|
||||
constructor tearoff • = self::I4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET1(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get x = get self::ET1|x;
|
||||
constructor • = self::ET1|constructor#;
|
||||
constructor tearoff • = self::ET1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET2(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method x = self::ET2|x;
|
||||
constructor • = self::ET2|constructor#;
|
||||
constructor tearoff • = self::ET2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET3(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set x = set self::ET3|x;
|
||||
constructor • = self::ET3|constructor#;
|
||||
constructor tearoff • = self::ET3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET4(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field x = self::ET4|x;
|
||||
constructor • = self::ET4|constructor#;
|
||||
constructor tearoff • = self::ET4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET5(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method id1 = self::ET5|id1;
|
||||
constructor • = self::ET5|constructor#;
|
||||
constructor tearoff • = self::ET5|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET6(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get id1 = get self::ET6|id1;
|
||||
constructor • = self::ET6|constructor#;
|
||||
constructor tearoff • = self::ET6|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET7(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field id1 = self::ET7|id1;
|
||||
constructor • = self::ET7|constructor#;
|
||||
constructor tearoff • = self::ET7|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET8(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set id1 = set self::ET8|id1;
|
||||
constructor • = self::ET8|constructor#;
|
||||
constructor tearoff • = self::ET8|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET9(core::int id) implements self::I3 /* = core::int */, self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor • = self::ET9|constructor#;
|
||||
constructor tearoff • = self::ET9|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET10(core::int id) implements self::I3 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::ET10|property;
|
||||
constructor • = self::ET10|constructor#;
|
||||
constructor tearoff • = self::ET10|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET11(core::int id) implements self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::ET11|get#property;
|
||||
constructor • = self::ET11|constructor#;
|
||||
constructor tearoff • = self::ET11|constructor#_#new#tearOff;
|
||||
|
|
|
@ -89,75 +89,90 @@ class C2 extends core::Object implements self::C1 {
|
|||
return 1;
|
||||
}
|
||||
extension type I1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
method x = self::I1|x;
|
||||
method tearoff x = self::I1|get#x;
|
||||
constructor • = self::I1|constructor#;
|
||||
constructor tearoff • = self::I1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int id1) {
|
||||
abstract inline-class-member representation-field get id1() → core::int;
|
||||
constructor • = self::I2|constructor#;
|
||||
constructor tearoff • = self::I2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I3(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::I3|get#property;
|
||||
constructor • = self::I3|constructor#;
|
||||
constructor tearoff • = self::I3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I4(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::I4|property;
|
||||
constructor • = self::I4|constructor#;
|
||||
constructor tearoff • = self::I4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET1(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get x = get self::ET1|x;
|
||||
constructor • = self::ET1|constructor#;
|
||||
constructor tearoff • = self::ET1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET2(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method x = self::ET2|x;
|
||||
constructor • = self::ET2|constructor#;
|
||||
constructor tearoff • = self::ET2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET3(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set x = set self::ET3|x;
|
||||
constructor • = self::ET3|constructor#;
|
||||
constructor tearoff • = self::ET3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET4(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field x = self::ET4|x;
|
||||
constructor • = self::ET4|constructor#;
|
||||
constructor tearoff • = self::ET4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET5(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method id1 = self::ET5|id1;
|
||||
constructor • = self::ET5|constructor#;
|
||||
constructor tearoff • = self::ET5|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET6(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get id1 = get self::ET6|id1;
|
||||
constructor • = self::ET6|constructor#;
|
||||
constructor tearoff • = self::ET6|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET7(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field id1 = self::ET7|id1;
|
||||
constructor • = self::ET7|constructor#;
|
||||
constructor tearoff • = self::ET7|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET8(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set id1 = set self::ET8|id1;
|
||||
constructor • = self::ET8|constructor#;
|
||||
constructor tearoff • = self::ET8|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET9(core::int id) implements self::I3 /* = core::int */, self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor • = self::ET9|constructor#;
|
||||
constructor tearoff • = self::ET9|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET10(core::int id) implements self::I3 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::ET10|property;
|
||||
constructor • = self::ET10|constructor#;
|
||||
constructor tearoff • = self::ET10|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET11(core::int id) implements self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::ET11|get#property;
|
||||
constructor • = self::ET11|constructor#;
|
||||
constructor tearoff • = self::ET11|constructor#_#new#tearOff;
|
||||
|
|
|
@ -89,75 +89,90 @@ class C2 extends core::Object implements self::C1 {
|
|||
return 1;
|
||||
}
|
||||
extension type I1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
method x = self::I1|x;
|
||||
method tearoff x = self::I1|get#x;
|
||||
constructor • = self::I1|constructor#;
|
||||
constructor tearoff • = self::I1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int id1) {
|
||||
abstract inline-class-member representation-field get id1() → core::int;
|
||||
constructor • = self::I2|constructor#;
|
||||
constructor tearoff • = self::I2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I3(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::I3|get#property;
|
||||
constructor • = self::I3|constructor#;
|
||||
constructor tearoff • = self::I3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I4(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::I4|property;
|
||||
constructor • = self::I4|constructor#;
|
||||
constructor tearoff • = self::I4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET1(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get x = get self::ET1|x;
|
||||
constructor • = self::ET1|constructor#;
|
||||
constructor tearoff • = self::ET1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET2(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method x = self::ET2|x;
|
||||
constructor • = self::ET2|constructor#;
|
||||
constructor tearoff • = self::ET2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET3(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set x = set self::ET3|x;
|
||||
constructor • = self::ET3|constructor#;
|
||||
constructor tearoff • = self::ET3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET4(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field x = self::ET4|x;
|
||||
constructor • = self::ET4|constructor#;
|
||||
constructor tearoff • = self::ET4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET5(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method id1 = self::ET5|id1;
|
||||
constructor • = self::ET5|constructor#;
|
||||
constructor tearoff • = self::ET5|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET6(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get id1 = get self::ET6|id1;
|
||||
constructor • = self::ET6|constructor#;
|
||||
constructor tearoff • = self::ET6|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET7(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field id1 = self::ET7|id1;
|
||||
constructor • = self::ET7|constructor#;
|
||||
constructor tearoff • = self::ET7|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET8(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set id1 = set self::ET8|id1;
|
||||
constructor • = self::ET8|constructor#;
|
||||
constructor tearoff • = self::ET8|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET9(core::int id) implements self::I3 /* = core::int */, self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor • = self::ET9|constructor#;
|
||||
constructor tearoff • = self::ET9|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET10(core::int id) implements self::I3 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::ET10|property;
|
||||
constructor • = self::ET10|constructor#;
|
||||
constructor tearoff • = self::ET10|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET11(core::int id) implements self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::ET11|get#property;
|
||||
constructor • = self::ET11|constructor#;
|
||||
constructor tearoff • = self::ET11|constructor#_#new#tearOff;
|
||||
|
|
|
@ -89,75 +89,90 @@ class C2 extends core::Object implements self::C1 {
|
|||
return 1;
|
||||
}
|
||||
extension type I1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
method x = self::I1|x;
|
||||
method tearoff x = self::I1|get#x;
|
||||
constructor • = self::I1|constructor#;
|
||||
constructor tearoff • = self::I1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int id1) {
|
||||
abstract inline-class-member representation-field get id1() → core::int;
|
||||
constructor • = self::I2|constructor#;
|
||||
constructor tearoff • = self::I2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I3(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::I3|get#property;
|
||||
constructor • = self::I3|constructor#;
|
||||
constructor tearoff • = self::I3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I4(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::I4|property;
|
||||
constructor • = self::I4|constructor#;
|
||||
constructor tearoff • = self::I4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET1(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get x = get self::ET1|x;
|
||||
constructor • = self::ET1|constructor#;
|
||||
constructor tearoff • = self::ET1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET2(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method x = self::ET2|x;
|
||||
constructor • = self::ET2|constructor#;
|
||||
constructor tearoff • = self::ET2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET3(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set x = set self::ET3|x;
|
||||
constructor • = self::ET3|constructor#;
|
||||
constructor tearoff • = self::ET3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET4(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field x = self::ET4|x;
|
||||
constructor • = self::ET4|constructor#;
|
||||
constructor tearoff • = self::ET4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET5(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method id1 = self::ET5|id1;
|
||||
constructor • = self::ET5|constructor#;
|
||||
constructor tearoff • = self::ET5|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET6(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get id1 = get self::ET6|id1;
|
||||
constructor • = self::ET6|constructor#;
|
||||
constructor tearoff • = self::ET6|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET7(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field id1 = self::ET7|id1;
|
||||
constructor • = self::ET7|constructor#;
|
||||
constructor tearoff • = self::ET7|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET8(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set id1 = set self::ET8|id1;
|
||||
constructor • = self::ET8|constructor#;
|
||||
constructor tearoff • = self::ET8|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET9(core::int id) implements self::I3 /* = core::int */, self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor • = self::ET9|constructor#;
|
||||
constructor tearoff • = self::ET9|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET10(core::int id) implements self::I3 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::ET10|property;
|
||||
constructor • = self::ET10|constructor#;
|
||||
constructor tearoff • = self::ET10|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET11(core::int id) implements self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::ET11|get#property;
|
||||
constructor • = self::ET11|constructor#;
|
||||
constructor tearoff • = self::ET11|constructor#_#new#tearOff;
|
||||
|
|
|
@ -88,75 +88,90 @@ class C2 extends core::Object implements self::C1 {
|
|||
;
|
||||
}
|
||||
extension type I1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
method x = self::I1|x;
|
||||
method tearoff x = self::I1|get#x;
|
||||
constructor • = self::I1|constructor#;
|
||||
constructor tearoff • = self::I1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int id1) {
|
||||
abstract inline-class-member representation-field get id1() → core::int;
|
||||
constructor • = self::I2|constructor#;
|
||||
constructor tearoff • = self::I2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I3(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::I3|get#property;
|
||||
constructor • = self::I3|constructor#;
|
||||
constructor tearoff • = self::I3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I4(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::I4|property;
|
||||
constructor • = self::I4|constructor#;
|
||||
constructor tearoff • = self::I4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET1(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get x = get self::ET1|x;
|
||||
constructor • = self::ET1|constructor#;
|
||||
constructor tearoff • = self::ET1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET2(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method x = self::ET2|x;
|
||||
constructor • = self::ET2|constructor#;
|
||||
constructor tearoff • = self::ET2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET3(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set x = set self::ET3|x;
|
||||
constructor • = self::ET3|constructor#;
|
||||
constructor tearoff • = self::ET3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET4(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field x = self::ET4|x;
|
||||
constructor • = self::ET4|constructor#;
|
||||
constructor tearoff • = self::ET4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET5(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method id1 = self::ET5|id1;
|
||||
constructor • = self::ET5|constructor#;
|
||||
constructor tearoff • = self::ET5|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET6(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get id1 = get self::ET6|id1;
|
||||
constructor • = self::ET6|constructor#;
|
||||
constructor tearoff • = self::ET6|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET7(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field id1 = self::ET7|id1;
|
||||
constructor • = self::ET7|constructor#;
|
||||
constructor tearoff • = self::ET7|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET8(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set id1 = set self::ET8|id1;
|
||||
constructor • = self::ET8|constructor#;
|
||||
constructor tearoff • = self::ET8|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET9(core::int id) implements self::I3 /* = core::int */, self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor • = self::ET9|constructor#;
|
||||
constructor tearoff • = self::ET9|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET10(core::int id) implements self::I3 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::ET10|property;
|
||||
constructor • = self::ET10|constructor#;
|
||||
constructor tearoff • = self::ET10|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET11(core::int id) implements self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::ET11|get#property;
|
||||
constructor • = self::ET11|constructor#;
|
||||
constructor tearoff • = self::ET11|constructor#_#new#tearOff;
|
||||
|
|
|
@ -89,75 +89,90 @@ class C2 extends core::Object implements self::C1 {
|
|||
return 1;
|
||||
}
|
||||
extension type I1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
method x = self::I1|x;
|
||||
method tearoff x = self::I1|get#x;
|
||||
constructor • = self::I1|constructor#;
|
||||
constructor tearoff • = self::I1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int id1) {
|
||||
abstract inline-class-member representation-field get id1() → core::int;
|
||||
constructor • = self::I2|constructor#;
|
||||
constructor tearoff • = self::I2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I3(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::I3|get#property;
|
||||
constructor • = self::I3|constructor#;
|
||||
constructor tearoff • = self::I3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I4(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::I4|property;
|
||||
constructor • = self::I4|constructor#;
|
||||
constructor tearoff • = self::I4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET1(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get x = get self::ET1|x;
|
||||
constructor • = self::ET1|constructor#;
|
||||
constructor tearoff • = self::ET1|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET2(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method x = self::ET2|x;
|
||||
constructor • = self::ET2|constructor#;
|
||||
constructor tearoff • = self::ET2|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET3(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set x = set self::ET3|x;
|
||||
constructor • = self::ET3|constructor#;
|
||||
constructor tearoff • = self::ET3|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET4(core::int id) implements self::I1 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field x = self::ET4|x;
|
||||
constructor • = self::ET4|constructor#;
|
||||
constructor tearoff • = self::ET4|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET5(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static method id1 = self::ET5|id1;
|
||||
constructor • = self::ET5|constructor#;
|
||||
constructor tearoff • = self::ET5|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET6(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static get id1 = get self::ET6|id1;
|
||||
constructor • = self::ET6|constructor#;
|
||||
constructor tearoff • = self::ET6|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET7(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static field id1 = self::ET7|id1;
|
||||
constructor • = self::ET7|constructor#;
|
||||
constructor tearoff • = self::ET7|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET8(core::int id) implements self::I2 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set id1 = set self::ET8|id1;
|
||||
constructor • = self::ET8|constructor#;
|
||||
constructor tearoff • = self::ET8|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET9(core::int id) implements self::I3 /* = core::int */, self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor • = self::ET9|constructor#;
|
||||
constructor tearoff • = self::ET9|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET10(core::int id) implements self::I3 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
static set property = set self::ET10|property;
|
||||
constructor • = self::ET10|constructor#;
|
||||
constructor tearoff • = self::ET10|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type ET11(core::int id) implements self::I4 /* = core::int */ {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
get property = self::ET11|get#property;
|
||||
constructor • = self::ET11|constructor#;
|
||||
constructor tearoff • = self::ET11|constructor#_#new#tearOff;
|
||||
|
|
|
@ -21,6 +21,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
|
|
|
@ -21,6 +21,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
|
|
|
@ -21,6 +21,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
|
|
|
@ -21,6 +21,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
|
|
|
@ -21,6 +21,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int i) {
|
||||
abstract inline-class-member representation-field get i() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
|
|
|
@ -3,12 +3,14 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
constructor tearoff named = self::Class|constructor#_#named#tearOff;
|
||||
}
|
||||
extension type GenericClass<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::GenericClass|constructor#;
|
||||
constructor tearoff • = self::GenericClass|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -3,12 +3,14 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
constructor tearoff named = self::Class|constructor#_#named#tearOff;
|
||||
}
|
||||
extension type GenericClass<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::GenericClass|constructor#;
|
||||
constructor tearoff • = self::GenericClass|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -3,12 +3,14 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
constructor tearoff named = self::Class|constructor#_#named#tearOff;
|
||||
}
|
||||
extension type GenericClass<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::GenericClass|constructor#;
|
||||
constructor tearoff • = self::GenericClass|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -3,12 +3,14 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
constructor tearoff named = self::Class|constructor#_#named#tearOff;
|
||||
}
|
||||
extension type GenericClass<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::GenericClass|constructor#;
|
||||
constructor tearoff • = self::GenericClass|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -3,12 +3,14 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
constructor tearoff named = self::Class|constructor#_#named#tearOff;
|
||||
}
|
||||
extension type GenericClass<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::GenericClass|constructor#;
|
||||
constructor tearoff • = self::GenericClass|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -3,12 +3,14 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class|constructor#;
|
||||
constructor tearoff • = self::Class|constructor#_#new#tearOff;
|
||||
constructor named = self::Class|constructor#named;
|
||||
constructor tearoff named = self::Class|constructor#_#named#tearOff;
|
||||
}
|
||||
extension type GenericClass<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::GenericClass|constructor#;
|
||||
constructor tearoff • = self::GenericClass|constructor#_#new#tearOff;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class1(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class1|constructor#;
|
||||
constructor tearoff • = self::Class1|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class1|constructor#named1;
|
||||
|
@ -19,6 +20,7 @@ extension type Class1(core::int it) {
|
|||
constructor tearoff named6 = self::Class1|constructor#_#named6#tearOff;
|
||||
}
|
||||
extension type Class2<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::Class2|constructor#;
|
||||
constructor tearoff • = self::Class2|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class2|constructor#named1;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class1(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class1|constructor#;
|
||||
constructor tearoff • = self::Class1|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class1|constructor#named1;
|
||||
|
@ -19,6 +20,7 @@ extension type Class1(core::int it) {
|
|||
constructor tearoff named6 = self::Class1|constructor#_#named6#tearOff;
|
||||
}
|
||||
extension type Class2<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::Class2|constructor#;
|
||||
constructor tearoff • = self::Class2|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class2|constructor#named1;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class1(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class1|constructor#;
|
||||
constructor tearoff • = self::Class1|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class1|constructor#named1;
|
||||
|
@ -19,6 +20,7 @@ extension type Class1(core::int it) {
|
|||
constructor tearoff named6 = self::Class1|constructor#_#named6#tearOff;
|
||||
}
|
||||
extension type Class2<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::Class2|constructor#;
|
||||
constructor tearoff • = self::Class2|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class2|constructor#named1;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class1(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class1|constructor#;
|
||||
constructor tearoff • = self::Class1|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class1|constructor#named1;
|
||||
|
@ -19,6 +20,7 @@ extension type Class1(core::int it) {
|
|||
constructor tearoff named6 = self::Class1|constructor#_#named6#tearOff;
|
||||
}
|
||||
extension type Class2<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::Class2|constructor#;
|
||||
constructor tearoff • = self::Class2|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class2|constructor#named1;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class1(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class1|constructor#;
|
||||
constructor tearoff • = self::Class1|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class1|constructor#named1;
|
||||
|
@ -19,6 +20,7 @@ extension type Class1(core::int it) {
|
|||
constructor tearoff named6 = self::Class1|constructor#_#named6#tearOff;
|
||||
}
|
||||
extension type Class2<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::Class2|constructor#;
|
||||
constructor tearoff • = self::Class2|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class2|constructor#named1;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type Class1(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
constructor • = self::Class1|constructor#;
|
||||
constructor tearoff • = self::Class1|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class1|constructor#named1;
|
||||
|
@ -19,6 +20,7 @@ extension type Class1(core::int it) {
|
|||
constructor tearoff named6 = self::Class1|constructor#_#named6#tearOff;
|
||||
}
|
||||
extension type Class2<T extends core::Object? = dynamic>(T% it) {
|
||||
abstract inline-class-member representation-field get it() → T%;
|
||||
constructor • = self::Class2|constructor#;
|
||||
constructor tearoff • = self::Class2|constructor#_#new#tearOff;
|
||||
constructor named1 = self::Class2|constructor#named1;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type V1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor n0 = self::V1|constructor#n0;
|
||||
constructor tearoff n0 = self::V1|constructor#_#n0#tearOff;
|
||||
constructor • = self::V1|constructor#;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type V1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor n0 = self::V1|constructor#n0;
|
||||
constructor tearoff n0 = self::V1|constructor#_#n0#tearOff;
|
||||
constructor • = self::V1|constructor#;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type V1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor n0 = self::V1|constructor#n0;
|
||||
constructor tearoff n0 = self::V1|constructor#_#n0#tearOff;
|
||||
constructor • = self::V1|constructor#;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type V1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor n0 = self::V1|constructor#n0;
|
||||
constructor tearoff n0 = self::V1|constructor#_#n0#tearOff;
|
||||
constructor • = self::V1|constructor#;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type V1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor n0 = self::V1|constructor#n0;
|
||||
constructor tearoff n0 = self::V1|constructor#_#n0#tearOff;
|
||||
constructor • = self::V1|constructor#;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type V1(core::int id) {
|
||||
abstract inline-class-member representation-field get id() → core::int;
|
||||
constructor n0 = self::V1|constructor#n0;
|
||||
constructor tearoff n0 = self::V1|constructor#_#n0#tearOff;
|
||||
constructor • = self::V1|constructor#;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I|m;
|
||||
method tearoff m = self::I|get#m;
|
||||
constructor _ = self::I|constructor#_;
|
||||
|
@ -11,6 +12,7 @@ extension type I(core::int it) {
|
|||
constructor tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I2|m;
|
||||
method tearoff m = self::I2|get#m;
|
||||
constructor _ = self::I2|constructor#_;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I|m;
|
||||
method tearoff m = self::I|get#m;
|
||||
constructor _ = self::I|constructor#_;
|
||||
|
@ -11,6 +12,7 @@ extension type I(core::int it) {
|
|||
constructor tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I2|m;
|
||||
method tearoff m = self::I2|get#m;
|
||||
constructor _ = self::I2|constructor#_;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I|m;
|
||||
method tearoff m = self::I|get#m;
|
||||
constructor _ = self::I|constructor#_;
|
||||
|
@ -11,6 +12,7 @@ extension type I(core::int it) {
|
|||
constructor tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I2|m;
|
||||
method tearoff m = self::I2|get#m;
|
||||
constructor _ = self::I2|constructor#_;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I|m;
|
||||
method tearoff m = self::I|get#m;
|
||||
constructor _ = self::I|constructor#_;
|
||||
|
@ -11,6 +12,7 @@ extension type I(core::int it) {
|
|||
constructor tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I2|m;
|
||||
method tearoff m = self::I2|get#m;
|
||||
constructor _ = self::I2|constructor#_;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I|m;
|
||||
method tearoff m = self::I|get#m;
|
||||
constructor _ = self::I|constructor#_;
|
||||
|
@ -11,6 +12,7 @@ extension type I(core::int it) {
|
|||
constructor tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I2|m;
|
||||
method tearoff m = self::I2|get#m;
|
||||
constructor _ = self::I2|constructor#_;
|
||||
|
|
|
@ -3,6 +3,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type I(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I|m;
|
||||
method tearoff m = self::I|get#m;
|
||||
constructor _ = self::I|constructor#_;
|
||||
|
@ -11,6 +12,7 @@ extension type I(core::int it) {
|
|||
constructor tearoff • = self::I|constructor#_#new#tearOff;
|
||||
}
|
||||
extension type I2(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method m = self::I2|m;
|
||||
method tearoff m = self::I2|get#m;
|
||||
constructor _ = self::I2|constructor#_;
|
||||
|
|
|
@ -30,6 +30,7 @@ import self as self;
|
|||
import "dart:core" as core;
|
||||
|
||||
extension type ExtensionType(core::int it) {
|
||||
abstract inline-class-member representation-field get it() → core::int;
|
||||
method constructorAndMethod = self::ExtensionType|constructorAndMethod;
|
||||
method tearoff constructorAndMethod = self::ExtensionType|get#constructorAndMethod;
|
||||
method factoryAndMethod = self::ExtensionType|factoryAndMethod;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue