| 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; |    7 import 'package:front_end/src/scanner/token.dart' show Token; | 
|    8  |    8  | 
|    9 import 'package:kernel/ast.dart'; |    9 import 'package:kernel/ast.dart'; | 
|   10  |   10  | 
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  100  |  100  | 
|  101   void addClass( |  101   void addClass( | 
|  102       List<MetadataBuilder> metadata, |  102       List<MetadataBuilder> metadata, | 
|  103       int modifiers, |  103       int modifiers, | 
|  104       String className, |  104       String className, | 
|  105       List<TypeVariableBuilder> typeVariables, |  105       List<TypeVariableBuilder> typeVariables, | 
|  106       KernelTypeBuilder supertype, |  106       KernelTypeBuilder supertype, | 
|  107       List<KernelTypeBuilder> interfaces, |  107       List<KernelTypeBuilder> interfaces, | 
|  108       int charOffset) { |  108       int charOffset) { | 
|  109     // Nested declaration began in `OutlineBuilder.beginClassDeclaration`. |  109     // Nested declaration began in `OutlineBuilder.beginClassDeclaration`. | 
|  110     var declaration = endNestedDeclaration()..resolveTypes(typeVariables, this); |  110     var declaration = endNestedDeclaration(className) | 
 |  111       ..resolveTypes(typeVariables, this); | 
|  111     assert(declaration.parent == libraryDeclaration); |  112     assert(declaration.parent == libraryDeclaration); | 
|  112     Map<String, MemberBuilder> members = declaration.members; |  113     Map<String, MemberBuilder> members = declaration.members; | 
|  113     Map<String, MemberBuilder> constructors = declaration.constructors; |  114     Map<String, MemberBuilder> constructors = declaration.constructors; | 
|  114     Map<String, MemberBuilder> setters = declaration.setters; |  115     Map<String, MemberBuilder> setters = declaration.setters; | 
|  115  |  116  | 
|  116     Scope classScope = new Scope( |  117     Scope classScope = new Scope( | 
|  117         members, setters, scope.withTypeVariables(typeVariables), |  118         members, setters, scope.withTypeVariables(typeVariables), | 
|  118         isModifiable: false); |  119         isModifiable: false); | 
|  119  |  120  | 
|  120     // When looking up a constructor, we don't consider type variables or the |  121     // When looking up a constructor, we don't consider type variables or the | 
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  445  |  446  | 
|  446   void addNamedMixinApplication( |  447   void addNamedMixinApplication( | 
|  447       List<MetadataBuilder> metadata, |  448       List<MetadataBuilder> metadata, | 
|  448       String name, |  449       String name, | 
|  449       List<TypeVariableBuilder> typeVariables, |  450       List<TypeVariableBuilder> typeVariables, | 
|  450       int modifiers, |  451       int modifiers, | 
|  451       KernelTypeBuilder mixinApplication, |  452       KernelTypeBuilder mixinApplication, | 
|  452       List<KernelTypeBuilder> interfaces, |  453       List<KernelTypeBuilder> interfaces, | 
|  453       int charOffset) { |  454       int charOffset) { | 
|  454     // Nested declaration began in `OutlineBuilder.beginNamedMixinApplication`. |  455     // Nested declaration began in `OutlineBuilder.beginNamedMixinApplication`. | 
|  455     endNestedDeclaration().resolveTypes(typeVariables, this); |  456     endNestedDeclaration(name).resolveTypes(typeVariables, this); | 
|  456     KernelNamedTypeBuilder supertype = applyMixins(mixinApplication, |  457     KernelNamedTypeBuilder supertype = applyMixins(mixinApplication, | 
|  457         metadata: metadata, |  458         metadata: metadata, | 
|  458         name: name, |  459         name: name, | 
|  459         typeVariables: typeVariables, |  460         typeVariables: typeVariables, | 
|  460         modifiers: modifiers, |  461         modifiers: modifiers, | 
|  461         interfaces: interfaces, |  462         interfaces: interfaces, | 
|  462         charOffset: charOffset); |  463         charOffset: charOffset); | 
|  463     checkTypeVariables(typeVariables, supertype.builder); |  464     checkTypeVariables(typeVariables, supertype.builder); | 
|  464   } |  465   } | 
|  465  |  466  | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  511       List<TypeVariableBuilder> typeVariables, |  512       List<TypeVariableBuilder> typeVariables, | 
|  512       List<FormalParameterBuilder> formals, |  513       List<FormalParameterBuilder> formals, | 
|  513       ProcedureKind kind, |  514       ProcedureKind kind, | 
|  514       int charOffset, |  515       int charOffset, | 
|  515       int charOpenParenOffset, |  516       int charOpenParenOffset, | 
|  516       int charEndOffset, |  517       int charEndOffset, | 
|  517       String nativeMethodName, |  518       String nativeMethodName, | 
|  518       {bool isTopLevel}) { |  519       {bool isTopLevel}) { | 
|  519     // Nested declaration began in `OutlineBuilder.beginMethod` or |  520     // Nested declaration began in `OutlineBuilder.beginMethod` or | 
|  520     // `OutlineBuilder.beginTopLevelMethod`. |  521     // `OutlineBuilder.beginTopLevelMethod`. | 
|  521     endNestedDeclaration().resolveTypes(typeVariables, this); |  522     endNestedDeclaration(name).resolveTypes(typeVariables, this); | 
|  522     ProcedureBuilder procedure; |  523     ProcedureBuilder procedure; | 
|  523     String constructorName = |  524     String constructorName = | 
|  524         isTopLevel ? null : computeAndValidateConstructorName(name, charOffset); |  525         isTopLevel ? null : computeAndValidateConstructorName(name, charOffset); | 
|  525     if (constructorName != null) { |  526     if (constructorName != null) { | 
|  526       name = constructorName; |  527       name = constructorName; | 
|  527       procedure = new KernelConstructorBuilder( |  528       procedure = new KernelConstructorBuilder( | 
|  528           metadata, |  529           metadata, | 
|  529           modifiers & ~abstractMask, |  530           modifiers & ~abstractMask, | 
|  530           returnType, |  531           returnType, | 
|  531           name, |  532           name, | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  565       List<FormalParameterBuilder> formals, |  566       List<FormalParameterBuilder> formals, | 
|  566       ConstructorReferenceBuilder redirectionTarget, |  567       ConstructorReferenceBuilder redirectionTarget, | 
|  567       int charOffset, |  568       int charOffset, | 
|  568       int charOpenParenOffset, |  569       int charOpenParenOffset, | 
|  569       int charEndOffset, |  570       int charEndOffset, | 
|  570       String nativeMethodName) { |  571       String nativeMethodName) { | 
|  571     KernelTypeBuilder returnType = addNamedType( |  572     KernelTypeBuilder returnType = addNamedType( | 
|  572         currentDeclaration.parent.name, <KernelTypeBuilder>[], charOffset); |  573         currentDeclaration.parent.name, <KernelTypeBuilder>[], charOffset); | 
|  573     // Nested declaration began in `OutlineBuilder.beginFactoryMethod`. |  574     // Nested declaration began in `OutlineBuilder.beginFactoryMethod`. | 
|  574     DeclarationBuilder<KernelTypeBuilder> factoryDeclaration = |  575     DeclarationBuilder<KernelTypeBuilder> factoryDeclaration = | 
|  575         endNestedDeclaration(); |  576         endNestedDeclaration("#factory_method"); | 
|  576     String name = constructorNameReference.name; |  577     String name = constructorNameReference.name; | 
|  577     String constructorName = |  578     String constructorName = | 
|  578         computeAndValidateConstructorName(name, charOffset); |  579         computeAndValidateConstructorName(name, charOffset); | 
|  579     if (constructorName != null) { |  580     if (constructorName != null) { | 
|  580       name = constructorName; |  581       name = constructorName; | 
|  581     } |  582     } | 
|  582     assert(constructorNameReference.suffix == null); |  583     assert(constructorNameReference.suffix == null); | 
|  583     KernelProcedureBuilder procedure = new KernelProcedureBuilder( |  584     KernelProcedureBuilder procedure = new KernelProcedureBuilder( | 
|  584         metadata, |  585         metadata, | 
|  585         staticMask | modifiers, |  586         staticMask | modifiers, | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
|  614       List<MetadataBuilder> metadata, |  615       List<MetadataBuilder> metadata, | 
|  615       KernelTypeBuilder returnType, |  616       KernelTypeBuilder returnType, | 
|  616       String name, |  617       String name, | 
|  617       List<TypeVariableBuilder> typeVariables, |  618       List<TypeVariableBuilder> typeVariables, | 
|  618       List<FormalParameterBuilder> formals, |  619       List<FormalParameterBuilder> formals, | 
|  619       int charOffset) { |  620       int charOffset) { | 
|  620     FunctionTypeAliasBuilder typedef = new KernelFunctionTypeAliasBuilder( |  621     FunctionTypeAliasBuilder typedef = new KernelFunctionTypeAliasBuilder( | 
|  621         metadata, returnType, name, typeVariables, formals, this, charOffset); |  622         metadata, returnType, name, typeVariables, formals, this, charOffset); | 
|  622     checkTypeVariables(typeVariables, typedef); |  623     checkTypeVariables(typeVariables, typedef); | 
|  623     // Nested declaration began in `OutlineBuilder.beginFunctionTypeAlias`. |  624     // Nested declaration began in `OutlineBuilder.beginFunctionTypeAlias`. | 
|  624     endNestedDeclaration().resolveTypes(typeVariables, this); |  625     endNestedDeclaration("#typedef").resolveTypes(typeVariables, this); | 
|  625     addBuilder(name, typedef, charOffset); |  626     addBuilder(name, typedef, charOffset); | 
|  626   } |  627   } | 
|  627  |  628  | 
|  628   KernelFunctionTypeBuilder addFunctionType( |  629   KernelFunctionTypeBuilder addFunctionType( | 
|  629       KernelTypeBuilder returnType, |  630       KernelTypeBuilder returnType, | 
|  630       List<TypeVariableBuilder> typeVariables, |  631       List<TypeVariableBuilder> typeVariables, | 
|  631       List<FormalParameterBuilder> formals, |  632       List<FormalParameterBuilder> formals, | 
|  632       int charOffset) { |  633       int charOffset) { | 
|  633     var builder = new KernelFunctionTypeBuilder( |  634     var builder = new KernelFunctionTypeBuilder( | 
|  634         charOffset, fileUri, returnType, typeVariables, formals); |  635         charOffset, fileUri, returnType, typeVariables, formals); | 
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  855           mixinApplicationClasses.putIfAbsent(name, () => builder); |  856           mixinApplicationClasses.putIfAbsent(name, () => builder); | 
|  856       if (existing != builder) { |  857       if (existing != builder) { | 
|  857         part.scope.local.remove(name); |  858         part.scope.local.remove(name); | 
|  858       } |  859       } | 
|  859     }); |  860     }); | 
|  860     super.includePart(part); |  861     super.includePart(part); | 
|  861     nativeMethods.addAll(part.nativeMethods); |  862     nativeMethods.addAll(part.nativeMethods); | 
|  862     boundlessTypeVariables.addAll(part.boundlessTypeVariables); |  863     boundlessTypeVariables.addAll(part.boundlessTypeVariables); | 
|  863   } |  864   } | 
|  864 } |  865 } | 
| OLD | NEW |