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,39 +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
- @Deprecated ('use reviveInstance2 instead' )
26
- Revivable reviveInstance (DartObject object, [LibraryElement ? origin]) {
25
+ Revivable reviveInstance (DartObject object, [LibraryElement2 ? origin]) {
27
26
final objectType = object.type;
28
- Element ? element = objectType! .alias? .element ;
27
+ Element2 ? element = objectType! .alias? .element2 ;
29
28
if (element == null ) {
30
29
if (objectType is InterfaceType ) {
31
- element = objectType.element ;
30
+ element = objectType.element3 ;
32
31
} else {
33
- element = object.toFunctionValue ();
32
+ element = object.toFunctionValue2 ();
34
33
}
35
34
}
36
- origin ?? = element! .library;
37
- var url = Uri .parse (urlOfElement (element! ));
38
- if (element is FunctionElement ) {
39
- return Revivable ._(
40
- source: url.removeFragment (),
41
- accessor: element.name,
42
- );
35
+ origin ?? = element! .library2;
36
+ var url = Uri .parse (urlOfElement2 (element! ));
37
+ if (element is TopLevelFunctionElement || element is LocalFunctionElement ) {
38
+ return Revivable ._(source: url.removeFragment (), accessor: element.name3! );
43
39
}
44
- if (element is MethodElement && element.isStatic) {
40
+
41
+ if (element is MethodElement2 && element.isStatic) {
45
42
return Revivable ._(
46
43
source: url.removeFragment (),
47
- accessor: '${element .enclosingElement3 .name }.${element .name }' ,
44
+ accessor:
45
+ '${element .firstFragment .enclosingFragment !.name2 }.${element .name3 }' ,
48
46
);
49
47
}
50
48
51
- if (element is InterfaceElement ) {
52
- for (final e in element.fields .where (
49
+ if (element is InterfaceElement2 ) {
50
+ for (final e in element.fields2 .where (
53
51
(f) => f.isPublic && f.isConst && f.computeConstantValue () == object,
54
52
)) {
55
53
return Revivable ._(
56
54
source: url.removeFragment (),
57
- accessor: '${element .name }.${e .name }' ,
55
+ accessor: '${element .name3 }.${e .name3 }' ,
58
56
);
59
57
}
60
58
}
@@ -68,12 +66,12 @@ Revivable reviveInstance(DartObject object, [LibraryElement? origin]) {
68
66
return ! result.isPrivate;
69
67
}
70
68
71
- for (final type in origin! .definingCompilationUnit. classes) {
72
- for (final e in type.fields
69
+ for (final type in origin! .classes) {
70
+ for (final e in type.fields2
73
71
.where ((f) => f.isConst && f.computeConstantValue () == object)) {
74
72
final result = Revivable ._(
75
73
source: url.removeFragment (),
76
- accessor: '${type .name }.${e .name }' ,
74
+ accessor: '${type .name3 }.${e .name3 }' ,
77
75
);
78
76
if (tryResult (result)) {
79
77
return result;
@@ -82,7 +80,7 @@ Revivable reviveInstance(DartObject object, [LibraryElement? origin]) {
82
80
}
83
81
final i = (object as DartObjectImpl ).getInvocation ();
84
82
if (i != null ) {
85
- url = Uri .parse (urlOfElement (i.constructor.enclosingElement3 ));
83
+ url = Uri .parse (urlOfElement2 (i.constructor2.enclosingElement2 ));
86
84
final result = Revivable ._(
87
85
source: url,
88
86
accessor: i.constructor.name,
@@ -93,12 +91,12 @@ Revivable reviveInstance(DartObject object, [LibraryElement? origin]) {
93
91
return result;
94
92
}
95
93
}
96
- for (final e in origin.definingCompilationUnit. topLevelVariables.where (
94
+ for (final e in origin.topLevelVariables.where (
97
95
(f) => f.isConst && f.computeConstantValue () == object,
98
96
)) {
99
97
final result = Revivable ._(
100
- source: Uri .parse (urlOfElement (origin)).replace (fragment: '' ),
101
- accessor: e.name ,
98
+ source: Uri .parse (urlOfElement2 (origin)).replace (fragment: '' ),
99
+ accessor: e.name3 ! ,
102
100
);
103
101
if (tryResult (result)) {
104
102
return result;
0 commit comments