6
6
// ignore_for_file: deprecated_member_use
7
7
8
8
import 'package:analyzer/dart/constant/value.dart' ;
9
- import 'package:analyzer/dart/element/element .dart' ;
9
+ import 'package:analyzer/dart/element/element2 .dart' ;
10
10
import 'package:analyzer/dart/element/type.dart' ;
11
11
// ignore: implementation_imports
12
12
import 'package:analyzer/src/dart/constant/value.dart' show DartObjectImpl;
@@ -22,35 +22,37 @@ import '../utils.dart';
22
22
/// **NOTE**: Some returned [Revivable] instances are not representable as valid
23
23
/// Dart source code (such as referencing private constructors). It is up to the
24
24
/// 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]) {
26
26
final objectType = object.type;
27
- Element ? element = objectType! .alias? .element ;
27
+ Element2 ? element = objectType! .alias? .element2 ;
28
28
if (element == null ) {
29
29
if (objectType is InterfaceType ) {
30
- element = objectType.element ;
30
+ element = objectType.element3 ;
31
31
} else {
32
- element = object.toFunctionValue ();
32
+ element = object.toFunctionValue2 ();
33
33
}
34
34
}
35
- origin ?? = element! .library ;
35
+ origin ?? = element! .library2 ;
36
36
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 ! );
39
39
}
40
- if (element is MethodElement && element.isStatic) {
40
+
41
+ if (element is MethodElement2 && element.isStatic) {
41
42
return Revivable ._(
42
43
source: url.removeFragment (),
43
- accessor: '${element .enclosingElement3 .name }.${element .name }' ,
44
+ accessor:
45
+ '${element .firstFragment .enclosingFragment !.name2 }.${element .name3 }' ,
44
46
);
45
47
}
46
48
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 (
49
51
(f) => f.isPublic && f.isConst && f.computeConstantValue () == object,
50
52
)) {
51
53
return Revivable ._(
52
54
source: url.removeFragment (),
53
- accessor: '${element .name }.${e .name }' ,
55
+ accessor: '${element .name3 }.${e .name3 }' ,
54
56
);
55
57
}
56
58
}
@@ -64,13 +66,13 @@ Revivable reviveInstance(DartObject object, [LibraryElement? origin]) {
64
66
return ! result.isPrivate;
65
67
}
66
68
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 (
69
71
(f) => f.isConst && f.computeConstantValue () == object,
70
72
)) {
71
73
final result = Revivable ._(
72
74
source: url.removeFragment (),
73
- accessor: '${type .name }.${e .name }' ,
75
+ accessor: '${type .name3 }.${e .name3 }' ,
74
76
);
75
77
if (tryResult (result)) {
76
78
return result;
@@ -79,23 +81,24 @@ Revivable reviveInstance(DartObject object, [LibraryElement? origin]) {
79
81
}
80
82
final i = (object as DartObjectImpl ).getInvocation ();
81
83
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;
83
86
final result = Revivable ._(
84
87
source: url,
85
- accessor: i.constructor.name ,
88
+ accessor: newToEmpty (i.constructor2.name3 ! ) ,
86
89
namedArguments: i.namedArguments,
87
90
positionalArguments: i.positionalArguments,
88
91
);
89
92
if (tryResult (result)) {
90
93
return result;
91
94
}
92
95
}
93
- for (final e in origin.definingCompilationUnit. topLevelVariables.where (
96
+ for (final e in origin.topLevelVariables.where (
94
97
(f) => f.isConst && f.computeConstantValue () == object,
95
98
)) {
96
99
final result = Revivable ._(
97
100
source: Uri .parse (urlOfElement (origin)).replace (fragment: '' ),
98
- accessor: e.name ,
101
+ accessor: e.name3 ! ,
99
102
);
100
103
if (tryResult (result)) {
101
104
return result;
0 commit comments