File tree 2 files changed +40
-1
lines changed
2 files changed +40
-1
lines changed Original file line number Diff line number Diff line change @@ -83,7 +83,8 @@ class FormalParameterScope extends EnclosedScope {
83
83
List <ParameterElement > elements,
84
84
) : super (parent) {
85
85
for (var parameter in elements) {
86
- if (parameter is ! FieldFormalParameterElement ) {
86
+ if (parameter is ! FieldFormalParameterElement &&
87
+ parameter is ! SuperFormalParameterElement ) {
87
88
_addGetter (parameter);
88
89
}
89
90
}
Original file line number Diff line number Diff line change @@ -130,4 +130,42 @@ class B extends A {
130
130
findElement.unnamedConstructor ('B' ).superFormalParameter ('a' ),
131
131
);
132
132
}
133
+
134
+ test_scoping_inBody () async {
135
+ await assertNoErrorsInCode (r'''
136
+ class A {
137
+ final int a;
138
+ A(this.a);
139
+ }
140
+
141
+ class B extends A {
142
+ B(super.a) {
143
+ a; // ref
144
+ }
145
+ }
146
+ ''' );
147
+
148
+ assertElement (
149
+ findNode.simple ('a; // ref' ),
150
+ findElement.getter ('a' , of: 'A' ),
151
+ );
152
+ }
153
+
154
+ test_scoping_inInitializer () async {
155
+ await assertNoErrorsInCode (r'''
156
+ class A {
157
+ A(int a);
158
+ }
159
+
160
+ class B extends A {
161
+ var f;
162
+ B(super.a) : f = ((){ a; });
163
+ }
164
+ ''' );
165
+
166
+ assertElement (
167
+ findNode.simple ('a; }' ),
168
+ findElement.unnamedConstructor ('B' ).superFormalParameter ('a' ),
169
+ );
170
+ }
133
171
}
You can’t perform that action at this time.
0 commit comments