[cfe] Update addSyntheticImport

This changes the implementation of addSyntheticImport from mimicking
syntactical imports to directly providing the data needed. This avoids
the reliance on CanonicalName and Uri.toString and instead directly
uses the importUri already available.

Change-Id: I62447ab3c7c9f54597101704be3bdad0a4d2557c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/436622
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
Johnni Winther
2025-06-24 09:12:32 -07:00
committed by Commit Queue
parent 2285b68ae6
commit 2c7fcb1fab
4 changed files with 15 additions and 17 deletions
@@ -1830,7 +1830,8 @@ class IncrementalCompiler implements IncrementalKernelGenerator {
}
debugLibrary.compilationUnit.addSyntheticImport(
uri: dependency.importedLibraryReference.canonicalName!.name,
importUri:
dependency.importedLibraryReference.asLibrary.importUri,
prefix: dependency.name,
combinators: combinators,
deferred: dependency.isDeferred);
@@ -265,7 +265,7 @@ abstract class SourceCompilationUnit
IndexedLibrary? get indexedLibrary;
void addSyntheticImport(
{required String uri,
{required Uri importUri,
required String? prefix,
required List<CombinatorBuilder>? combinators,
required bool deferred});
@@ -910,23 +910,21 @@ class SourceCompilationUnitImpl implements SourceCompilationUnit {
@override
// Coverage-ignore(suite): Not run.
void addSyntheticImport(
{required String uri,
{required Uri importUri,
required String? prefix,
required List<CombinatorBuilder>? combinators,
required bool deferred}) {
assert(
checkState(pending: [SourceCompilationUnitState.importsAddedToScope]));
_fragmentFactory.addImport(
metadata: null,
isAugmentationImport: false,
uri: uri,
configurations: null,
prefix: prefix,
combinators: combinators,
deferred: deferred,
charOffset: -1,
prefixCharOffset: -1,
uriOffset: -1);
CompilationUnit? compilationUnit = loader.read(importUri, -1,
origin: null,
accessor: this,
isAugmentation: false,
referencesFromIndex: indexedLibrary);
Import import = new Import(this, compilationUnit, false, deferred, prefix,
combinators, null, fileUri, -1, -1,
nativeImportPath: null);
_fragmentFactoryResult.imports.add(import);
}
@override
+2 -3
View File
@@ -1001,15 +1001,14 @@ class DocTestIncrementalCompiler extends IncrementalCompiler {
}
dartDocTestCompilationUnit.addSyntheticImport(
uri: dependency.importedLibraryReference.asLibrary.importUri
.toString(),
importUri: dependency.importedLibraryReference.asLibrary.importUri,
prefix: dependency.name,
combinators: combinators,
deferred: dependency.isDeferred);
}
dartDocTestCompilationUnit.addSyntheticImport(
uri: libraryBuilder.importUri.toString(),
importUri: libraryBuilder.importUri,
prefix: null,
combinators: null,
deferred: false);