Skip to content

Commit fce43eb

Browse files
mralephcommit-bot@chromium.org
authored andcommitted
[ddk] Pass environmentDefines to CFE through CompilerOptions
CFE needs to have access to them to be able to perform constant evaluation. Bug: #37357 Change-Id: I15705e6fda330a05765ec2e8354051276cb88b07 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108278 Auto-Submit: Vyacheslav Egorov <[email protected]> Reviewed-by: Vijay Menon <[email protected]> Reviewed-by: Jens Johansen <[email protected]> Commit-Queue: Vyacheslav Egorov <[email protected]>
1 parent 5450d08 commit fce43eb

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

pkg/dev_compiler/lib/src/kernel/command.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,8 @@ Future<CompilerResult> _compile(List<String> args,
246246
DevCompilerTarget(
247247
TargetFlags(trackWidgetCreation: trackWidgetCreation)),
248248
fileSystem: fileSystem,
249-
experiments: experiments);
249+
experiments: experiments,
250+
environmentDefines: declaredVariables);
250251
} else {
251252
doneInputSummaries = List<Component>(summaryModules.length);
252253
compilerState = await fe.initializeIncrementalCompiler(
@@ -262,7 +263,8 @@ Future<CompilerResult> _compile(List<String> args,
262263
DevCompilerTarget(
263264
TargetFlags(trackWidgetCreation: trackWidgetCreation)),
264265
fileSystem: fileSystem,
265-
experiments: experiments);
266+
experiments: experiments,
267+
environmentDefines: declaredVariables);
266268
incrementalCompiler = compilerState.incrementalCompiler;
267269
cachedSdkInput =
268270
compilerState.workerInputCache[sourcePathToUri(sdkSummaryPath)];

pkg/front_end/lib/src/api_unstable/ddc.dart

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ Future<InitializedCompilerState> initializeCompiler(
8181
List<Uri> inputSummaries,
8282
Target target,
8383
{FileSystem fileSystem,
84-
Map<ExperimentalFlag, bool> experiments}) async {
84+
Map<ExperimentalFlag, bool> experiments,
85+
Map<String, String> environmentDefines}) async {
8586
inputSummaries.sort((a, b) => a.toString().compareTo(b.toString()));
8687

8788
if (oldState != null &&
@@ -90,7 +91,8 @@ Future<InitializedCompilerState> initializeCompiler(
9091
oldState.options.packagesFileUri == packagesFile &&
9192
oldState.options.librariesSpecificationUri == librariesSpecificationUri &&
9293
equalLists(oldState.options.inputSummaries, inputSummaries) &&
93-
equalMaps(oldState.options.experimentalFlags, experiments)) {
94+
equalMaps(oldState.options.experimentalFlags, experiments) &&
95+
equalMaps(oldState.options.environmentDefines, environmentDefines)) {
9496
// Reuse old state.
9597

9698
// These libraries are marked external when compiling. If not un-marking
@@ -114,7 +116,8 @@ Future<InitializedCompilerState> initializeCompiler(
114116
..inputSummaries = inputSummaries
115117
..librariesSpecificationUri = librariesSpecificationUri
116118
..target = target
117-
..fileSystem = fileSystem ?? StandardFileSystem.instance;
119+
..fileSystem = fileSystem ?? StandardFileSystem.instance
120+
..environmentDefines = environmentDefines;
118121
if (experiments != null) options.experimentalFlags = experiments;
119122

120123
ProcessedOptions processedOpts = new ProcessedOptions(options: options);
@@ -134,7 +137,8 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
134137
Map<Uri, List<int>> workerInputDigests,
135138
Target target,
136139
{FileSystem fileSystem,
137-
Map<ExperimentalFlag, bool> experiments}) async {
140+
Map<ExperimentalFlag, bool> experiments,
141+
Map<String, String> environmentDefines}) async {
138142
inputSummaries.sort((a, b) => a.toString().compareTo(b.toString()));
139143

140144
IncrementalCompiler incrementalCompiler;
@@ -156,7 +160,8 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
156160
oldState.options.compileSdk != compileSdk ||
157161
cachedSdkInput == null ||
158162
!digestsEqual(cachedSdkInput.digest, sdkDigest) ||
159-
!equalMaps(oldState.options.experimentalFlags, experiments)) {
163+
!equalMaps(oldState.options.experimentalFlags, experiments) ||
164+
!equalMaps(oldState.options.environmentDefines, environmentDefines)) {
160165
// No previous state.
161166
options = new CompilerOptions()
162167
..compileSdk = compileSdk
@@ -166,7 +171,8 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
166171
..inputSummaries = inputSummaries
167172
..librariesSpecificationUri = librariesSpecificationUri
168173
..target = target
169-
..fileSystem = fileSystem ?? StandardFileSystem.instance;
174+
..fileSystem = fileSystem ?? StandardFileSystem.instance
175+
..environmentDefines = environmentDefines;
170176
if (experiments != null) options.experimentalFlags = experiments;
171177

172178
// We'll load a new sdk, anything loaded already will have a wrong root.

0 commit comments

Comments
 (0)