Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(263)

Side by Side Diff: pkg/front_end/lib/src/fasta/source/source_class_builder.dart

Issue 2695453002: Generalize DeclarationBuilder.resolveTypes. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 52
53 final Map<String, Builder> constructors = <String, Builder>{}; 53 final Map<String, Builder> constructors = <String, Builder>{};
54 54
55 final Map<String, Builder> membersInScope; 55 final Map<String, Builder> membersInScope;
56 56
57 final List<ConstructorReferenceBuilder> constructorReferences; 57 final List<ConstructorReferenceBuilder> constructorReferences;
58 58
59 SourceClassBuilder(List<MetadataBuilder> metadata, int modifiers, 59 SourceClassBuilder(List<MetadataBuilder> metadata, int modifiers,
60 String name, List<TypeVariableBuilder> typeVariables, 60 String name, List<TypeVariableBuilder> typeVariables,
61 KernelTypeBuilder supertype, List<KernelTypeBuilder>interfaces, 61 KernelTypeBuilder supertype, List<KernelTypeBuilder>interfaces,
62 Map<String, Builder> members, List<KernelTypeBuilder> types, 62 Map<String, Builder> members, LibraryBuilder parent,
63 LibraryBuilder parent, this.constructorReferences, int charOffset, 63 this.constructorReferences, int charOffset, [Class cls])
64 [Class cls])
65 : cls = initializeClass(cls, name, parent, charOffset), 64 : cls = initializeClass(cls, name, parent, charOffset),
66 membersInScope = computeMembersInScope(members, name), 65 membersInScope = computeMembersInScope(members, name),
67 super(metadata, modifiers, name, typeVariables, supertype, interfaces, 66 super(metadata, modifiers, name, typeVariables, supertype, interfaces,
68 members, types, parent, charOffset); 67 members, parent, charOffset);
69 68
70 int resolveTypes(LibraryBuilder library) { 69 int resolveTypes(LibraryBuilder library) {
71 int count = 0; 70 int count = 0;
72 if (typeVariables != null) { 71 if (typeVariables != null) {
73 for (KernelTypeVariableBuilder t in typeVariables) { 72 for (KernelTypeVariableBuilder t in typeVariables) {
74 cls.typeParameters.add(t.parameter); 73 cls.typeParameters.add(t.parameter);
75 } 74 }
76 setParents(cls.typeParameters, cls); 75 setParents(cls.typeParameters, cls);
77 count += cls.typeParameters.length; 76 count += cls.typeParameters.length;
78 } 77 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 if (isConstructorName(builder.name, className)) return; 172 if (isConstructorName(builder.name, className)) return;
174 } 173 }
175 if (name.indexOf(".") != -1) { 174 if (name.indexOf(".") != -1) {
176 inputError(null, null, "Only constructors and factories can have names " 175 inputError(null, null, "Only constructors and factories can have names "
177 "containing a period ('.'): $name"); 176 "containing a period ('.'): $name");
178 } 177 }
179 membersInScope[name] = builder; 178 membersInScope[name] = builder;
180 }); 179 });
181 return membersInScope; 180 return membersInScope;
182 } 181 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698