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

Side by Side Diff: pkg/front_end/lib/src/fasta/kernel/kernel_target.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_target; 5 library fasta.kernel_target;
6 6
7 import 'dart:async' show Future; 7 import 'dart:async' show Future;
8 8
9 import 'dart:io' show File, IOSink; 9 import 'dart:io' show File, IOSink;
10 10
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 } 223 }
224 program = erroneousProgram(isFullProgram); 224 program = erroneousProgram(isFullProgram);
225 return uri == null 225 return uri == null
226 ? new Future<Program>.value(program) 226 ? new Future<Program>.value(program)
227 : writeLinkedProgram(uri, program, isFullProgram: isFullProgram); 227 : writeLinkedProgram(uri, program, isFullProgram: isFullProgram);
228 } 228 }
229 229
230 Future<Program> writeOutline(Uri uri) async { 230 Future<Program> writeOutline(Uri uri) async {
231 if (loader.first == null) return null; 231 if (loader.first == null) return null;
232 try { 232 try {
233 loader.createTopLevelTypeInferrer();
233 await loader.buildOutlines(); 234 await loader.buildOutlines();
234 loader.coreLibrary 235 loader.coreLibrary
235 .becomeCoreLibrary(const DynamicType(), const VoidType()); 236 .becomeCoreLibrary(const DynamicType(), const VoidType());
236 dynamicType.bind(loader.coreLibrary["dynamic"]); 237 dynamicType.bind(loader.coreLibrary["dynamic"]);
237 loader.resolveParts(); 238 loader.resolveParts();
238 loader.computeLibraryScopes(); 239 loader.computeLibraryScopes();
239 loader.resolveTypes(); 240 loader.resolveTypes();
240 loader.buildProgram(); 241 loader.buildProgram();
241 loader.checkSemantics(); 242 loader.checkSemantics();
242 List<SourceClassBuilder> sourceClasses = collectAllSourceClasses(); 243 List<SourceClassBuilder> sourceClasses = collectAllSourceClasses();
243 installDefaultSupertypes(); 244 installDefaultSupertypes();
244 installDefaultConstructors(sourceClasses); 245 installDefaultConstructors(sourceClasses);
245 loader.resolveConstructors(); 246 loader.resolveConstructors();
246 loader.finishTypeVariables(objectClassBuilder); 247 loader.finishTypeVariables(objectClassBuilder);
247 program = link(new List<Library>.from(loader.libraries)); 248 program = link(new List<Library>.from(loader.libraries));
248 loader.computeHierarchy(program); 249 loader.computeHierarchy(program);
249 loader.checkOverrides(sourceClasses); 250 loader.checkOverrides(sourceClasses);
251 loader.prepareInitializerInference();
252 loader.performInitializerInference();
250 if (uri == null) return program; 253 if (uri == null) return program;
251 return await writeLinkedProgram(uri, program, isFullProgram: false); 254 return await writeLinkedProgram(uri, program, isFullProgram: false);
252 } on InputError catch (e) { 255 } on InputError catch (e) {
253 return handleInputError(uri, e, isFullProgram: false); 256 return handleInputError(uri, e, isFullProgram: false);
254 } catch (e, s) { 257 } catch (e, s) {
255 return reportCrash(e, s, loader?.currentUriForCrashReporting); 258 return reportCrash(e, s, loader?.currentUriForCrashReporting);
256 } 259 }
257 } 260 }
258 261
259 Future<Program> writeProgram(Uri uri, 262 Future<Program> writeProgram(Uri uri,
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 } 717 }
715 for (Constructor constructor in superclass.constructors) { 718 for (Constructor constructor in superclass.constructors) {
716 if (constructor.name.name.isEmpty) { 719 if (constructor.name.name.isEmpty) {
717 return constructor.function.requiredParameterCount == 0 720 return constructor.function.requiredParameterCount == 0
718 ? constructor 721 ? constructor
719 : null; 722 : null;
720 } 723 }
721 } 724 }
722 return null; 725 return null;
723 } 726 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698