@@ -35,46 +35,40 @@ import '../../type_inference/inference_helper.dart';
3535import '../../type_inference/type_inference_engine.dart' ;
3636import '../../type_inference/type_inferrer.dart' ;
3737import '../fragment.dart' ;
38+ import '../getter/declaration.dart' ;
39+ import '../setter/declaration.dart' ;
3840
3941/// Common interface for fragments that can declare a field.
4042abstract class FieldDeclaration {
4143 FieldQuality get fieldQuality;
4244
43- GetterQuality get getterQuality;
44-
45- SetterQuality get setterQuality;
46-
4745 /// The metadata declared on this fragment.
4846 List <MetadataBuilder >? get metadata;
4947
5048 /// Builds the core AST structures for this field declaration as needed for
5149 /// the outline.
52- void buildOutlineNode (SourceLibraryBuilder libraryBuilder,
50+ void buildFieldOutlineNode (SourceLibraryBuilder libraryBuilder,
5351 NameScheme nameScheme, BuildNodesCallback f, FieldReference references,
5452 {required List <TypeParameter >? classTypeParameters});
5553
56- void buildOutlineExpressions (
54+ void buildFieldOutlineExpressions (
5755 {required ClassHierarchy classHierarchy,
5856 required SourceLibraryBuilder libraryBuilder,
5957 required DeclarationBuilder ? declarationBuilder,
6058 required List <Annotatable > annotatables,
6159 required Uri annotatablesFileUri,
6260 required bool isClassInstanceMember});
6361
64- int computeDefaultTypes (ComputeDefaultTypeContext context);
62+ int computeFieldDefaultTypes (ComputeDefaultTypeContext context);
6563
66- void checkTypes (SourceLibraryBuilder libraryBuilder,
64+ void checkFieldTypes (SourceLibraryBuilder libraryBuilder,
6765 TypeEnvironment typeEnvironment, SourcePropertyBuilder ? setterBuilder);
6866
6967 /// Checks the variance of type parameters [sourceClassBuilder] used in the
7068 /// type of this field declaration.
71- void checkVariance (
69+ void checkFieldVariance (
7270 SourceClassBuilder sourceClassBuilder, TypeEnvironment typeEnvironment);
7371
74- /// The references to the members from this field declaration that are
75- /// accessible in exports through the name of the builder.
76- Iterable <Reference > getExportedMemberReferences (FieldReference references);
77-
7872 /// Return `true` if the declaration introduces a setter.
7973 bool get hasSetter;
8074
@@ -94,20 +88,6 @@ abstract class FieldDeclaration {
9488 /// Returns `true` if this field is declared by an enum element.
9589 bool get isEnumElement;
9690
97- /// The [ClassMember] s for the getter introduced by this field declaration.
98- List <ClassMember > get localMembers;
99-
100- /// The [ClassMember] s for the setter introduced by this field declaration,
101- /// if any.
102- List <ClassMember > get localSetters;
103-
104- /// The [Member] uses as the target for reading from this field declaration.
105- Member get readTarget;
106-
107- /// The [Member] uses as the target for writing to this field declaration, or
108- /// `null` if this field declaration has no setter.
109- Member ? get writeTarget;
110-
11191 /// The [DartType] of this field declaration.
11292 abstract DartType fieldType;
11393
@@ -153,6 +133,8 @@ class FieldDeclarationImpl
153133 implements
154134 FieldDeclaration ,
155135 FieldFragmentDeclaration ,
136+ GetterDeclaration ,
137+ SetterDeclaration ,
156138 Inferable ,
157139 InferredTypeListener {
158140 final FieldFragment _fragment;
@@ -322,7 +304,7 @@ class FieldDeclarationImpl
322304 }
323305
324306 @override
325- void buildOutlineExpressions (
307+ void buildFieldOutlineExpressions (
326308 {required ClassHierarchy classHierarchy,
327309 required SourceLibraryBuilder libraryBuilder,
328310 required DeclarationBuilder ? declarationBuilder,
@@ -371,7 +353,7 @@ class FieldDeclarationImpl
371353 }
372354
373355 @override
374- void buildOutlineNode (SourceLibraryBuilder libraryBuilder,
356+ void buildFieldOutlineNode (SourceLibraryBuilder libraryBuilder,
375357 NameScheme nameScheme, BuildNodesCallback f, FieldReference references,
376358 {required List <TypeParameter >? classTypeParameters}) {
377359 _encoding.buildOutlineNode (libraryBuilder, nameScheme, references,
@@ -385,7 +367,7 @@ class FieldDeclarationImpl
385367 }
386368
387369 @override
388- void checkTypes (SourceLibraryBuilder libraryBuilder,
370+ void checkFieldTypes (SourceLibraryBuilder libraryBuilder,
389371 TypeEnvironment typeEnvironment, SourcePropertyBuilder ? setterBuilder) {
390372 libraryBuilder.checkTypesInField (typeEnvironment,
391373 isInstanceMember: builder.isDeclarationInstanceMember,
@@ -400,7 +382,7 @@ class FieldDeclarationImpl
400382 }
401383
402384 @override
403- void checkVariance (
385+ void checkFieldVariance (
404386 SourceClassBuilder sourceClassBuilder, TypeEnvironment typeEnvironment) {
405387 sourceClassBuilder.checkVarianceInField (typeEnvironment,
406388 fieldType: fieldType,
@@ -412,7 +394,7 @@ class FieldDeclarationImpl
412394 }
413395
414396 @override
415- int computeDefaultTypes (ComputeDefaultTypeContext context) {
397+ int computeFieldDefaultTypes (ComputeDefaultTypeContext context) {
416398 if (type is ! OmittedTypeBuilder ) {
417399 context.reportInboundReferenceIssuesForType (type);
418400 context.recursivelyReportGenericFunctionTypesAsBoundsForType (type);
@@ -548,14 +530,6 @@ class FieldDeclarationImpl
548530 }
549531 }
550532
551- @override
552- Iterable <Reference > getExportedMemberReferences (FieldReference references) {
553- return [
554- references.getterReference! ,
555- if (hasSetter) references.setterReference!
556- ];
557- }
558-
559533 @override
560534 void registerSuperCall () {
561535 _encoding.registerSuperCall ();
@@ -606,6 +580,108 @@ class FieldDeclarationImpl
606580 void setCovariantByClassInternal () {
607581 _encoding.setCovariantByClass ();
608582 }
583+
584+ @override
585+ void buildGetterOutlineExpressions (
586+ {required ClassHierarchy classHierarchy,
587+ required SourceLibraryBuilder libraryBuilder,
588+ required DeclarationBuilder ? declarationBuilder,
589+ required SourcePropertyBuilder propertyBuilder,
590+ required Annotatable annotatable,
591+ required Uri annotatableFileUri,
592+ required bool isClassInstanceMember}) {}
593+
594+ @override
595+ void buildGetterOutlineNode (
596+ {required SourceLibraryBuilder libraryBuilder,
597+ required NameScheme nameScheme,
598+ required BuildNodesCallback f,
599+ required PropertyReferences ? references,
600+ required List <TypeParameter >? classTypeParameters}) {}
601+
602+ @override
603+ void buildSetterOutlineExpressions (
604+ {required ClassHierarchy classHierarchy,
605+ required SourceLibraryBuilder libraryBuilder,
606+ required DeclarationBuilder ? declarationBuilder,
607+ required SourcePropertyBuilder propertyBuilder,
608+ required Annotatable annotatable,
609+ required Uri annotatableFileUri,
610+ required bool isClassInstanceMember}) {}
611+
612+ @override
613+ void buildSetterOutlineNode (
614+ {required SourceLibraryBuilder libraryBuilder,
615+ required NameScheme nameScheme,
616+ required BuildNodesCallback f,
617+ required PropertyReferences ? references,
618+ required List <TypeParameter >? classTypeParameters}) {}
619+
620+ @override
621+ void checkGetterTypes (SourceLibraryBuilder libraryBuilder,
622+ TypeEnvironment typeEnvironment, SourcePropertyBuilder ? setterBuilder) {}
623+
624+ @override
625+ void checkGetterVariance (
626+ SourceClassBuilder sourceClassBuilder, TypeEnvironment typeEnvironment) {}
627+
628+ @override
629+ void checkSetterTypes (
630+ SourceLibraryBuilder libraryBuilder, TypeEnvironment typeEnvironment) {}
631+
632+ @override
633+ void checkSetterVariance (
634+ SourceClassBuilder sourceClassBuilder, TypeEnvironment typeEnvironment) {}
635+
636+ @override
637+ int computeGetterDefaultTypes (ComputeDefaultTypeContext context) {
638+ return 0 ;
639+ }
640+
641+ @override
642+ int computeSetterDefaultTypes (ComputeDefaultTypeContext context) {
643+ return 0 ;
644+ }
645+
646+ @override
647+ void createGetterEncoding (
648+ ProblemReporting problemReporting,
649+ SourcePropertyBuilder builder,
650+ PropertyEncodingStrategy encodingStrategy,
651+ List <NominalParameterBuilder > unboundNominalParameters) {}
652+
653+ @override
654+ void createSetterEncoding (
655+ ProblemReporting problemReporting,
656+ SourcePropertyBuilder builder,
657+ PropertyEncodingStrategy encodingStrategy,
658+ List <NominalParameterBuilder > unboundNominalParameters) {}
659+
660+ @override
661+ void ensureGetterTypes (
662+ {required SourceLibraryBuilder libraryBuilder,
663+ required DeclarationBuilder ? declarationBuilder,
664+ required ClassMembersBuilder membersBuilder,
665+ required Set <ClassMember >? getterOverrideDependencies}) {}
666+
667+ @override
668+ void ensureSetterTypes (
669+ {required SourceLibraryBuilder libraryBuilder,
670+ required DeclarationBuilder ? declarationBuilder,
671+ required ClassMembersBuilder membersBuilder,
672+ required Set <ClassMember >? setterOverrideDependencies}) {}
673+
674+ @override
675+ Iterable <Reference > getExportedGetterReferences (
676+ PropertyReferences references) {
677+ return [references.getterReference! ];
678+ }
679+
680+ @override
681+ Iterable <Reference > getExportedSetterReferences (
682+ PropertyReferences references) {
683+ return hasSetter ? [references.setterReference! ] : const [];
684+ }
609685}
610686
611687mixin FieldDeclarationMixin
0 commit comments