| 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.source_loader; | 5 library fasta.source_loader; |
| 6 | 6 |
| 7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
| 8 | 8 |
| 9 import 'dart:io' show FileSystemException; | 9 import 'dart:io' show FileSystemException; |
| 10 | 10 |
| 11 import 'dart:typed_data' show Uint8List; | 11 import 'dart:typed_data' show Uint8List; |
| 12 | 12 |
| 13 import '../scanner/io.dart' show readBytesFromFile; | |
| 14 | |
| 15 import '../scanner.dart' show ErrorToken, ScannerResult, Token, scan; | |
| 16 | |
| 17 import '../parser/class_member_parser.dart' show ClassMemberParser; | |
| 18 | |
| 19 import 'package:kernel/ast.dart' show Program; | 13 import 'package:kernel/ast.dart' show Program; |
| 20 | 14 |
| 21 import 'package:kernel/class_hierarchy.dart' show ClassHierarchy; | 15 import 'package:kernel/class_hierarchy.dart' show ClassHierarchy; |
| 22 | 16 |
| 23 import 'package:kernel/core_types.dart' show CoreTypes; | 17 import 'package:kernel/core_types.dart' show CoreTypes; |
| 24 | 18 |
| 19 import '../builder/builder.dart' show Builder, ClassBuilder, LibraryBuilder; |
| 20 |
| 21 import '../compiler_context.dart' show CompilerContext; |
| 22 |
| 25 import '../errors.dart' show inputError; | 23 import '../errors.dart' show inputError; |
| 26 | 24 |
| 25 import '../export.dart' show Export; |
| 26 |
| 27 import '../loader.dart' show Loader; |
| 28 |
| 27 import '../messages.dart' show warning; | 29 import '../messages.dart' show warning; |
| 28 | 30 |
| 29 import '../export.dart' show Export; | 31 import '../parser/class_member_parser.dart' show ClassMemberParser; |
| 30 | 32 |
| 31 import '../builder/builder.dart' show Builder, ClassBuilder, LibraryBuilder; | 33 import '../scanner.dart' show ErrorToken, ScannerResult, Token, scan; |
| 32 | 34 |
| 33 import 'outline_builder.dart' show OutlineBuilder; | 35 import '../scanner/io.dart' show readBytesFromFile; |
| 34 | |
| 35 import '../loader.dart' show Loader; | |
| 36 | 36 |
| 37 import '../target_implementation.dart' show TargetImplementation; | 37 import '../target_implementation.dart' show TargetImplementation; |
| 38 | 38 |
| 39 import 'diet_listener.dart' show DietListener; | 39 import 'diet_listener.dart' show DietListener; |
| 40 | 40 |
| 41 import 'diet_parser.dart' show DietParser; | 41 import 'diet_parser.dart' show DietParser; |
| 42 | 42 |
| 43 import 'outline_builder.dart' show OutlineBuilder; |
| 44 |
| 45 import 'source_class_builder.dart' show SourceClassBuilder; |
| 46 |
| 43 import 'source_library_builder.dart' show SourceLibraryBuilder; | 47 import 'source_library_builder.dart' show SourceLibraryBuilder; |
| 44 | 48 |
| 45 import '../compiler_context.dart' show CompilerContext; | |
| 46 | |
| 47 class SourceLoader<L> extends Loader<L> { | 49 class SourceLoader<L> extends Loader<L> { |
| 48 final Map<Uri, List<int>> sourceBytes = <Uri, List<int>>{}; | 50 final Map<Uri, List<int>> sourceBytes = <Uri, List<int>>{}; |
| 49 final includeSource = CompilerContext.current.options.includeSource; | 51 final includeSource = CompilerContext.current.options.includeSource; |
| 50 | 52 |
| 51 // Used when building directly to kernel. | 53 // Used when building directly to kernel. |
| 52 ClassHierarchy hierarchy; | 54 ClassHierarchy hierarchy; |
| 53 CoreTypes coreTypes; | 55 CoreTypes coreTypes; |
| 54 | 56 |
| 55 SourceLoader(TargetImplementation target) : super(target); | 57 SourceLoader(TargetImplementation target) : super(target); |
| 56 | 58 |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 ticker.logMs("Built program"); | 355 ticker.logMs("Built program"); |
| 354 } | 356 } |
| 355 | 357 |
| 356 void computeHierarchy(Program program) { | 358 void computeHierarchy(Program program) { |
| 357 hierarchy = new ClassHierarchy(program); | 359 hierarchy = new ClassHierarchy(program); |
| 358 ticker.logMs("Computed class hierarchy"); | 360 ticker.logMs("Computed class hierarchy"); |
| 359 coreTypes = new CoreTypes(program); | 361 coreTypes = new CoreTypes(program); |
| 360 ticker.logMs("Computed core types"); | 362 ticker.logMs("Computed core types"); |
| 361 } | 363 } |
| 362 | 364 |
| 365 void checkOverrides(List<SourceClassBuilder> sourceClasses) { |
| 366 assert(hierarchy != null); |
| 367 for (SourceClassBuilder builder in sourceClasses) { |
| 368 builder.checkOverrides(hierarchy); |
| 369 } |
| 370 ticker.logMs("Checked overrides"); |
| 371 } |
| 372 |
| 363 List<Uri> getDependencies() => sourceBytes.keys.toList(); | 373 List<Uri> getDependencies() => sourceBytes.keys.toList(); |
| 364 } | 374 } |
| OLD | NEW |