Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: pkg/analysis_server/test/analysis/notification_navigation_test.dart

Issue 921833002: Issue 22381. Fix for navigating to constructor from redirecting factory constructor. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.analysis.notification.navigation; 5 library test.analysis.notification.navigation;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/constants.dart'; 9 import 'package:analysis_server/src/constants.dart';
10 import 'package:analysis_server/src/protocol.dart'; 10 import 'package:analysis_server/src/protocol.dart';
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 '''); 248 ''');
249 return prepareNavigation().then((_) { 249 return prepareNavigation().then((_) {
250 // has region for complete "A.named" 250 // has region for complete "A.named"
251 assertHasRegion("A(BBB"); 251 assertHasRegion("A(BBB");
252 assertHasTarget("A(BBB", 0); 252 assertHasTarget("A(BBB", 0);
253 // validate that we don't forget to resolve parameters 253 // validate that we don't forget to resolve parameters
254 assertHasRegionTarget('BBB p', 'BBB {}'); 254 assertHasRegionTarget('BBB p', 'BBB {}');
255 }); 255 });
256 } 256 }
257 257
258 test_factoryRedirectingConstructor_implicit() {
259 addTestFile('''
260 class A {
261 factory A() = B;
262 }
263 class B {
264 }
265 ''');
266 return prepareNavigation().then((_) {
267 assertHasRegion('B;');
268 assertHasTarget('B {');
269 });
270 }
271
272 test_factoryRedirectingConstructor_implicit_withTypeArgument() {
273 addTestFile('''
274 class A {}
275 class B {
276 factory B() = C<A>;
277 }
278 class C<T> {}
279 ''');
280 return prepareNavigation().then((_) {
281 {
282 assertHasRegion('C<A>');
283 assertHasTarget('C<T> {');
284 }
285 {
286 assertHasRegion('A>;');
287 assertHasTarget('A {');
288 }
289 });
290 }
291
292 test_factoryRedirectingConstructor_named() {
293 addTestFile('''
294 class A {
295 factory A() = B.named;
296 }
297 class B {
298 B.named();
299 }
300 ''');
301 return prepareNavigation().then((_) {
302 assertHasRegionString('B.named');
303 assertHasTarget('named();');
304 });
305 }
306
307 test_factoryRedirectingConstructor_named_withTypeArgument() {
308 addTestFile('''
309 class A {}
310 class B {
311 factory B.named() = C<A>.named;
312 }
313 class C<T> {
314 C.named() {}
315 }
316 ''');
317 return prepareNavigation().then((_) {
318 {
319 assertHasRegion('C<A>');
320 assertHasTarget('named() {}');
321 }
322 {
323 assertHasRegion('A>.named');
324 assertHasTarget('A {');
325 }
326 {
327 assertHasRegion('.named;', '.named'.length);
328 assertHasTarget('named() {}');
329 }
330 });
331 }
332
333 test_factoryRedirectingConstructor_unnamed() {
334 addTestFile('''
335 class A {
336 factory A() = B;
337 }
338 class B {
339 B() {}
340 }
341 ''');
342 return prepareNavigation().then((_) {
343 assertHasRegion('B;');
344 assertHasTarget('B() {}', 0);
345 });
346 }
347
348 test_factoryRedirectingConstructor_unnamed_withTypeArgument() {
349 addTestFile('''
350 class A {}
351 class B {
352 factory B() = C<A>;
353 }
354 class C<T> {
355 C() {}
356 }
357 ''');
358 return prepareNavigation().then((_) {
359 {
360 assertHasRegion('C<A>');
361 assertHasTarget('C() {}', 0);
362 }
363 {
364 assertHasRegion('A>;');
365 assertHasTarget('A {');
366 }
367 });
368 }
369
370 test_factoryRedirectingConstructor_unresolved() {
371 addTestFile('''
372 class A {
373 factory A() = B;
374 }
375 ''');
376 return prepareNavigation().then((_) {
377 // don't check regions, but there should be no exceptions
378 });
379 }
380
258 test_fieldFormalParameter() { 381 test_fieldFormalParameter() {
259 addTestFile(''' 382 addTestFile('''
260 class AAA { 383 class AAA {
261 int fff = 123; 384 int fff = 123;
262 AAA(this.fff); 385 AAA(this.fff);
263 } 386 }
264 '''); 387 ''');
265 return prepareNavigation().then((_) { 388 return prepareNavigation().then((_) {
266 assertHasRegionTarget('fff);', 'fff = 123'); 389 assertHasRegionTarget('fff);', 'fff = 123');
267 }); 390 });
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 return prepareNavigation().then((_) { 486 return prepareNavigation().then((_) {
364 assertHasRegionString('new A.named'); 487 assertHasRegionString('new A.named');
365 assertHasTarget('named() {}'); 488 assertHasTarget('named() {}');
366 }); 489 });
367 } 490 }
368 491
369 test_instanceCreation_named_withTypeArgument() { 492 test_instanceCreation_named_withTypeArgument() {
370 addTestFile(''' 493 addTestFile('''
371 class A {} 494 class A {}
372 class B<T> { 495 class B<T> {
373 A.named() {} 496 B.named() {}
374 } 497 }
375 main() { 498 main() {
376 new B<A>.named(); 499 new B<A>.named();
377 } 500 }
378 '''); 501 ''');
379 return prepareNavigation().then((_) { 502 return prepareNavigation().then((_) {
380 { 503 {
381 assertHasRegionString('new B'); 504 assertHasRegionString('new B');
382 assertHasTarget('named() {}'); 505 assertHasTarget('named() {}');
383 } 506 }
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 test_type_void() { 770 test_type_void() {
648 addTestFile(''' 771 addTestFile('''
649 void main() { 772 void main() {
650 } 773 }
651 '''); 774 ''');
652 return prepareNavigation().then((_) { 775 return prepareNavigation().then((_) {
653 assertNoRegionAt('void'); 776 assertNoRegionAt('void');
654 }); 777 });
655 } 778 }
656 } 779 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698