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

Side by Side Diff: pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart

Issue 2828253003: Add top level type inference logic for integer literals. (Closed)
Patch Set: Clean up, bug fix, and remove unintentional expectations changes Created 3 years, 8 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.kernel_library_builder; 5 library fasta.kernel_library_builder;
6 6
7 import 'package:front_end/src/fasta/scanner/token.dart' show Token;
8
7 import 'package:kernel/ast.dart'; 9 import 'package:kernel/ast.dart';
8 10
9 import 'package:kernel/clone.dart' show CloneVisitor; 11 import 'package:kernel/clone.dart' show CloneVisitor;
10 12
11 import '../errors.dart' show internalError; 13 import '../errors.dart' show internalError;
12 14
13 import '../loader.dart' show Loader; 15 import '../loader.dart' show Loader;
14 16
15 import '../modifier.dart' show abstractMask, staticMask; 17 import '../modifier.dart' show abstractMask, staticMask;
16 18
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 int charOffset) { 155 int charOffset) {
154 NamedMixinApplicationBuilder builder = 156 NamedMixinApplicationBuilder builder =
155 new KernelNamedMixinApplicationBuilder(metadata, name, typeVariables, 157 new KernelNamedMixinApplicationBuilder(metadata, name, typeVariables,
156 modifiers, mixinApplication, interfaces, this, charOffset); 158 modifiers, mixinApplication, interfaces, this, charOffset);
157 // Nested declaration began in `OutlineBuilder.beginNamedMixinApplication`. 159 // Nested declaration began in `OutlineBuilder.beginNamedMixinApplication`.
158 endNestedDeclaration().resolveTypes(typeVariables, this); 160 endNestedDeclaration().resolveTypes(typeVariables, this);
159 addBuilder(name, builder, charOffset); 161 addBuilder(name, builder, charOffset);
160 } 162 }
161 163
162 void addField(List<MetadataBuilder> metadata, int modifiers, 164 void addField(List<MetadataBuilder> metadata, int modifiers,
163 KernelTypeBuilder type, String name, int charOffset) { 165 KernelTypeBuilder type, String name, int charOffset, Token initializer) {
164 addBuilder( 166 addBuilder(
165 name, 167 name,
166 new KernelFieldBuilder( 168 new KernelFieldBuilder(loader.astFactory, loader.topLevelTypeInferrer,
167 metadata, type, name, modifiers, this, charOffset), 169 metadata, type, name, modifiers, this, charOffset, initializer),
168 charOffset); 170 charOffset);
169 } 171 }
170 172
171 String computeAndValidateConstructorName(String name, int charOffset) { 173 String computeAndValidateConstructorName(String name, int charOffset) {
172 String className = currentDeclaration.name; 174 String className = currentDeclaration.name;
173 bool startsWithClassName = name.startsWith(className); 175 bool startsWithClassName = name.startsWith(className);
174 if (startsWithClassName && name.length == className.length) { 176 if (startsWithClassName && name.length == className.length) {
175 // Unnamed constructor or factory. 177 // Unnamed constructor or factory.
176 return ""; 178 return "";
177 } 179 }
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 addBuilder(name, procedure, charOffset); 290 addBuilder(name, procedure, charOffset);
289 if (nativeMethodName != null) { 291 if (nativeMethodName != null) {
290 addNativeMethod(procedure); 292 addNativeMethod(procedure);
291 } 293 }
292 } 294 }
293 295
294 void addEnum(List<MetadataBuilder> metadata, String name, 296 void addEnum(List<MetadataBuilder> metadata, String name,
295 List<Object> constantNamesAndOffsets, int charOffset, int charEndOffset) { 297 List<Object> constantNamesAndOffsets, int charOffset, int charEndOffset) {
296 addBuilder( 298 addBuilder(
297 name, 299 name,
298 new KernelEnumBuilder(metadata, name, constantNamesAndOffsets, this, 300 new KernelEnumBuilder(loader.astFactory, metadata, name,
299 charOffset, charEndOffset), 301 constantNamesAndOffsets, this, charOffset, charEndOffset),
300 charOffset); 302 charOffset);
301 } 303 }
302 304
303 void addFunctionTypeAlias( 305 void addFunctionTypeAlias(
304 List<MetadataBuilder> metadata, 306 List<MetadataBuilder> metadata,
305 KernelTypeBuilder returnType, 307 KernelTypeBuilder returnType,
306 String name, 308 String name,
307 List<TypeVariableBuilder> typeVariables, 309 List<TypeVariableBuilder> typeVariables,
308 List<FormalParameterBuilder> formals, 310 List<FormalParameterBuilder> formals,
309 int charOffset) { 311 int charOffset) {
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 } 541 }
540 542
541 @override 543 @override
542 void includePart(covariant KernelLibraryBuilder part) { 544 void includePart(covariant KernelLibraryBuilder part) {
543 super.includePart(part); 545 super.includePart(part);
544 nativeMethods.addAll(part.nativeMethods); 546 nativeMethods.addAll(part.nativeMethods);
545 boundlessTypeVariables.addAll(part.boundlessTypeVariables); 547 boundlessTypeVariables.addAll(part.boundlessTypeVariables);
546 assert(mixinApplicationClasses.isEmpty); 548 assert(mixinApplicationClasses.isEmpty);
547 } 549 }
548 } 550 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698