| 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 fasta.kernel_library_builder; | 5 library fasta.kernel_library_builder; |
| 6 | 6 |
| 7 import 'package:front_end/src/scanner/token.dart' show Token; | |
| 8 | |
| 9 import 'package:kernel/ast.dart'; | 7 import 'package:kernel/ast.dart'; |
| 10 | 8 |
| 11 import 'package:kernel/clone.dart' show CloneVisitor; | 9 import 'package:kernel/clone.dart' show CloneVisitor; |
| 12 | 10 |
| 13 import '../deprecated_problems.dart' show deprecated_internalProblem; | 11 import '../../scanner/token.dart' show Token; |
| 14 | 12 |
| 15 import '../loader.dart' show Loader; | 13 import '../loader.dart' show Loader; |
| 16 | 14 |
| 17 import '../modifier.dart' | 15 import '../modifier.dart' |
| 18 show abstractMask, namedMixinApplicationMask, staticMask; | 16 show abstractMask, namedMixinApplicationMask, staticMask; |
| 19 | 17 |
| 18 import '../problems.dart' show unhandled; |
| 19 |
| 20 import '../source/source_class_builder.dart' show SourceClassBuilder; |
| 21 |
| 20 import '../source/source_library_builder.dart' | 22 import '../source/source_library_builder.dart' |
| 21 show DeclarationBuilder, SourceLibraryBuilder; | 23 show DeclarationBuilder, SourceLibraryBuilder; |
| 22 | 24 |
| 23 import '../source/source_class_builder.dart' show SourceClassBuilder; | |
| 24 | |
| 25 import '../util/relativize.dart' show relativizeUri; | 25 import '../util/relativize.dart' show relativizeUri; |
| 26 | 26 |
| 27 import 'kernel_builder.dart' | 27 import 'kernel_builder.dart' |
| 28 show | 28 show |
| 29 deprecated_AccessErrorBuilder, | 29 AccessErrorBuilder, |
| 30 Builder, | 30 Builder, |
| 31 BuiltinTypeBuilder, | 31 BuiltinTypeBuilder, |
| 32 ClassBuilder, | 32 ClassBuilder, |
| 33 ConstructorReferenceBuilder, | 33 ConstructorReferenceBuilder, |
| 34 FormalParameterBuilder, | 34 FormalParameterBuilder, |
| 35 InvalidTypeBuilder, | 35 InvalidTypeBuilder, |
| 36 KernelConstructorBuilder, | 36 KernelConstructorBuilder, |
| 37 KernelEnumBuilder, | 37 KernelEnumBuilder, |
| 38 KernelFieldBuilder, | 38 KernelFieldBuilder, |
| 39 KernelFormalParameterBuilder, | 39 KernelFormalParameterBuilder, |
| (...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 668 library.addMember(builder.build(this)..isStatic = true); | 668 library.addMember(builder.build(this)..isStatic = true); |
| 669 } else if (builder is KernelFunctionTypeAliasBuilder) { | 669 } else if (builder is KernelFunctionTypeAliasBuilder) { |
| 670 library.addTypedef(builder.build(this)); | 670 library.addTypedef(builder.build(this)); |
| 671 } else if (builder is KernelEnumBuilder) { | 671 } else if (builder is KernelEnumBuilder) { |
| 672 library.addClass(builder.build(this, coreLibrary)); | 672 library.addClass(builder.build(this, coreLibrary)); |
| 673 } else if (builder is PrefixBuilder) { | 673 } else if (builder is PrefixBuilder) { |
| 674 // Ignored. Kernel doesn't represent prefixes. | 674 // Ignored. Kernel doesn't represent prefixes. |
| 675 } else if (builder is BuiltinTypeBuilder) { | 675 } else if (builder is BuiltinTypeBuilder) { |
| 676 // Nothing needed. | 676 // Nothing needed. |
| 677 } else { | 677 } else { |
| 678 deprecated_internalProblem("Unhandled builder: ${builder.runtimeType}"); | 678 unhandled("${builder.runtimeType}", "buildBuilder", builder.charOffset, |
| 679 builder.fileUri); |
| 679 } | 680 } |
| 680 } | 681 } |
| 681 | 682 |
| 682 @override | 683 @override |
| 683 Library build(LibraryBuilder coreLibrary) { | 684 Library build(LibraryBuilder coreLibrary) { |
| 684 super.build(coreLibrary); | 685 super.build(coreLibrary); |
| 685 library.name = name; | 686 library.name = name; |
| 686 library.procedures.sort(compareProcedures); | 687 library.procedures.sort(compareProcedures); |
| 687 return library; | 688 return library; |
| 688 } | 689 } |
| 689 | 690 |
| 690 @override | 691 @override |
| 691 Builder buildAmbiguousBuilder( | 692 Builder buildAmbiguousBuilder( |
| 692 String name, Builder builder, Builder other, int charOffset, | 693 String name, Builder builder, Builder other, int charOffset, |
| 693 {bool isExport: false, bool isImport: false}) { | 694 {bool isExport: false, bool isImport: false}) { |
| 694 // TODO(ahe): Can I move this to Scope or Prefix? | 695 // TODO(ahe): Can I move this to Scope or Prefix? |
| 695 if (builder == other) return builder; | 696 if (builder == other) return builder; |
| 696 if (builder is InvalidTypeBuilder) return builder; | 697 if (builder is InvalidTypeBuilder) return builder; |
| 697 if (other is InvalidTypeBuilder) return other; | 698 if (other is InvalidTypeBuilder) return other; |
| 698 if (builder is deprecated_AccessErrorBuilder) { | 699 if (builder is AccessErrorBuilder) { |
| 699 deprecated_AccessErrorBuilder error = builder; | 700 AccessErrorBuilder error = builder; |
| 700 builder = error.builder; | 701 builder = error.builder; |
| 701 } | 702 } |
| 702 if (other is deprecated_AccessErrorBuilder) { | 703 if (other is AccessErrorBuilder) { |
| 703 deprecated_AccessErrorBuilder error = other; | 704 AccessErrorBuilder error = other; |
| 704 other = error.builder; | 705 other = error.builder; |
| 705 } | 706 } |
| 706 bool isLocal = false; | 707 bool isLocal = false; |
| 707 Builder preferred; | 708 Builder preferred; |
| 708 Uri uri; | 709 Uri uri; |
| 709 Uri otherUri; | 710 Uri otherUri; |
| 710 Uri preferredUri; | 711 Uri preferredUri; |
| 711 Uri hiddenUri; | 712 Uri hiddenUri; |
| 712 if (scope.local[name] == builder) { | 713 if (scope.local[name] == builder) { |
| 713 isLocal = true; | 714 isLocal = true; |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 858 mixinApplicationClasses.putIfAbsent(name, () => builder); | 859 mixinApplicationClasses.putIfAbsent(name, () => builder); |
| 859 if (existing != builder) { | 860 if (existing != builder) { |
| 860 part.scope.local.remove(name); | 861 part.scope.local.remove(name); |
| 861 } | 862 } |
| 862 }); | 863 }); |
| 863 super.includePart(part); | 864 super.includePart(part); |
| 864 nativeMethods.addAll(part.nativeMethods); | 865 nativeMethods.addAll(part.nativeMethods); |
| 865 boundlessTypeVariables.addAll(part.boundlessTypeVariables); | 866 boundlessTypeVariables.addAll(part.boundlessTypeVariables); |
| 866 } | 867 } |
| 867 } | 868 } |
| OLD | NEW |