@@ -16,18 +16,10 @@ class ElementType {
1616
1717 ElementType (this ._type, this .element);
1818
19- String toString () => "$_type " ;
20-
2119 bool get isDynamic => _type.isDynamic;
2220
23- bool get isParameterType => (_type is TypeParameterType );
24-
2521 bool get isFunctionType => (_type is FunctionType );
2622
27- String get name => _type.name;
28-
29- DartType get _returnTypeCore => (_type as FunctionType ).returnType;
30-
3123 bool get isParameterizedType {
3224 if (_type is FunctionType ) {
3325 return (_type as FunctionType ).boundTypeParameters.isNotEmpty;
@@ -37,17 +29,38 @@ class ElementType {
3729 return false ;
3830 }
3931
40- String get _returnTypeName => _returnTypeCore.name ;
32+ bool get isParameterType => (_type is TypeParameterType ) ;
4133
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);
4743 }
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;
4960 }
5061
62+ String get name => _type.name;
63+
5164 ModelElement get returnElement {
5265 Element e = _returnTypeCore.element;
5366 if (e == null ) {
@@ -64,7 +77,7 @@ class ElementType {
6477 if (_type is FunctionType ) {
6578 return (_type as FunctionType )
6679 .boundTypeParameters
67- .map ((f) => _getElementTypeFrom (f))
80+ .map ((f) => _getElementTypeFrom (f.type ))
6881 .toList ();
6982 } else {
7083 return (_type as ParameterizedType )
@@ -74,43 +87,18 @@ class ElementType {
7487 }
7588 }
7689
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);
8395 }
84- return new ElementType (f , new ModelElement .from (f .element, lib));
96+ return new ElementType (rt , new ModelElement .from (rt .element, lib));
8597 }
8698
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;
111100
112- return _linkedName;
113- }
101+ String get _returnTypeName => _returnTypeCore.name;
114102
115103 String createLinkedReturnTypeName () {
116104 if (_returnTypeCore.element == null ||
@@ -128,4 +116,16 @@ class ElementType {
128116 return _returnType.linkedName;
129117 }
130118 }
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+ }
131131}
0 commit comments