tryInitializeBuiltInterop function
Future
tryInitializeBuiltInterop(
- BuildStep step
)
Implementation
Future tryInitializeBuiltInterop(BuildStep step) async {
var builtValueAsset = AssetId.resolve(Uri.parse("package:built_value/built_value.dart"));
var builtCollectionAsset = AssetId.resolve(Uri.parse("package:built_collection/built_collection.dart"));
if (!(await step.canRead(builtValueAsset) && await step.canRead(builtCollectionAsset))) {
hasBuiltInterop = false;
return;
}
var builtValueLibrary = await step.resolver
.libraryFor(builtValueAsset);
var builtCollectionLibrary = await step.resolver
.libraryFor(builtCollectionAsset);
_builtValueLibrary = LibraryReader(builtValueLibrary);
_builtCollectionLibrary = LibraryReader(builtCollectionLibrary);
builtInterface = _builtValueLibrary.findType("Built") as InterfaceElement;
builtBuilderInterface = _builtValueLibrary.findType("Builder") as InterfaceElement;
listBuilderInterface = _builtCollectionLibrary.findType("ListBuilder") as InterfaceElement;
mapBuilderInterface = _builtCollectionLibrary.findType("MapBuilder") as InterfaceElement;
setBuilderInterface = _builtCollectionLibrary.findType("SetBuilder") as InterfaceElement;
builtChecker = TypeChecker.fromStatic(builtInterface.thisType);
builtBuilderChecker = TypeChecker.fromStatic(builtBuilderInterface.thisType);
listBuilderChecker = TypeChecker.fromStatic(listBuilderInterface.thisType);
mapBuilderChecker = TypeChecker.fromStatic(mapBuilderInterface.thisType);
setBuilderChecker = TypeChecker.fromStatic(setBuilderInterface.thisType);
builtValueFieldChecker = TypeChecker.fromStatic(_builtValueLibrary.findType("BuiltValueField")!.thisType);
builtValueEnumChecker = TypeChecker.fromStatic(_builtValueLibrary.findType("EnumClass")!.thisType);
hasBuiltInterop = true;
}