| 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:kernel/ast.dart'; | 7 import 'package:kernel/ast.dart'; |
| 8 | 8 |
| 9 import 'package:kernel/clone.dart' show | 9 import 'package:kernel/clone.dart' show |
| 10 CloneVisitor; | 10 CloneVisitor; |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 | 88 |
| 89 KernelTypeBuilder addVoidType(int charOffset) { | 89 KernelTypeBuilder addVoidType(int charOffset) { |
| 90 return new KernelNamedTypeBuilder("void", null, charOffset, fileUri); | 90 return new KernelNamedTypeBuilder("void", null, charOffset, fileUri); |
| 91 } | 91 } |
| 92 | 92 |
| 93 void addClass(List<MetadataBuilder> metadata, | 93 void addClass(List<MetadataBuilder> metadata, |
| 94 int modifiers, String className, | 94 int modifiers, String className, |
| 95 List<TypeVariableBuilder> typeVariables, KernelTypeBuilder supertype, | 95 List<TypeVariableBuilder> typeVariables, KernelTypeBuilder supertype, |
| 96 List<KernelTypeBuilder> interfaces, int charOffset) { | 96 List<KernelTypeBuilder> interfaces, int charOffset) { |
| 97 ClassBuilder cls = new SourceClassBuilder(metadata, modifiers, className, | 97 ClassBuilder cls = new SourceClassBuilder(metadata, modifiers, className, |
| 98 typeVariables, supertype, interfaces, classMembers, declarationTypes, | 98 typeVariables, supertype, interfaces, classMembers, this, |
| 99 this, | |
| 100 new List<ConstructorReferenceBuilder>.from(constructorReferences), | 99 new List<ConstructorReferenceBuilder>.from(constructorReferences), |
| 101 charOffset); | 100 charOffset); |
| 102 constructorReferences.clear(); | 101 constructorReferences.clear(); |
| 103 classMembers.forEach((String name, MemberBuilder builder) { | 102 classMembers.forEach((String name, MemberBuilder builder) { |
| 104 while (builder != null) { | 103 while (builder != null) { |
| 105 builder.parent = cls; | 104 builder.parent = cls; |
| 106 builder = builder.next; | 105 builder = builder.next; |
| 107 } | 106 } |
| 108 }); | 107 }); |
| 109 // Nested declaration began in `OutlineBuilder.beginClassDeclaration`. | 108 // Nested declaration began in `OutlineBuilder.beginClassDeclaration`. |
| 110 endNestedDeclaration(); | 109 endNestedDeclaration().resolveTypes(typeVariables); |
| 111 addBuilder(className, cls, charOffset); | 110 addBuilder(className, cls, charOffset); |
| 112 } | 111 } |
| 113 | 112 |
| 114 void addNamedMixinApplication( | 113 void addNamedMixinApplication( |
| 115 List<MetadataBuilder> metadata, String name, | 114 List<MetadataBuilder> metadata, String name, |
| 116 List<TypeVariableBuilder> typeVariables, int modifiers, | 115 List<TypeVariableBuilder> typeVariables, int modifiers, |
| 117 KernelTypeBuilder mixinApplication, List<KernelTypeBuilder> interfaces, | 116 KernelTypeBuilder mixinApplication, List<KernelTypeBuilder> interfaces, |
| 118 int charOffset) { | 117 int charOffset) { |
| 119 NamedMixinApplicationBuilder builder = | 118 NamedMixinApplicationBuilder builder = |
| 120 new KernelNamedMixinApplicationBuilder(metadata, name, typeVariables, | 119 new KernelNamedMixinApplicationBuilder(metadata, name, typeVariables, |
| 121 modifiers, mixinApplication, interfaces, declarationTypes, this, | 120 modifiers, mixinApplication, interfaces, this, charOffset); |
| 122 charOffset); | |
| 123 // Nested declaration began in `OutlineBuilder.beginNamedMixinApplication`. | 121 // Nested declaration began in `OutlineBuilder.beginNamedMixinApplication`. |
| 124 endNestedDeclaration(); | 122 endNestedDeclaration().resolveTypes(typeVariables); |
| 125 addBuilder(name, builder, charOffset); | 123 addBuilder(name, builder, charOffset); |
| 126 } | 124 } |
| 127 | 125 |
| 128 void addField(List<MetadataBuilder> metadata, | 126 void addField(List<MetadataBuilder> metadata, |
| 129 int modifiers, KernelTypeBuilder type, String name, int charOffset) { | 127 int modifiers, KernelTypeBuilder type, String name, int charOffset) { |
| 130 addBuilder(name, new KernelFieldBuilder( | 128 addBuilder(name, new KernelFieldBuilder( |
| 131 metadata, type, name, modifiers, this, charOffset), charOffset); | 129 metadata, type, name, modifiers, this, charOffset), charOffset); |
| 132 } | 130 } |
| 133 | 131 |
| 134 void addProcedure(List<MetadataBuilder> metadata, | 132 void addProcedure(List<MetadataBuilder> metadata, |
| 135 int modifiers, KernelTypeBuilder returnType, String name, | 133 int modifiers, KernelTypeBuilder returnType, String name, |
| 136 List<TypeVariableBuilder> typeVariables, | 134 List<TypeVariableBuilder> typeVariables, |
| 137 List<FormalParameterBuilder> formals, AsyncMarker asyncModifier, | 135 List<FormalParameterBuilder> formals, AsyncMarker asyncModifier, |
| 138 ProcedureKind kind, int charOffset, {bool isTopLevel}) { | 136 ProcedureKind kind, int charOffset, {bool isTopLevel}) { |
| 139 // Nested declaration began in `OutlineBuilder.beginMethod` or | 137 // Nested declaration began in `OutlineBuilder.beginMethod` or |
| 140 // `OutlineBuilder.beginTopLevelMethod`. | 138 // `OutlineBuilder.beginTopLevelMethod`. |
| 141 endNestedDeclaration().resolveTypes(typeVariables); | 139 endNestedDeclaration().resolveTypes(typeVariables); |
| 142 addBuilder(name, | 140 addBuilder(name, |
| 143 new KernelProcedureBuilder(metadata, modifiers, returnType, name, | 141 new KernelProcedureBuilder(metadata, modifiers, returnType, name, |
| 144 typeVariables, formals, asyncModifier, kind, this, charOffset), | 142 typeVariables, formals, asyncModifier, kind, this, charOffset), |
| 145 charOffset); | 143 charOffset); |
| 146 } | 144 } |
| 147 | 145 |
| 148 void addFactoryMethod(List<MetadataBuilder> metadata, | 146 void addFactoryMethod(List<MetadataBuilder> metadata, |
| 149 ConstructorReferenceBuilder constructorName, | 147 ConstructorReferenceBuilder constructorName, |
| 150 List<FormalParameterBuilder> formals, AsyncMarker asyncModifier, | 148 List<FormalParameterBuilder> formals, AsyncMarker asyncModifier, |
| 151 ConstructorReferenceBuilder redirectionTarget, int charOffset) { | 149 ConstructorReferenceBuilder redirectionTarget, int charOffset) { |
| 150 // Nested declaration began in `OutlineBuilder.beginFactoryMethod`. |
| 151 endNestedDeclaration().resolveTypes(null); |
| 152 String name = constructorName.name; | 152 String name = constructorName.name; |
| 153 assert(constructorName.suffix == null); | 153 assert(constructorName.suffix == null); |
| 154 addBuilder(name, | 154 addBuilder(name, |
| 155 new KernelProcedureBuilder(metadata, staticMask, null, name, null, | 155 new KernelProcedureBuilder(metadata, staticMask, null, name, null, |
| 156 formals, asyncModifier, ProcedureKind.Factory, this, charOffset, | 156 formals, asyncModifier, ProcedureKind.Factory, this, charOffset, |
| 157 redirectionTarget), charOffset); | 157 redirectionTarget), charOffset); |
| 158 } | 158 } |
| 159 | 159 |
| 160 void addEnum(List<MetadataBuilder> metadata, String name, | 160 void addEnum(List<MetadataBuilder> metadata, String name, |
| 161 List<String> constants, int charOffset) { | 161 List<String> constants, int charOffset) { |
| 162 addBuilder(name, | 162 addBuilder(name, |
| 163 new KernelEnumBuilder(metadata, name, constants, this, charOffset), | 163 new KernelEnumBuilder(metadata, name, constants, this, charOffset), |
| 164 charOffset); | 164 charOffset); |
| 165 } | 165 } |
| 166 | 166 |
| 167 void addFunctionTypeAlias(List<MetadataBuilder> metadata, | 167 void addFunctionTypeAlias(List<MetadataBuilder> metadata, |
| 168 KernelTypeBuilder returnType, String name, | 168 KernelTypeBuilder returnType, String name, |
| 169 List<TypeVariableBuilder> typeVariables, | 169 List<TypeVariableBuilder> typeVariables, |
| 170 List<FormalParameterBuilder> formals, int charOffset) { | 170 List<FormalParameterBuilder> formals, int charOffset) { |
| 171 FunctionTypeAliasBuilder typedef = new KernelFunctionTypeAliasBuilder( | 171 FunctionTypeAliasBuilder typedef = new KernelFunctionTypeAliasBuilder( |
| 172 metadata, returnType, name, typeVariables, formals, declarationTypes, | 172 metadata, returnType, name, typeVariables, formals, this, charOffset); |
| 173 this, charOffset); | |
| 174 // Nested declaration began in `OutlineBuilder.beginFunctionTypeAlias`. | 173 // Nested declaration began in `OutlineBuilder.beginFunctionTypeAlias`. |
| 175 endNestedDeclaration(); | 174 endNestedDeclaration().resolveTypes(typeVariables); |
| 176 addBuilder(name, typedef, charOffset); | 175 addBuilder(name, typedef, charOffset); |
| 177 } | 176 } |
| 178 | 177 |
| 179 KernelFormalParameterBuilder addFormalParameter( | 178 KernelFormalParameterBuilder addFormalParameter( |
| 180 List<MetadataBuilder> metadata, int modifiers, | 179 List<MetadataBuilder> metadata, int modifiers, |
| 181 KernelTypeBuilder type, String name, bool hasThis, int charOffset) { | 180 KernelTypeBuilder type, String name, bool hasThis, int charOffset) { |
| 182 return new KernelFormalParameterBuilder( | 181 return new KernelFormalParameterBuilder( |
| 183 metadata, modifiers, type, name, hasThis, this, charOffset); | 182 metadata, modifiers, type, name, hasThis, this, charOffset); |
| 184 } | 183 } |
| 185 | 184 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 } | 280 } |
| 282 expression.value = | 281 expression.value = |
| 283 defaultArgumentFrom(names[expression.name].initializer) | 282 defaultArgumentFrom(names[expression.name].initializer) |
| 284 ..parent = expression; | 283 ..parent = expression; |
| 285 } | 284 } |
| 286 } | 285 } |
| 287 } | 286 } |
| 288 return argumentsWithMissingDefaultValues.length; | 287 return argumentsWithMissingDefaultValues.length; |
| 289 } | 288 } |
| 290 } | 289 } |
| OLD | NEW |