11import 'dart:convert' ;
22
33import 'package:analyzer/dart/ast/ast.dart' ;
4- import 'package:analyzer/dart/element/element.dart' ;
54import 'package:analyzer/dart/element/element2.dart' ;
65import 'package:build/build.dart' as build;
76import 'package:build/build.dart' ;
@@ -35,7 +34,7 @@ class DriftBuildBackend extends DriftBackend {
3534
3635 @override
3736 Future <Uri > uriOfDart (Element2 element) async {
38- final id = await _buildStep.resolver.assetIdForElement (element);
37+ final id = await _buildStep.resolver.assetIdForElement2 (element);
3938 return id.uri;
4039 }
4140
@@ -46,7 +45,7 @@ class DriftBuildBackend extends DriftBackend {
4645 Future <LibraryElement2 > readDart (Uri uri) async {
4746 if (uri.scheme == 'dart' ) {
4847 final name = 'dart.${uri .path }' ;
49- final library = await _buildStep.resolver.findLibraryByName (name);
48+ final library = await _buildStep.resolver.findLibraryByName2 (name);
5049
5150 if (library == null ) {
5251 throw NotALibraryException (uri);
@@ -56,15 +55,18 @@ class DriftBuildBackend extends DriftBackend {
5655 }
5756
5857 try {
59- return await _buildStep.resolver.libraryFor (AssetId .resolve (uri));
58+ return await _buildStep.resolver.libraryFor2 (AssetId .resolve (uri));
6059 } on NonLibraryAssetException {
6160 throw NotALibraryException (uri);
6261 }
6362 }
6463
6564 @override
6665 Future <AstNode ?> loadElementDeclaration (Element2 element) {
67- return _buildStep.resolver.astNodeFor (element, resolve: true );
66+ return _buildStep.resolver.astNodeFor2 (
67+ element.firstFragment,
68+ resolve: true ,
69+ );
6870 }
6971
7072 @override
@@ -93,10 +95,13 @@ class DriftBuildBackend extends DriftBackend {
9395 throw CannotReadExpressionException ('No field for $dartExpression ' );
9496 }
9597
96- final library = await _buildStep.resolver.libraryFor (tempDart);
97- final field = library.units.first.topLevelVariables
98- .firstWhere ((element) => element.name == getter);
99- final fieldAst = await _buildStep.resolver.astNodeFor (field, resolve: true );
98+ final library = await _buildStep.resolver.libraryFor2 (tempDart);
99+ final field = library.firstFragment.topLevelVariables2
100+ .firstWhere ((element) => element.name2 == getter);
101+ final fieldAst = await _buildStep.resolver.astNodeFor2 (
102+ field,
103+ resolve: true ,
104+ );
100105
101106 final initializer = (fieldAst as VariableDeclaration ).initializer;
102107 if (initializer == null ) {
@@ -107,25 +112,25 @@ class DriftBuildBackend extends DriftBackend {
107112 }
108113
109114 @override
110- Future <Element ?> resolveTopLevelElement (
115+ Future <Element2 ?> resolveTopLevelElement (
111116 Uri context, String reference, Iterable <Uri > imports) async {
112117 final original = AssetId .resolve (context);
113118 final tempDart = original.changeExtension ('.expr.temp.dart' );
114119
115120 if (await _buildStep.canRead (tempDart)) {
116- final library = await _buildStep.resolver.libraryFor (tempDart);
117- return library.definingCompilationUnit .scope.lookup (reference).getter ;
121+ final library = await _buildStep.resolver.libraryFor2 (tempDart);
122+ return library.firstFragment .scope.lookup (reference).getter2 ;
118123 } else {
119124 // If there's no temporary file whose imports we can use, then that means
120125 // that there aren't any Dart imports in [context] at all. So we just need
121126 // to look it up in `dart:core`.
122127 // For that, resolve a library we know exists and likely has been resolved
123128 // already.
124129 final libraryWeKnowExists = await _buildStep.resolver
125- .libraryFor (AssetId .resolve (KnownDriftTypes .uri));
126- final dartCore = libraryWeKnowExists.typeProvider.objectElement.library ;
130+ .libraryFor2 (AssetId .resolve (KnownDriftTypes .uri));
131+ final dartCore = libraryWeKnowExists.typeProvider.objectElement2.library2 ;
127132
128- return dartCore.exportNamespace.get (reference);
133+ return dartCore.exportNamespace.get2 (reference);
129134 }
130135 }
131136}
@@ -192,7 +197,7 @@ class BuildCacheReader implements AnalysisResultCacheReader {
192197 Future <LibraryElement2 ?> readTypeHelperFor (Uri uri) async {
193198 final assetId = AssetId .resolve (uri).addExtension ('.types.temp.dart' );
194199 if (await _buildStep.canRead (assetId)) {
195- return _buildStep.resolver.libraryFor (assetId, allowSyntaxErrors: true );
200+ return _buildStep.resolver.libraryFor2 (assetId, allowSyntaxErrors: true );
196201 }
197202
198203 return null ;
0 commit comments