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

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

Issue 2927523002: Replace ClosedWorldClassHierarchy with IncrementalClassHierarchy in SourceLoader. (Closed)
Patch Set: Created 3 years, 6 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_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:typed_data' show Uint8List; 9 import 'dart:typed_data' show Uint8List;
10 10
11 import 'package:front_end/file_system.dart'; 11 import 'package:front_end/file_system.dart';
12 import 'package:front_end/src/base/instrumentation.dart' show Instrumentation; 12 import 'package:front_end/src/base/instrumentation.dart' show Instrumentation;
13 13
14 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' 14 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart'
15 show KernelTypeInferenceEngine; 15 show KernelTypeInferenceEngine;
16 16
17 import 'package:front_end/src/fasta/kernel/kernel_target.dart' 17 import 'package:front_end/src/fasta/kernel/kernel_target.dart'
18 show KernelTarget; 18 show KernelTarget;
19 19
20 import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart' 20 import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart'
21 show TypeInferenceEngine; 21 show TypeInferenceEngine;
22 22
23 import 'package:kernel/ast.dart' show Program; 23 import 'package:kernel/ast.dart' show Program;
24 24
25 import 'package:kernel/class_hierarchy.dart' 25 import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
26 show ClassHierarchy, ClosedWorldClassHierarchy;
27 26
28 import 'package:kernel/core_types.dart' show CoreTypes; 27 import 'package:kernel/core_types.dart' show CoreTypes;
29 28
29 import 'package:kernel/src/incremental_class_hierarchy.dart'
30 show IncrementalClassHierarchy;
31
30 import '../builder/builder.dart' 32 import '../builder/builder.dart'
31 show 33 show
32 Builder, 34 Builder,
33 ClassBuilder, 35 ClassBuilder,
34 EnumBuilder, 36 EnumBuilder,
35 LibraryBuilder, 37 LibraryBuilder,
36 NamedTypeBuilder, 38 NamedTypeBuilder,
37 TypeBuilder; 39 TypeBuilder;
38 40
39 import '../compiler_context.dart' show CompilerContext; 41 import '../compiler_context.dart' show CompilerContext;
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 void buildProgram() { 436 void buildProgram() {
435 builders.forEach((Uri uri, LibraryBuilder library) { 437 builders.forEach((Uri uri, LibraryBuilder library) {
436 if (library is SourceLibraryBuilder) { 438 if (library is SourceLibraryBuilder) {
437 libraries.add(library.build(coreLibrary)); 439 libraries.add(library.build(coreLibrary));
438 } 440 }
439 }); 441 });
440 ticker.logMs("Built program"); 442 ticker.logMs("Built program");
441 } 443 }
442 444
443 void computeHierarchy(Program program) { 445 void computeHierarchy(Program program) {
444 hierarchy = new ClosedWorldClassHierarchy(program); 446 hierarchy = new IncrementalClassHierarchy();
445 ticker.logMs("Computed class hierarchy"); 447 ticker.logMs("Computed class hierarchy");
446 coreTypes = new CoreTypes(program); 448 coreTypes = new CoreTypes(program);
447 ticker.logMs("Computed core types"); 449 ticker.logMs("Computed core types");
448 } 450 }
449 451
450 void checkOverrides(List<SourceClassBuilder> sourceClasses) { 452 void checkOverrides(List<SourceClassBuilder> sourceClasses) {
451 assert(hierarchy != null); 453 assert(hierarchy != null);
452 for (SourceClassBuilder builder in sourceClasses) { 454 for (SourceClassBuilder builder in sourceClasses) {
453 builder.checkOverrides(hierarchy); 455 builder.checkOverrides(hierarchy);
454 } 456 }
(...skipping 22 matching lines...) Expand all
477 /// Performs the second phase of top level initializer inference, which is to 479 /// Performs the second phase of top level initializer inference, which is to
478 /// visit fields and top level variables in topologically-sorted order and 480 /// visit fields and top level variables in topologically-sorted order and
479 /// assign their types. 481 /// assign their types.
480 void performInitializerInference() { 482 void performInitializerInference() {
481 typeInferenceEngine.finishTopLevel(); 483 typeInferenceEngine.finishTopLevel();
482 ticker.logMs("Performed initializer inference"); 484 ticker.logMs("Performed initializer inference");
483 } 485 }
484 486
485 List<Uri> getDependencies() => sourceBytes.keys.toList(); 487 List<Uri> getDependencies() => sourceBytes.keys.toList();
486 } 488 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698