66// ignore_for_file: deprecated_member_use
77
88import 'package:analyzer/dart/constant/value.dart' ;
9- import 'package:analyzer/dart/element/element .dart' ;
9+ import 'package:analyzer/dart/element/element2 .dart' ;
1010import 'package:analyzer/dart/element/type.dart' ;
1111// ignore: implementation_imports
1212import 'package:analyzer/src/dart/constant/value.dart' show DartObjectImpl;
@@ -22,35 +22,37 @@ import '../utils.dart';
2222/// **NOTE**: Some returned [Revivable] instances are not representable as valid
2323/// Dart source code (such as referencing private constructors). It is up to the
2424/// build tool(s) using this library to surface error messages to the user.
25- Revivable reviveInstance (DartObject object, [LibraryElement ? origin]) {
25+ Revivable reviveInstance (DartObject object, [LibraryElement2 ? origin]) {
2626 final objectType = object.type;
27- Element ? element = objectType! .alias? .element ;
27+ Element2 ? element = objectType! .alias? .element2 ;
2828 if (element == null ) {
2929 if (objectType is InterfaceType ) {
30- element = objectType.element ;
30+ element = objectType.element3 ;
3131 } else {
32- element = object.toFunctionValue ();
32+ element = object.toFunctionValue2 ();
3333 }
3434 }
35- origin ?? = element! .library ;
35+ origin ?? = element! .library2 ;
3636 var url = Uri .parse (urlOfElement (element! ));
37- if (element is FunctionElement ) {
38- return Revivable ._(source: url.removeFragment (), accessor: element.name );
37+ if (element is TopLevelFunctionElement || element is LocalFunctionElement ) {
38+ return Revivable ._(source: url.removeFragment (), accessor: element.name3 ! );
3939 }
40- if (element is MethodElement && element.isStatic) {
40+
41+ if (element is MethodElement2 && element.isStatic) {
4142 return Revivable ._(
4243 source: url.removeFragment (),
43- accessor: '${element .enclosingElement3 .name }.${element .name }' ,
44+ accessor:
45+ '${element .firstFragment .enclosingFragment !.name2 }.${element .name3 }' ,
4446 );
4547 }
4648
47- if (element is InterfaceElement ) {
48- for (final e in element.fields .where (
49+ if (element is InterfaceElement2 ) {
50+ for (final e in element.fields2 .where (
4951 (f) => f.isPublic && f.isConst && f.computeConstantValue () == object,
5052 )) {
5153 return Revivable ._(
5254 source: url.removeFragment (),
53- accessor: '${element .name }.${e .name }' ,
55+ accessor: '${element .name3 }.${e .name3 }' ,
5456 );
5557 }
5658 }
@@ -64,13 +66,13 @@ Revivable reviveInstance(DartObject object, [LibraryElement? origin]) {
6466 return ! result.isPrivate;
6567 }
6668
67- for (final type in origin! .definingCompilationUnit. classes) {
68- for (final e in type.fields .where (
69+ for (final type in origin! .classes) {
70+ for (final e in type.fields2 .where (
6971 (f) => f.isConst && f.computeConstantValue () == object,
7072 )) {
7173 final result = Revivable ._(
7274 source: url.removeFragment (),
73- accessor: '${type .name }.${e .name }' ,
75+ accessor: '${type .name3 }.${e .name3 }' ,
7476 );
7577 if (tryResult (result)) {
7678 return result;
@@ -79,23 +81,24 @@ Revivable reviveInstance(DartObject object, [LibraryElement? origin]) {
7981 }
8082 final i = (object as DartObjectImpl ).getInvocation ();
8183 if (i != null ) {
82- url = Uri .parse (urlOfElement (i.constructor.enclosingElement3));
84+ url = Uri .parse (urlOfElement (i.constructor2.enclosingElement2));
85+ String newToEmpty (String string) => string == 'new' ? '' : string;
8386 final result = Revivable ._(
8487 source: url,
85- accessor: i.constructor.name ,
88+ accessor: newToEmpty (i.constructor2.name3 ! ) ,
8689 namedArguments: i.namedArguments,
8790 positionalArguments: i.positionalArguments,
8891 );
8992 if (tryResult (result)) {
9093 return result;
9194 }
9295 }
93- for (final e in origin.definingCompilationUnit. topLevelVariables.where (
96+ for (final e in origin.topLevelVariables.where (
9497 (f) => f.isConst && f.computeConstantValue () == object,
9598 )) {
9699 final result = Revivable ._(
97100 source: Uri .parse (urlOfElement (origin)).replace (fragment: '' ),
98- accessor: e.name ,
101+ accessor: e.name3 ! ,
99102 );
100103 if (tryResult (result)) {
101104 return result;
0 commit comments