| 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 |