Index: pkg/analyzer/lib/src/task/dart.dart |
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart |
index 324ad51b81339490e991cf6c20a14586a75ef2ae..3fb63557fe6fc74168626628aef60fdd2c16b166 100644 |
--- a/pkg/analyzer/lib/src/task/dart.dart |
+++ b/pkg/analyzer/lib/src/task/dart.dart |
@@ -4151,25 +4151,30 @@ class ParseDartTask extends SourceBasedAnalysisTask { |
// Resolve all configurations and try to choose one. |
if (directive is NamespaceDirectiveImpl) { |
- Source configurationSource; |
+ String configuredUri; |
+ Source configuredSource; |
for (Configuration configuration in directive.configurations) { |
- Source source = _resolveUri(isImport, configuration.libraryUri, |
- configuration.libraryUri.stringValue); |
+ String configurationUri = configuration.uri.stringValue; |
+ Source source = |
+ _resolveUri(isImport, configuration.uri, configurationUri); |
configuration.uriSource = source; |
- if (configurationSource == null) { |
+ if (configuredSource == null) { |
String variableName = |
configuration.name.components.map((i) => i.name).join('.'); |
String variableValue = context.declaredVariables.get(variableName); |
if (configuration.value != null && |
variableValue == configuration.value.stringValue || |
variableValue == 'true') { |
- configurationSource = source; |
+ configuredUri = configuration.uri.stringValue; |
+ configuredSource = source; |
} |
} |
} |
- Source referencedSource = configurationSource ?? defaultSource; |
- directive.selectedSource = referencedSource; |
- return referencedSource; |
+ String selectedUri = configuredUri ?? directive.uriContent; |
+ Source selectedSource = configuredSource ?? defaultSource; |
+ directive.selectedUri = selectedUri; |
+ directive.selectedSource = selectedSource; |
+ return selectedSource; |
} |
return defaultSource; |
} |