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

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

Issue 2755983002: Implement override checks for methods. (Closed)
Patch Set: Add TODO and merged with master. Created 3 years, 9 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 | « pkg/front_end/lib/src/fasta/messages.dart ('k') | 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: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
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 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/messages.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698