@@ -16,18 +16,10 @@ class ElementType {
16
16
17
17
ElementType (this ._type, this .element);
18
18
19
- String toString () => "$_type " ;
20
-
21
19
bool get isDynamic => _type.isDynamic;
22
20
23
- bool get isParameterType => (_type is TypeParameterType );
24
-
25
21
bool get isFunctionType => (_type is FunctionType );
26
22
27
- String get name => _type.name;
28
-
29
- DartType get _returnTypeCore => (_type as FunctionType ).returnType;
30
-
31
23
bool get isParameterizedType {
32
24
if (_type is FunctionType ) {
33
25
return (_type as FunctionType ).boundTypeParameters.isNotEmpty;
@@ -37,17 +29,38 @@ class ElementType {
37
29
return false ;
38
30
}
39
31
40
- String get _returnTypeName => _returnTypeCore.name ;
32
+ bool get isParameterType => (_type is TypeParameterType ) ;
41
33
42
- ElementType get _returnType {
43
- var rt = _returnTypeCore;
44
- Library lib = element.package.findLibraryFor (rt.element);
45
- if (lib == null ) {
46
- lib = new Library (rt.element.library, element.package);
34
+ String get linkedName {
35
+ if (_linkedName != null ) return _linkedName;
36
+
37
+ StringBuffer buf = new StringBuffer ();
38
+
39
+ if (isParameterType) {
40
+ buf.write (name);
41
+ } else {
42
+ buf.write (element.linkedName);
47
43
}
48
- return new ElementType (rt, new ModelElement .from (rt.element, lib));
44
+
45
+ // not TypeParameterType or Void or Union type
46
+ if (isParameterizedType) {
47
+ if (typeArguments.every ((t) => t.linkedName == 'dynamic' )) {
48
+ _linkedName = buf.toString ();
49
+ return _linkedName;
50
+ }
51
+ if (typeArguments.isNotEmpty) {
52
+ buf.write ('<' );
53
+ buf.writeAll (typeArguments.map ((t) => t.linkedName), ', ' );
54
+ buf.write ('>' );
55
+ }
56
+ }
57
+ _linkedName = buf.toString ();
58
+
59
+ return _linkedName;
49
60
}
50
61
62
+ String get name => _type.name;
63
+
51
64
ModelElement get returnElement {
52
65
Element e = _returnTypeCore.element;
53
66
if (e == null ) {
@@ -64,7 +77,7 @@ class ElementType {
64
77
if (_type is FunctionType ) {
65
78
return (_type as FunctionType )
66
79
.boundTypeParameters
67
- .map ((f) => _getElementTypeFrom (f))
80
+ .map ((f) => _getElementTypeFrom (f.type ))
68
81
.toList ();
69
82
} else {
70
83
return (_type as ParameterizedType )
@@ -74,43 +87,18 @@ class ElementType {
74
87
}
75
88
}
76
89
77
- ElementType _getElementTypeFrom (DartType f) {
78
- Library lib;
79
- // can happen if element is dynamic
80
- lib = element.package.findLibraryFor (f.element);
81
- if (lib == null && f.element.library != null ) {
82
- lib = new Library (f.element.library, element.package);
90
+ ElementType get _returnType {
91
+ var rt = _returnTypeCore;
92
+ Library lib = element.package.findLibraryFor (rt.element);
93
+ if (lib == null ) {
94
+ lib = new Library (rt.element.library, element.package);
83
95
}
84
- return new ElementType (f , new ModelElement .from (f .element, lib));
96
+ return new ElementType (rt , new ModelElement .from (rt .element, lib));
85
97
}
86
98
87
- String get linkedName {
88
- if (_linkedName != null ) return _linkedName;
89
-
90
- StringBuffer buf = new StringBuffer ();
91
-
92
- if (isParameterType) {
93
- buf.write (name);
94
- } else {
95
- buf.write (element.linkedName);
96
- }
97
-
98
- // not TypeParameterType or Void or Union type
99
- if (isParameterizedType) {
100
- if (typeArguments.every ((t) => t.linkedName == 'dynamic' )) {
101
- _linkedName = buf.toString ();
102
- return _linkedName;
103
- }
104
- if (typeArguments.isNotEmpty) {
105
- buf.write ('<' );
106
- buf.writeAll (typeArguments.map ((t) => t.linkedName), ', ' );
107
- buf.write ('>' );
108
- }
109
- }
110
- _linkedName = buf.toString ();
99
+ DartType get _returnTypeCore => (_type as FunctionType ).returnType;
111
100
112
- return _linkedName;
113
- }
101
+ String get _returnTypeName => _returnTypeCore.name;
114
102
115
103
String createLinkedReturnTypeName () {
116
104
if (_returnTypeCore.element == null ||
@@ -128,4 +116,16 @@ class ElementType {
128
116
return _returnType.linkedName;
129
117
}
130
118
}
119
+
120
+ String toString () => "$_type " ;
121
+
122
+ ElementType _getElementTypeFrom (DartType f) {
123
+ Library lib;
124
+ // can happen if element is dynamic
125
+ lib = element.package.findLibraryFor (f.element);
126
+ if (lib == null && f.element.library != null ) {
127
+ lib = new Library (f.element.library, element.package);
128
+ }
129
+ return new ElementType (f, new ModelElement .from (f.element, lib));
130
+ }
131
131
}
0 commit comments