| 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_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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |