| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 dart2js.serialization.class_members_test; | 5 library dart2js.serialization.class_members_test; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'package:async_helper/async_helper.dart'; | 8 import 'package:async_helper/async_helper.dart'; |
| 9 import 'package:compiler/src/common/names.dart'; | 9 import 'package:compiler/src/common/names.dart'; |
| 10 import 'package:compiler/src/commandline_options.dart'; | 10 import 'package:compiler/src/commandline_options.dart'; |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 class1.forEachInterfaceMember((MemberSignature member1) { | 80 class1.forEachInterfaceMember((MemberSignature member1) { |
| 81 Name name1 = member1.name; | 81 Name name1 = member1.name; |
| 82 Name name2 = convertName(name1, compiler2); | 82 Name name2 = convertName(name1, compiler2); |
| 83 checkMemberSignature(class1, class2, 'interfaceMember:$name1', member1, | 83 checkMemberSignature(class1, class2, 'interfaceMember:$name1', member1, |
| 84 class2.lookupInterfaceMember(name2)); | 84 class2.lookupInterfaceMember(name2)); |
| 85 }); | 85 }); |
| 86 } | 86 } |
| 87 | 87 |
| 88 Name convertName(Name name, Compiler compiler) { | 88 Name convertName(Name name, Compiler compiler) { |
| 89 if (name.isPrivate) { | 89 if (name.isPrivate) { |
| 90 LibraryElement library = | 90 LibraryElement library1 = name.library; |
| 91 compiler.libraryLoader.lookupLibrary(name.library.canonicalUri); | 91 LibraryElement library2 = |
| 92 if (!areElementsEquivalent(name.library, library)) { | 92 compiler.libraryLoader.lookupLibrary(library1.canonicalUri); |
| 93 throw 'Libraries ${name.library} and ${library} are not equivalent'; | 93 if (!areElementsEquivalent(library1, library2)) { |
| 94 throw 'Libraries ${library1} and ${library2} are not equivalent'; |
| 94 } | 95 } |
| 95 name = new Name(name.text, library, isSetter: name.isSetter); | 96 name = new Name(name.text, library2, isSetter: name.isSetter); |
| 96 } | 97 } |
| 97 return name; | 98 return name; |
| 98 } | 99 } |
| 99 | 100 |
| 100 void checkMember(ClassElement class1, ClassElement class2, String property, | 101 void checkMember(ClassElement class1, ClassElement class2, String property, |
| 101 Member member1, Member member2) { | 102 Member member1, Member member2) { |
| 102 if (member2 == null) { | 103 if (member2 == null) { |
| 103 print('$class1 class members:'); | 104 print('$class1 class members:'); |
| 104 class1.forEachClassMember((m) => print(' ${m.name} $m')); | 105 class1.forEachClassMember((m) => print(' ${m.name} $m')); |
| 105 print('$class2 class members:'); | 106 print('$class2 class members:'); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 areTypesEquivalent); | 139 areTypesEquivalent); |
| 139 check(class1, class2, '$property.functionType', member1.functionType, | 140 check(class1, class2, '$property.functionType', member1.functionType, |
| 140 member2.functionType, areTypesEquivalent); | 141 member2.functionType, areTypesEquivalent); |
| 141 check( | 142 check( |
| 142 class1, class2, '$property.isGetter', member1.isGetter, member2.isGetter); | 143 class1, class2, '$property.isGetter', member1.isGetter, member2.isGetter); |
| 143 check( | 144 check( |
| 144 class1, class2, '$property.isSetter', member1.isSetter, member2.isSetter); | 145 class1, class2, '$property.isSetter', member1.isSetter, member2.isSetter); |
| 145 check( | 146 check( |
| 146 class1, class2, '$property.isMethod', member1.isMethod, member2.isMethod); | 147 class1, class2, '$property.isMethod', member1.isMethod, member2.isMethod); |
| 147 } | 148 } |
| OLD | NEW |