OLD | NEW |
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 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 m() {} // in C | 220 m() {} // in C |
221 } | 221 } |
222 '''); | 222 '''); |
223 return prepareOverrides().then((_) { | 223 return prepareOverrides().then((_) { |
224 assertHasOverride('m() {} // in C'); | 224 assertHasOverride('m() {} // in C'); |
225 assertNoSuperMember(); | 225 assertNoSuperMember(); |
226 assertHasInterfaceMember('m() {} // in A'); | 226 assertHasInterfaceMember('m() {} // in A'); |
227 }); | 227 }); |
228 } | 228 } |
229 | 229 |
| 230 test_interface_stopWhenFound() { |
| 231 addTestFile(''' |
| 232 class A { |
| 233 m() {} // in A |
| 234 } |
| 235 class B extends A { |
| 236 m() {} // in B |
| 237 } |
| 238 class C implements B { |
| 239 m() {} // in C |
| 240 } |
| 241 '''); |
| 242 return prepareOverrides().then((_) { |
| 243 assertHasOverride('m() {} // in C'); |
| 244 expect(override.interfaceMembers, hasLength(1)); |
| 245 assertHasInterfaceMember('m() {} // in B'); |
| 246 }); |
| 247 } |
| 248 |
| 249 test_mix_sameMethod() { |
| 250 addTestFile(''' |
| 251 class A { |
| 252 m() {} // in A |
| 253 } |
| 254 abstract class B extends A { |
| 255 } |
| 256 class C extends A implements A { |
| 257 m() {} // in C |
| 258 } |
| 259 '''); |
| 260 return prepareOverrides().then((_) { |
| 261 assertHasOverride('m() {} // in C'); |
| 262 assertHasSuperElement('m() {} // in A'); |
| 263 assertNoInterfaceMembers(); |
| 264 }); |
| 265 } |
| 266 |
| 267 test_mix_sameMethod_Object_hashCode() { |
| 268 addTestFile(''' |
| 269 class A {} |
| 270 abstract class B {} |
| 271 class C extends A implements A { |
| 272 int get hashCode => 42; |
| 273 } |
| 274 '''); |
| 275 return prepareOverrides().then((_) { |
| 276 assertHasOverride('hashCode => 42;'); |
| 277 expect(override.superclassMember, isNotNull); |
| 278 expect(override.interfaceMembers, isNull); |
| 279 }); |
| 280 } |
| 281 |
230 test_staticMembers() { | 282 test_staticMembers() { |
231 addTestFile(''' | 283 addTestFile(''' |
232 class A { | 284 class A { |
233 static int F = 0; | 285 static int F = 0; |
234 static void M() {} | 286 static void M() {} |
235 static int get G => 0; | 287 static int get G => 0; |
236 static void set S(int v) {} | 288 static void set S(int v) {} |
237 } | 289 } |
238 class B extends A { | 290 class B extends A { |
239 static int F = 0; | 291 static int F = 0; |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
401 set fff(x) {} // in B | 453 set fff(x) {} // in B |
402 } | 454 } |
403 '''); | 455 '''); |
404 return prepareOverrides().then((_) { | 456 return prepareOverrides().then((_) { |
405 assertHasOverride('fff(x) {} // in B'); | 457 assertHasOverride('fff(x) {} // in B'); |
406 assertHasSuperElement('fff(x) {} // in A'); | 458 assertHasSuperElement('fff(x) {} // in A'); |
407 assertNoInterfaceMembers(); | 459 assertNoInterfaceMembers(); |
408 }); | 460 }); |
409 } | 461 } |
410 } | 462 } |
OLD | NEW |