| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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.analyzer_target; | 5 library fasta.analyzer_target; |
| 6 | 6 |
| 7 import 'package:front_end/physical_file_system.dart'; | 7 import 'package:front_end/physical_file_system.dart'; |
| 8 import 'package:kernel/ast.dart' show Library, Source; | 8 import 'package:kernel/ast.dart' show Library, Source; |
| 9 | 9 |
| 10 import 'package:front_end/src/fasta/kernel/kernel_target.dart' | 10 import 'package:front_end/src/fasta/kernel/kernel_target.dart' |
| 11 show KernelTarget; | 11 show KernelTarget; |
| 12 | 12 |
| 13 import 'package:front_end/src/fasta/uri_translator.dart' show UriTranslator; | 13 import 'package:front_end/src/fasta/uri_translator.dart' show UriTranslator; |
| 14 | 14 |
| 15 import 'package:front_end/src/fasta/dill/dill_target.dart' show DillTarget; | 15 import 'package:front_end/src/fasta/dill/dill_target.dart' show DillTarget; |
| 16 | 16 |
| 17 import 'analyzer_loader.dart' show AnalyzerLoader; | 17 import 'analyzer_loader.dart' show AnalyzerLoader; |
| 18 | 18 |
| 19 class AnalyzerTarget extends KernelTarget { | 19 class AnalyzerTarget extends KernelTarget { |
| 20 /// Indicates whether a kernel representation of the code should be generated. | 20 AnalyzerTarget( |
| 21 /// | 21 DillTarget dillTarget, UriTranslator uriTranslator, bool strongMode, |
| 22 /// When `false`, an analyzer AST is generated, and type inference is copied | |
| 23 /// over to it, but the result is not converted to a kernel representation. | |
| 24 /// | |
| 25 /// TODO(paulberry): remove this once "kompile" functionality is no longer | |
| 26 /// needed. | |
| 27 final bool generateKernel; | |
| 28 | |
| 29 /// Indicates whether a resolved AST should be generated. | |
| 30 /// | |
| 31 /// When `false`, an analyzer AST is generated, but none of the types or | |
| 32 /// elements pointed to by the AST are guaranteed to be correct. | |
| 33 /// | |
| 34 /// This is needed in order to support the old "kompile" use case, since the | |
| 35 /// tests of that functionality were based on the behavior prior to | |
| 36 /// integrating resolution and type inference with analyzer. | |
| 37 /// | |
| 38 /// TODO(paulberry): remove this once "kompile" functionality is no longer | |
| 39 /// needed. | |
| 40 final bool doResolution; | |
| 41 | |
| 42 AnalyzerTarget(DillTarget dillTarget, UriTranslator uriTranslator, | |
| 43 bool strongMode, this.generateKernel, this.doResolution, | |
| 44 [Map<String, Source> uriToSource]) | 22 [Map<String, Source> uriToSource]) |
| 45 : super(PhysicalFileSystem.instance, dillTarget, uriTranslator, | 23 : super(PhysicalFileSystem.instance, dillTarget, uriTranslator, |
| 46 uriToSource); | 24 uriToSource); |
| 47 | 25 |
| 48 @override | 26 @override |
| 49 AnalyzerLoader<Library> createLoader() => | 27 AnalyzerLoader<Library> createLoader() => new AnalyzerLoader<Library>(this); |
| 50 new AnalyzerLoader<Library>(this, generateKernel, doResolution); | |
| 51 } | 28 } |
| OLD | NEW |