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

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

Issue 1037193002: Fix for computing overridden/implemented members from interfaces. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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
« no previous file with comments | « pkg/analysis_server/lib/src/computer/computer_overrides.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.overrides; 5 library test.analysis.notification.overrides;
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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 '''); 131 ''');
132 return waitForTasksFinished().then((_) { 132 return waitForTasksFinished().then((_) {
133 return prepareOverrides().then((_) { 133 return prepareOverrides().then((_) {
134 assertHasOverride('m() {} // in B'); 134 assertHasOverride('m() {} // in B');
135 assertNoSuperMember(); 135 assertNoSuperMember();
136 assertHasInterfaceMember('m() {} // in A'); 136 assertHasInterfaceMember('m() {} // in A');
137 }); 137 });
138 }); 138 });
139 } 139 }
140 140
141 test_definedInInterface_ofInterface() {
142 addTestFile('''
143 class A {
144 m() {} // in A
145 }
146 class B implements A {}
147 class C implements B {
148 m() {} // in C
149 }
150 ''');
151 return prepareOverrides().then((_) {
152 assertHasOverride('m() {} // in C');
153 assertNoSuperMember();
154 assertHasInterfaceMember('m() {} // in A');
155 });
156 }
157
158 test_definedInInterface_ofSuper() {
159 addTestFile('''
160 class A {
161 m() {} // in A
162 }
163 class B implements A {}
164 class C extends B {
165 m() {} // in C
166 }
167 ''');
168 return prepareOverrides().then((_) {
169 assertHasOverride('m() {} // in C');
170 assertNoSuperMember();
171 assertHasInterfaceMember('m() {} // in A');
172 });
173 }
174
141 test_interface_method_direct_multiple() { 175 test_interface_method_direct_multiple() {
142 addTestFile(''' 176 addTestFile('''
143 class IA { 177 class IA {
144 m() {} // in IA 178 m() {} // in IA
145 } 179 }
146 class IB { 180 class IB {
147 m() {} // in IB 181 m() {} // in IB
148 } 182 }
149 class A implements IA, IB { 183 class A implements IA, IB {
150 m() {} // in A 184 m() {} // in A
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 m() {} // in C 350 m() {} // in C
317 } 351 }
318 '''); 352 ''');
319 return prepareOverrides().then((_) { 353 return prepareOverrides().then((_) {
320 assertHasOverride('m() {} // in C'); 354 assertHasOverride('m() {} // in C');
321 assertHasSuperElement('m() {} // in A'); 355 assertHasSuperElement('m() {} // in A');
322 assertNoInterfaceMembers(); 356 assertNoInterfaceMembers();
323 }); 357 });
324 } 358 }
325 359
360 test_super_method_superTypeCycle() {
361 addTestFile('''
362 class A extends B {
363 m() {} // in A
364 }
365 class B extends A {
366 m() {} // in B
367 }
368 ''');
369 return prepareOverrides().then((_) {
370 // must finish
371 });
372 }
373
326 test_super_setterBySetter() { 374 test_super_setterBySetter() {
327 addTestFile(''' 375 addTestFile('''
328 class A { 376 class A {
329 set fff(x) {} // in A 377 set fff(x) {} // in A
330 } 378 }
331 class B extends A { 379 class B extends A {
332 set fff(x) {} // in B 380 set fff(x) {} // in B
333 } 381 }
334 '''); 382 ''');
335 return prepareOverrides().then((_) { 383 return prepareOverrides().then((_) {
336 assertHasOverride('fff(x) {} // in B'); 384 assertHasOverride('fff(x) {} // in B');
337 assertHasSuperElement('fff(x) {} // in A'); 385 assertHasSuperElement('fff(x) {} // in A');
338 assertNoInterfaceMembers(); 386 assertNoInterfaceMembers();
339 }); 387 });
340 } 388 }
341 } 389 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/computer/computer_overrides.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698