| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 resolution.compute_members; | 5 library resolution.compute_members; |
| 6 | 6 |
| 7 import '../elements/elements.dart' | 7 import '../elements/elements.dart' |
| 8 show Element, | 8 show Element, |
| 9 Name, | 9 Name, |
| 10 PublicName, | 10 PublicName, |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 compiler.reportInfo(superMember.element, | 341 compiler.reportInfo(superMember.element, |
| 342 MessageKind.INSTANCE_STATIC_SAME_NAME_CONT); | 342 MessageKind.INSTANCE_STATIC_SAME_NAME_CONT); |
| 343 }); | 343 }); |
| 344 break; | 344 break; |
| 345 } | 345 } |
| 346 superclass = superclass.superclass; | 346 superclass = superclass.superclass; |
| 347 } | 347 } |
| 348 } | 348 } |
| 349 } else { | 349 } else { |
| 350 assert(declared.name == superMember.name); | 350 assert(declared.name == superMember.name); |
| 351 |
| 351 if (declared.isStatic) { | 352 if (declared.isStatic) { |
| 352 for (Member inherited in superMember.declarations) { | 353 for (Member inherited in superMember.declarations) { |
| 354 if (cls == inherited.declarer.element) { |
| 355 // An error should already have been reported. |
| 356 assert(invariant(declared.element, compiler.compilationFailed)); |
| 357 continue; |
| 358 } |
| 359 |
| 353 reportMessage( | 360 reportMessage( |
| 354 inherited.element, MessageKind.NO_STATIC_OVERRIDE, () { | 361 inherited.element, MessageKind.NO_STATIC_OVERRIDE, () { |
| 355 reportErrorWithContext( | 362 reportErrorWithContext( |
| 356 declared.element, MessageKind.NO_STATIC_OVERRIDE, | 363 declared.element, MessageKind.NO_STATIC_OVERRIDE, |
| 357 inherited.element, MessageKind.NO_STATIC_OVERRIDE_CONT); | 364 inherited.element, MessageKind.NO_STATIC_OVERRIDE_CONT); |
| 358 }); | 365 }); |
| 359 } | 366 } |
| 360 } | 367 } |
| 361 | 368 |
| 362 DartType declaredType = declared.functionType; | 369 DartType declaredType = declared.functionType; |
| 363 for (Member inherited in superMember.declarations) { | 370 for (Member inherited in superMember.declarations) { |
| 371 if (cls == inherited.declarer.element) { |
| 372 // An error should already have been reported. |
| 373 assert(invariant(declared.element, compiler.compilationFailed)); |
| 374 continue; |
| 375 } |
| 364 | 376 |
| 365 void reportError(MessageKind errorKind, MessageKind infoKind) { | 377 void reportError(MessageKind errorKind, MessageKind infoKind) { |
| 366 reportMessage( | 378 reportMessage( |
| 367 inherited.element, MessageKind.INVALID_OVERRIDE_METHOD, () { | 379 inherited.element, MessageKind.INVALID_OVERRIDE_METHOD, () { |
| 368 compiler.reportError(declared.element, errorKind, | 380 compiler.reportError(declared.element, errorKind, |
| 369 {'name': declared.name.text, | 381 {'name': declared.name.text, |
| 370 'class': cls.thisType, | 382 'class': cls.thisType, |
| 371 'inheritedClass': inherited.declarer}); | 383 'inheritedClass': inherited.declarer}); |
| 372 compiler.reportInfo(inherited.element, infoKind, | 384 compiler.reportInfo(inherited.element, infoKind, |
| 373 {'name': declared.name.text, | 385 {'name': declared.name.text, |
| (...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 889 message: "Members have not been fully computed for $this.")); | 901 message: "Members have not been fully computed for $this.")); |
| 890 if (interfaceMembersAreClassMembers) { | 902 if (interfaceMembersAreClassMembers) { |
| 891 classMembers.forEach((_, member) { | 903 classMembers.forEach((_, member) { |
| 892 if (!member.isStatic) f(member); | 904 if (!member.isStatic) f(member); |
| 893 }); | 905 }); |
| 894 } else { | 906 } else { |
| 895 interfaceMembers.forEach((_, member) => f(member)); | 907 interfaceMembers.forEach((_, member) => f(member)); |
| 896 } | 908 } |
| 897 } | 909 } |
| 898 } | 910 } |
| OLD | NEW |