@@ -90,22 +90,7 @@ var w = new Foo();
90
90
expect (getWidgetPresentationText (w), isNull);
91
91
}
92
92
93
- test_identifyWidgetExpression_identifier () async {
94
- await resolveTestUnit ('''
95
- import 'package:flutter/widgets.dart';
96
-
97
- main() {
98
- var text = new Text('abc');
99
- text;
100
- }
101
- ''' );
102
- {
103
- Expression expression = findNodeAtString ("text;" );
104
- expect (identifyWidgetExpression (expression), expression);
105
- }
106
- }
107
-
108
- test_identifyWidgetExpression_instanceCreation () async {
93
+ test_identifyWidgetExpression_node_instanceCreation () async {
109
94
await resolveTestUnit ('''
110
95
import 'package:flutter/widgets.dart';
111
96
@@ -155,7 +140,7 @@ class MyWidget extends StatelessWidget {
155
140
}
156
141
}
157
142
158
- test_identifyWidgetExpression_invocation () async {
143
+ test_identifyWidgetExpression_node_invocation () async {
159
144
await resolveTestUnit ('''
160
145
import 'package:flutter/widgets.dart';
161
146
@@ -185,7 +170,7 @@ Text createText(String txt) => new Text(txt);
185
170
}
186
171
}
187
172
188
- test_identifyWidgetExpression_namedExpression () async {
173
+ test_identifyWidgetExpression_node_namedExpression () async {
189
174
await resolveTestUnit ('''
190
175
import 'package:flutter/widgets.dart';
191
176
@@ -199,6 +184,50 @@ Text createEmptyText() => new Text('');
199
184
expect (identifyWidgetExpression (childExpression), isNull);
200
185
}
201
186
187
+ test_identifyWidgetExpression_node_prefixedIdentifier_identifier () async {
188
+ await resolveTestUnit ('''
189
+ import 'package:flutter/widgets.dart';
190
+
191
+ abstract class Foo extends Widget {
192
+ Widget bar;
193
+ }
194
+
195
+ main(Foo foo) {
196
+ foo.bar; // ref
197
+ }
198
+ ''' );
199
+ SimpleIdentifier bar = findNodeAtString ('bar; // ref' );
200
+ expect (identifyWidgetExpression (bar), bar.parent);
201
+ }
202
+
203
+ test_identifyWidgetExpression_node_prefixedIdentifier_prefix () async {
204
+ await resolveTestUnit ('''
205
+ import 'package:flutter/widgets.dart';
206
+
207
+ abstract class Foo extends Widget {
208
+ Widget bar;
209
+ }
210
+
211
+ main(Foo foo) {
212
+ foo.bar; // ref
213
+ }
214
+ ''' );
215
+ SimpleIdentifier foo = findNodeAtString ('foo.bar' );
216
+ expect (identifyWidgetExpression (foo), foo.parent);
217
+ }
218
+
219
+ test_identifyWidgetExpression_node_simpleIdentifier () async {
220
+ await resolveTestUnit ('''
221
+ import 'package:flutter/widgets.dart';
222
+
223
+ main(Widget widget) {
224
+ widget; // ref
225
+ }
226
+ ''' );
227
+ Expression expression = findNodeAtString ('widget; // ref' );
228
+ expect (identifyWidgetExpression (expression), expression);
229
+ }
230
+
202
231
test_identifyWidgetExpression_null () async {
203
232
await resolveTestUnit ('''
204
233
import 'package:flutter/widgets.dart';
@@ -222,6 +251,72 @@ Text createEmptyText() => new Text('');
222
251
}
223
252
}
224
253
254
+ test_identifyWidgetExpression_parent_argumentList () async {
255
+ await resolveTestUnit ('''
256
+ import 'package:flutter/widgets.dart';
257
+
258
+ main() {
259
+ var text = new Text('abc');
260
+ useWidget(text); // ref
261
+ }
262
+
263
+ void useWidget(Widget w) {}
264
+ ''' );
265
+ Expression expression = findNodeAtString ("text); // ref" );
266
+ expect (identifyWidgetExpression (expression), expression);
267
+ }
268
+
269
+ test_identifyWidgetExpression_parent_expressionStatement () async {
270
+ await resolveTestUnit ('''
271
+ import 'package:flutter/widgets.dart';
272
+
273
+ main(Widget widget) {
274
+ widget; // ref
275
+ }
276
+ ''' );
277
+ Expression expression = findNodeAtString ("widget; // ref" );
278
+ expect (identifyWidgetExpression (expression), expression);
279
+ }
280
+
281
+ test_identifyWidgetExpression_parent_listLiteral () async {
282
+ await resolveTestUnit ('''
283
+ import 'package:flutter/widgets.dart';
284
+
285
+ main(Widget widget) {
286
+ return [widget]; // ref
287
+ }
288
+ ''' );
289
+ Expression expression = findNodeAtString ("widget]; // ref" );
290
+ expect (identifyWidgetExpression (expression), expression);
291
+ }
292
+
293
+ test_identifyWidgetExpression_parent_namedExpression () async {
294
+ await resolveTestUnit ('''
295
+ import 'package:flutter/widgets.dart';
296
+
297
+ main() {
298
+ var text = new Text('abc');
299
+ useWidget(child: text); // ref
300
+ }
301
+
302
+ void useWidget({Widget child}) {}
303
+ ''' );
304
+ Expression expression = findNodeAtString ("text); // ref" );
305
+ expect (identifyWidgetExpression (expression), expression);
306
+ }
307
+
308
+ test_identifyWidgetExpression_parent_returnStatement () async {
309
+ await resolveTestUnit ('''
310
+ import 'package:flutter/widgets.dart';
311
+
312
+ main(Widget widget) {
313
+ return widget; // ref
314
+ }
315
+ ''' );
316
+ Expression expression = findNodeAtString ("widget; // ref" );
317
+ expect (identifyWidgetExpression (expression), expression);
318
+ }
319
+
225
320
test_isWidget () async {
226
321
await resolveTestUnit ('''
227
322
import 'package:flutter/widgets.dart';
0 commit comments