@@ -180,8 +180,9 @@ class InstanceMemberInferrer {
180180 accessor.returnType = returnType;
181181 accessor.element.returnType = returnType;
182182 // TODO(scheglov): store type in FieldElementImpl itself
183- (accessor.element.variable3 as FieldElementImpl ).firstFragment.type =
184- returnType;
183+ var fieldElement = accessor.element.variable3 as FieldElementImpl ;
184+ fieldElement.type = returnType;
185+ fieldElement.firstFragment.type = returnType;
185186 return ;
186187 }
187188
@@ -194,8 +195,9 @@ class InstanceMemberInferrer {
194195 accessor.returnType = returnType;
195196 accessor.element.returnType = returnType;
196197 // TODO(scheglov): store type in FieldElementImpl itself
197- (accessor.element.variable3 as FieldElementImpl ).firstFragment.type =
198- returnType;
198+ var fieldElement = accessor.element.variable3 as FieldElementImpl ;
199+ fieldElement.type = returnType;
200+ fieldElement.firstFragment.type = returnType;
199201 return ;
200202 }
201203
@@ -222,7 +224,10 @@ class InstanceMemberInferrer {
222224 // to be the return type of the combined member signature of said getter
223225 // in the direct superinterfaces.
224226 if (overriddenGetters.isNotEmpty && overriddenSetters.isEmpty) {
225- parameter.type = combinedGetterType ();
227+ var valueType = combinedGetterType ();
228+ parameter.type = valueType;
229+ var fieldElement = accessor.element.variable3 as FieldElementImpl ;
230+ fieldElement.type = valueType;
226231 return ;
227232 }
228233
@@ -235,7 +240,10 @@ class InstanceMemberInferrer {
235240 // setter and a getter is inferred to be the parameter type of the
236241 // combined member signature of said setter in the direct superinterfaces.
237242 if (overriddenSetters.isNotEmpty) {
238- parameter.type = combinedSetterType ();
243+ var valueType = combinedSetterType ();
244+ parameter.type = valueType;
245+ var fieldElement = accessor.element.variable3 as FieldElementImpl ;
246+ fieldElement.type = valueType;
239247 return ;
240248 }
241249
@@ -385,7 +393,7 @@ class InstanceMemberInferrer {
385393 if (parameter is FieldFormalParameterFragmentImpl ) {
386394 var field = parameter.field;
387395 if (field != null ) {
388- parameter.type = field.type;
396+ parameter.type = field.element. type;
389397 }
390398 } else if (parameter is SuperFormalParameterFragmentImpl ) {
391399 var superParameter = parameter.element.superConstructorParameter2;
@@ -774,6 +782,7 @@ class InstanceMemberInferrer {
774782
775783 static void _setFieldType (FieldFragmentImpl field, TypeImpl type) {
776784 field.type = type;
785+ field.element.type = type;
777786 // TODO(scheglov): We repeat this code.
778787 field.element.getter2? .returnType = type;
779788 field.element.getter2? .firstFragment.returnType = type;
0 commit comments