OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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_test; | 5 library dart2js.serialization_test; |
6 | 6 |
7 import 'dart:io'; | 7 import 'dart:io'; |
8 import '../memory_compiler.dart'; | 8 import '../memory_compiler.dart'; |
9 import 'package:async_helper/async_helper.dart'; | 9 import 'package:async_helper/async_helper.dart'; |
10 import 'package:compiler/src/commandline_options.dart'; | 10 import 'package:compiler/src/commandline_options.dart'; |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 check(element1, element2, 'isAbstract', | 280 check(element1, element2, 'isAbstract', |
281 element1.isAbstract, element2.isAbstract); | 281 element1.isAbstract, element2.isAbstract); |
282 check(element1, element2, 'isStatic', | 282 check(element1, element2, 'isStatic', |
283 element1.isStatic, element2.isStatic); | 283 element1.isStatic, element2.isStatic); |
284 check(element1, element2, 'isTopLevel', | 284 check(element1, element2, 'isTopLevel', |
285 element1.isTopLevel, element2.isTopLevel); | 285 element1.isTopLevel, element2.isTopLevel); |
286 check(element1, element2, 'isClassMember', | 286 check(element1, element2, 'isClassMember', |
287 element1.isClassMember, element2.isClassMember); | 287 element1.isClassMember, element2.isClassMember); |
288 check(element1, element2, 'isInstanceMember', | 288 check(element1, element2, 'isInstanceMember', |
289 element1.isInstanceMember, element2.isInstanceMember); | 289 element1.isInstanceMember, element2.isInstanceMember); |
| 290 List<MetadataAnnotation> metadata1 = <MetadataAnnotation>[]; |
| 291 metadata1.addAll(element1.metadata); |
| 292 if (element1.isPatched) { |
| 293 metadata1.addAll(element1.implementation.metadata); |
| 294 } |
| 295 List<MetadataAnnotation> metadata2 = <MetadataAnnotation>[]; |
| 296 metadata2.addAll(element2.metadata); |
| 297 if (element2.isPatched) { |
| 298 metadata2.addAll(element2.implementation.metadata); |
| 299 } |
290 checkListEquivalence(element1, element2, 'metadata', | 300 checkListEquivalence(element1, element2, 'metadata', |
291 element1.metadata, element2.metadata, checkMetadata); | 301 metadata1, metadata2, checkMetadata); |
292 } | 302 } |
293 | 303 |
294 @override | 304 @override |
295 void visitElement(Element e, Element arg) { | 305 void visitElement(Element e, Element arg) { |
296 throw new UnsupportedError("Unsupported element $e"); | 306 throw new UnsupportedError("Unsupported element $e"); |
297 } | 307 } |
298 | 308 |
299 @override | 309 @override |
300 void visitLibraryElement(LibraryElement element1, LibraryElement element2) { | 310 void visitLibraryElement(LibraryElement element1, LibraryElement element2) { |
301 checkElementIdentities(null, null, null, element1, element2); | 311 checkElementIdentities(null, null, null, element1, element2); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 String message = | 397 String message = |
388 'Missing member for $member1 in\n ${members2.join('\n ')}'; | 398 'Missing member for $member1 in\n ${members2.join('\n ')}'; |
389 if (member1.isAbstractField) { | 399 if (member1.isAbstractField) { |
390 // TODO(johnniwinther): Ensure abstract fields are handled correctly. | 400 // TODO(johnniwinther): Ensure abstract fields are handled correctly. |
391 //print(message); | 401 //print(message); |
392 continue; | 402 continue; |
393 } else { | 403 } else { |
394 throw message; | 404 throw message; |
395 } | 405 } |
396 } | 406 } |
397 currentCheck = new Check(currentCheck, element1, element1, | 407 currentCheck = new Check(currentCheck, element1, element2, |
398 'member:$name', member1, member2); | 408 'member:$name', member1, member2); |
399 visit(member1, member2); | 409 visit(member1, member2); |
400 currentCheck = currentCheck.parent; | 410 currentCheck = currentCheck.parent; |
401 } | 411 } |
402 } | 412 } |
403 | 413 |
404 @override | 414 @override |
405 void visitClassElement(ClassElement element1, ClassElement element2) { | 415 void visitClassElement(ClassElement element1, ClassElement element2) { |
406 checkElementIdentities(null, null, null, element1, element2); | 416 checkElementIdentities(null, null, null, element1, element2); |
407 check(element1, element2, 'name', | 417 check(element1, element2, 'name', |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
786 void visitPrefixElement(PrefixElement element1, PrefixElement element2) { | 796 void visitPrefixElement(PrefixElement element1, PrefixElement element2) { |
787 check( | 797 check( |
788 element1, element2, 'isDeferred', | 798 element1, element2, 'isDeferred', |
789 element1.isDeferred, element2.isDeferred); | 799 element1.isDeferred, element2.isDeferred); |
790 checkElementIdentities( | 800 checkElementIdentities( |
791 element1, element2, 'importedLibrary', | 801 element1, element2, 'importedLibrary', |
792 element1.deferredImport, element2.deferredImport); | 802 element1.deferredImport, element2.deferredImport); |
793 // TODO(johnniwinther): Check members. | 803 // TODO(johnniwinther): Check members. |
794 } | 804 } |
795 } | 805 } |
OLD | NEW |