hasValidPartDirectiveFor method
Returns true if the input library has a part directive for the given extension.
This is useful for determining if a part file with the given extension is already included in the library, avoiding duplicate part directives.
@param extension The extension to check for in part directives @return True if a part directive exists for a file with the given extension
Implementation
@override
bool hasValidPartDirectiveFor(String extension) {
final LibraryElementImpl library = resolver.libraryFor(asset);
final Iterable<PartDirective> partDirectives = library.compilationUnit.directives.whereType<PartDirective>();
final PackageFileResolver fileResolver = resolver.fileResolver;
for (final PartDirective partDirect in partDirectives) {
final String? part = partDirect.uri.stringValue;
if (part == null) continue;
final Uri partUri = fileResolver.resolveFileUri(
Uri.parse(part),
relativeTo: library.src.uri,
);
if (partUri == asset.uriWithExtension(extension)) {
return true;
}
}
return false;
}