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

Side by Side Diff: pkg/front_end/lib/compiler_options.dart

Issue 2614063007: Use URIs rather than paths in front end API. (Closed)
Patch Set: Minor fixes Created 3 years, 11 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
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 front_end.compiler_options; 5 library front_end.compiler_options;
6 6
7 import 'compilation_error.dart'; 7 import 'compilation_error.dart';
8 import 'file_system.dart'; 8 import 'file_system.dart';
9 import 'physical_file_system.dart'; 9 import 'physical_file_system.dart';
10 10
11 /// Default error handler used by [CompielerOptions.onError]. 11 /// Default error handler used by [CompielerOptions.onError].
12 void defaultErrorHandler(CompilationError error) => throw error; 12 void defaultErrorHandler(CompilationError error) => throw error;
13 13
14 /// Callback used to report errors encountered during compilation. 14 /// Callback used to report errors encountered during compilation.
15 typedef void ErrorHandler(CompilationError error); 15 typedef void ErrorHandler(CompilationError error);
16 16
17 /// Front-end options relevant to compiler back ends. 17 /// Front-end options relevant to compiler back ends.
18 /// 18 ///
19 /// Not intended to be implemented or extended by clients. 19 /// Not intended to be implemented or extended by clients.
20 class CompilerOptions { 20 class CompilerOptions {
21 /// The path to the Dart SDK. 21 /// The URI of the Dart SDK (typically a "file:" URI).
22 /// 22 ///
23 /// If `null`, the SDK will be searched for using 23 /// If `null`, the SDK will be searched for using
24 /// [Platform.resolvedExecutable] as a starting point. 24 /// [Platform.resolvedExecutable] as a starting point.
25 /// 25 ///
26 /// This option is mutually exclusive with [sdkSummary]. 26 /// This option is mutually exclusive with [sdkSummary].
27 String sdkPath; 27 Uri sdkPath;
danrubel 2017/01/08 17:07:38 Since this is no longer a path, perhaps rename sdk
Paul Berry 2017/01/09 17:24:42 Done.
28 28
29 /// Callback to which compilation errors should be delivered. 29 /// Callback to which compilation errors should be delivered.
30 /// 30 ///
31 /// By default, the first error will be reported by throwing an exception of 31 /// By default, the first error will be reported by throwing an exception of
32 /// type [CompilationError]. 32 /// type [CompilationError].
33 ErrorHandler onError = defaultErrorHandler; 33 ErrorHandler onError = defaultErrorHandler;
34 34
35 /// Path to the ".packages" file. 35 /// URI of the ".packages" file (typically a "file:" URI).
36 /// 36 ///
37 /// If `null`, the ".packages" file will be found via the standard 37 /// If `null`, the ".packages" file will be found via the standard
38 /// package_config search algorithm. 38 /// package_config search algorithm.
39 /// 39 ///
40 /// If the empty string, no packages file will be used. 40 /// If the URI's path component is empty (e.g. `new Uri()`), no packages file
41 String packagesFilePath; 41 /// will be used.
42 Uri packagesFilePath;
danrubel 2017/01/08 17:07:38 Same as above... packagesFileUri?
Paul Berry 2017/01/09 17:24:42 Done.
42 43
43 /// Paths to the input summary files (excluding the SDK summary). These files 44 /// URIs of input summary files (excluding the SDK summary; typically these
44 /// should all be linked summaries. They should also be closed, in the sense 45 /// will be "file:" URIs). These files should all be linked summaries. They
45 /// that any libraries they reference should also appear in [inputSummaries] 46 /// should also be closed, in the sense that any libraries they reference
46 /// or [sdkSummary]. 47 /// should also appear in [inputSummaries] or [sdkSummary].
47 List<String> inputSummaries = []; 48 List<Uri> inputSummaries = [];
48 49
49 /// Path to the SDK summary file. 50 /// URI of the SDK summary file (typically a "file:" URI).
50 /// 51 ///
51 /// This should be a linked summary. If `null`, the SDK summary will be 52 /// This should be a linked summary. If `null`, the SDK summary will be
52 /// searched for at a default location within [sdkPath]. 53 /// searched for at a default location within [sdkPath].
53 /// 54 ///
54 /// This option is mutually exclusive with [sdkPath]. TODO(paulberry): if the 55 /// This option is mutually exclusive with [sdkPath]. TODO(paulberry): if the
55 /// VM does not contain a pickled copy of the SDK, we might need to change 56 /// VM does not contain a pickled copy of the SDK, we might need to change
56 /// this. 57 /// this.
57 String sdkSummary; 58 Uri sdkSummary;
58 59
59 /// URI override map. 60 /// URI override map.
60 /// 61 ///
61 /// This is a map from Uri to file path. Any URI override listed in this map 62 /// This is a map from URIs that might appear in import/export/part statements
62 /// takes precedence over the URI resolution that would be implied by the 63 /// to URIs that should be used to locate the corresponding files in the
63 /// packages file (see [packagesFilePath]) and/or [bazelRoots]. 64 /// [fileSystem]. Any URI override listed in this map takes precedence over
65 /// the URI resolution that would be implied by the packages file (see
66 /// [packagesFilePath]) and/or [multiRoots].
64 /// 67 ///
65 /// If a URI is not listed in this map, then the normal URI resolution 68 /// If a URI is not listed in this map, then the normal URI resolution
66 /// algorithm will be used. 69 /// algorithm will be used.
67 /// 70 ///
68 /// TODO(paulberry): transition analyzer and dev_compiler to use the 71 /// TODO(paulberry): transition analyzer and dev_compiler to use the
69 /// "file:///bazel-root" mechanism, and then remove this. 72 /// "multi-root:" mechanism, and then remove this.
70 @deprecated 73 @deprecated
71 Map<Uri, String> uriOverride = {}; 74 Map<Uri, Uri> uriOverride = {};
72 75
73 /// Bazel roots. 76 /// Multi-roots.
74 /// 77 ///
75 /// Any Uri that resolves to "file:///bazel-root/$rest" will be searched for 78 /// Any Uri that resolves to "multi-root:///$rest" will be searched for
76 /// at "$root/$rest" ("$root\\$rest" in Windows), where "$root" is drawn from 79 /// at "$root/$rest", where "$root" is drawn from this list.
77 /// this list. If the file is not found at any of those locations, the URI
78 /// "file:///bazel-root/$rest" will be used directly.
79 /// 80 ///
80 /// Intended use: if the Bazel workspace is located at path "$workspace", this 81 /// Intended use: if the Bazel workspace is located at path "$workspace", this
81 /// could be set to `['$workspace', '$workspace/bazel-bin', 82 /// could be set to the file URIs corresponding to the paths for "$workspace",
82 /// '$workspace/bazel-genfiles']`, effectively overlaying source and generated 83 /// "$workspace/bazel-bin", and "$workspace/bazel-genfiles", effectively
83 /// files. 84 /// overlaying source and generated files.
84 List<String> bazelRoots = []; 85 List<Uri> multiRoots = [];
85 86
86 /// Sets the platform bit, which determines which patch files should be 87 /// Sets the platform bit, which determines which patch files should be
87 /// applied to the SDK. 88 /// applied to the SDK.
88 /// 89 ///
89 /// The value should be a power of two, and should match the `PLATFORM` bit 90 /// The value should be a power of two, and should match the `PLATFORM` bit
90 /// flags in sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart. If 91 /// flags in sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart. If
91 /// zero, no patch files will be applied. 92 /// zero, no patch files will be applied.
92 int platformBit; 93 int platformBit;
93 94
94 /// The declared variables for use by configurable imports and constant 95 /// The declared variables for use by configurable imports and constant
(...skipping 19 matching lines...) Expand all
114 /// that will be compiled are listed explicitly and all other dependencies 115 /// that will be compiled are listed explicitly and all other dependencies
115 /// are covered by summary files. 116 /// are covered by summary files.
116 /// 117 ///
117 /// When this option is true, these APIs will treat any dependency that is 118 /// When this option is true, these APIs will treat any dependency that is
118 /// not described in a summary as if it was explictly listed as an input. 119 /// not described in a summary as if it was explictly listed as an input.
119 bool chaseDependencies = false; 120 bool chaseDependencies = false;
120 121
121 /// Whether to intepret Dart sources in strong-mode. 122 /// Whether to intepret Dart sources in strong-mode.
122 bool strongMode = true; 123 bool strongMode = true;
123 } 124 }
OLDNEW
« no previous file with comments | « no previous file | pkg/front_end/lib/file_system.dart » ('j') | pkg/front_end/lib/src/dependency_grapher_impl.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698