File tree Expand file tree Collapse file tree 5 files changed +18
-34
lines changed Expand file tree Collapse file tree 5 files changed +18
-34
lines changed Original file line number Diff line number Diff line change @@ -2970,13 +2970,10 @@ class FieldElementImpl extends PropertyInducingElementImpl
29702970
29712971class FieldFormalParameterElementImpl extends FormalParameterElementImpl
29722972 implements FieldFormalParameterElement {
2973- FieldFormalParameterElementImpl (super .firstFragment);
2974-
29752973 @override
2976- FieldElementImpl ? get field => switch (_firstFragment) {
2977- FieldFormalParameterFragmentImpl (: FieldFragmentImpl field) => field.element,
2978- _ => null ,
2979- };
2974+ FieldElementImpl ? field;
2975+
2976+ FieldFormalParameterElementImpl (super .firstFragment);
29802977
29812978 @Deprecated ('Use field instead' )
29822979 @override
@@ -3004,11 +3001,6 @@ class FieldFormalParameterElementImpl extends FormalParameterElementImpl
30043001
30053002class FieldFormalParameterFragmentImpl extends FormalParameterFragmentImpl
30063003 implements FieldFormalParameterFragment {
3007- /// The field element associated with this field formal parameter, or `null`
3008- /// if the parameter references a field that doesn't exist.
3009- // TODO(scheglov): move to element
3010- FieldFragmentImpl ? field;
3011-
30123004 /// Initialize a newly created parameter element to have the given [name] and
30133005 /// [nameOffset] .
30143006 FieldFormalParameterFragmentImpl ({
Original file line number Diff line number Diff line change @@ -742,10 +742,7 @@ class LibraryReader {
742742 parameter.element.type = type;
743743 parameter.constantInitializer = reader.readOptionalExpression ();
744744 if (parameter is FieldFormalParameterFragmentImpl ) {
745- // TODO(scheglov): use element
746- parameter.field =
747- (reader.readElement () as FieldElementImpl ? )? .firstFragment;
748- // parameter.field = reader.readFragmentOrMember() as FieldFragmentImpl?;
745+ parameter.element.field = reader.readElement () as FieldElementImpl ? ;
749746 }
750747 }
751748 }
Original file line number Diff line number Diff line change @@ -645,8 +645,7 @@ class BundleWriter {
645645
646646 if (element is FieldFormalParameterFragmentImpl ) {
647647 // TODO(scheglov): formal parameter types? Anything else?
648- // _resolutionSink.writeFragmentOrMember(element.field);
649- _resolutionSink.writeElement (element.field? .element);
648+ _resolutionSink.writeElement (element.element.field);
650649 }
651650 });
652651 }
Original file line number Diff line number Diff line change @@ -1826,14 +1826,11 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
18261826
18271827 _addChildFragment (fieldFragment);
18281828
1829- var formalParameterElement =
1830- FieldFormalParameterFragmentImpl (
1831- name: _getFragmentName (fieldNameToken),
1832- nameOffset: null ,
1833- parameterKind: ParameterKind .REQUIRED ,
1834- )
1835- ..field = fieldFragment
1836- ..hasImplicitType = true ;
1829+ var formalParameterFragment = FieldFormalParameterFragmentImpl (
1830+ name: _getFragmentName (fieldNameToken),
1831+ nameOffset: null ,
1832+ parameterKind: ParameterKind .REQUIRED ,
1833+ )..hasImplicitType = true ;
18371834
18381835 {
18391836 var constructorFragment =
@@ -1842,7 +1839,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
18421839 )
18431840 ..isAugmentation = extensionNode.augmentKeyword != null
18441841 ..isConst = extensionNode.constKeyword != null
1845- ..formalParameters = [formalParameterElement ];
1842+ ..formalParameters = [formalParameterFragment ];
18461843 constructorFragment.typeName = extensionFragment.name;
18471844
18481845 representation.constructorFragment = constructorFragment;
Original file line number Diff line number Diff line change @@ -323,21 +323,20 @@ class LibraryBuilder {
323323 }
324324
325325 void resolveConstructorFieldFormals () {
326- for (var interfaceFragment in element.topLevelElements ) {
327- if (interfaceFragment is ! InterfaceFragmentImpl ) {
326+ for (var interfaceElement in element.children ) {
327+ if (interfaceElement is ! InterfaceElementImpl ) {
328328 continue ;
329329 }
330330
331- if (interfaceFragment is ClassFragmentImpl &&
332- interfaceFragment .isMixinApplication) {
331+ if (interfaceElement is ClassElementImpl &&
332+ interfaceElement .isMixinApplication) {
333333 continue ;
334334 }
335335
336- var element = interfaceFragment.element;
337- for (var constructor in interfaceFragment.constructors) {
336+ for (var constructor in interfaceElement.constructors) {
338337 for (var parameter in constructor.formalParameters) {
339- if (parameter is FieldFormalParameterFragmentImpl ) {
340- parameter.field = element .getField (parameter.name ?? '' )? .asElement ;
338+ if (parameter is FieldFormalParameterElementImpl ) {
339+ parameter.field = interfaceElement .getField (parameter.name ?? '' );
341340 }
342341 }
343342 }
You can’t perform that action at this time.
0 commit comments