| 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.source_class_builder; | 5 library fasta.source_class_builder; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' show | 7 import 'package:kernel/ast.dart' show |
| 8 Class, | 8 Class, |
| 9 Constructor, | 9 Constructor, |
| 10 Supertype, | 10 Supertype, |
| 11 setParents; | 11 setParents; |
| 12 | 12 |
| 13 import '../errors.dart' show | 13 import '../errors.dart' show |
| 14 internalError, | 14 internalError, |
| 15 inputError; | 15 inputError; |
| 16 | 16 |
| 17 import '../kernel/kernel_builder.dart' show | 17 import '../kernel/kernel_builder.dart' show |
| 18 Builder, | 18 Builder, |
| 19 ConstructorReferenceBuilder, | 19 ConstructorReferenceBuilder, |
| 20 KernelClassBuilder, | 20 KernelClassBuilder, |
| 21 KernelFieldBuilder, | 21 KernelFieldBuilder, |
| 22 KernelFunctionBuilder, | 22 KernelFunctionBuilder, |
| 23 KernelLibraryBuilder, | 23 KernelLibraryBuilder, |
| 24 KernelProcedureBuilder, | 24 KernelProcedureBuilder, |
| 25 KernelTypeBuilder, | 25 KernelTypeBuilder, |
| 26 KernelTypeVariableBuilder, | 26 KernelTypeVariableBuilder, |
| 27 LibraryBuilder, | 27 LibraryBuilder, |
| 28 MemberBuilder, | |
| 29 MetadataBuilder, | 28 MetadataBuilder, |
| 30 ProcedureBuilder, | 29 ProcedureBuilder, |
| 31 TypeVariableBuilder; | 30 TypeVariableBuilder; |
| 32 | 31 |
| 33 import '../dill/dill_member_builder.dart' show | 32 import '../dill/dill_member_builder.dart' show |
| 34 DillMemberBuilder; | 33 DillMemberBuilder; |
| 35 | 34 |
| 36 class SourceClassBuilder extends KernelClassBuilder { | 35 class SourceClassBuilder extends KernelClassBuilder { |
| 37 final Class cls; | 36 final Class cls; |
| 38 | 37 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 // TODO(ahe): Report an error if supertype is null. | 92 // TODO(ahe): Report an error if supertype is null. |
| 94 cls.implementedTypes.add(supertype); | 93 cls.implementedTypes.add(supertype); |
| 95 } | 94 } |
| 96 } | 95 } |
| 97 } | 96 } |
| 98 return cls; | 97 return cls; |
| 99 } | 98 } |
| 100 | 99 |
| 101 int convertConstructors(KernelLibraryBuilder library) { | 100 int convertConstructors(KernelLibraryBuilder library) { |
| 102 List<String> oldConstructorNames = <String>[]; | 101 List<String> oldConstructorNames = <String>[]; |
| 103 members.forEach((String name, MemberBuilder builder) { | 102 // TODO(sigmund): should be `covariant MemberBuilder` |
| 103 members.forEach((String name, dynamic builder) { |
| 104 if (isConstructorName(name, this.name)) { | 104 if (isConstructorName(name, this.name)) { |
| 105 oldConstructorNames.add(name); | 105 oldConstructorNames.add(name); |
| 106 String newName = ""; | 106 String newName = ""; |
| 107 int index = name.indexOf("."); | 107 int index = name.indexOf("."); |
| 108 if (index != -1) { | 108 if (index != -1) { |
| 109 newName = name.substring(index + 1); | 109 newName = name.substring(index + 1); |
| 110 } | 110 } |
| 111 if (builder is KernelProcedureBuilder) { | 111 if (builder is KernelProcedureBuilder) { |
| 112 Builder constructor = builder.toConstructor(newName, typeVariables); | 112 Builder constructor = builder.toConstructor(newName, typeVariables); |
| 113 Builder other = members[newName]; | 113 Builder other = members[newName]; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 if (isConstructorName(builder.name, className)) return; | 158 if (isConstructorName(builder.name, className)) return; |
| 159 } | 159 } |
| 160 if (name.indexOf(".") != -1) { | 160 if (name.indexOf(".") != -1) { |
| 161 inputError(null, null, "Only constructors and factories can have names " | 161 inputError(null, null, "Only constructors and factories can have names " |
| 162 "containing a period ('.'): $name"); | 162 "containing a period ('.'): $name"); |
| 163 } | 163 } |
| 164 membersInScope[name] = builder; | 164 membersInScope[name] = builder; |
| 165 }); | 165 }); |
| 166 return membersInScope; | 166 return membersInScope; |
| 167 } | 167 } |
| OLD | NEW |