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 |