Skip to content

Commit 7f43761

Browse files
committed
Merge pull request #1057 from keertip/analyzer
changes to upgrade to latest analzyer
2 parents 17f1172 + 9d96d8d commit 7f43761

File tree

6 files changed

+38
-17
lines changed

6 files changed

+38
-17
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* [bug] Fixed the display of deprecated properties.
44
* [bug] show generics for typedefs
55
* [bug] cleanly unzip docs on Mac
6+
* [health] upgrade to latest analyzer package
67

78
## 0.8.3
89
* [enhancement] Added `--[no-]include-source` option.

lib/dartdoc.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,8 @@ class DartDoc {
149149

150150
var options = new AnalysisOptionsImpl()..cacheSize = 512;
151151

152+
AnalysisEngine.instance.processRequiredPlugins();
153+
152154
AnalysisContext context = AnalysisEngine.instance.createAnalysisContext()
153155
..analysisOptions = options
154156
..sourceFactory = sourceFactory;

lib/src/element_type.dart

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,14 @@ class ElementType {
2828

2929
DartType get _returnTypeCore => (_type as FunctionType).returnType;
3030

31-
// TODO: this is probably a bug. Apparently, EVERYTHING is a parameterized type?
32-
bool get isParameterizedType =>
33-
(_type is ParameterizedType) &&
34-
(_type as ParameterizedType).typeArguments.isNotEmpty;
31+
bool get isParameterizedType {
32+
if (_type is FunctionType) {
33+
return (_type as FunctionType).boundTypeParameters.isNotEmpty;
34+
} else if (_type is ParameterizedType) {
35+
return (_type as ParameterizedType).typeArguments.isNotEmpty;
36+
}
37+
return false;
38+
}
3539

3640
String get _returnTypeName => _returnTypeCore.name;
3741

@@ -56,16 +60,29 @@ class ElementType {
5660
return (new ModelElement.from(e, lib));
5761
}
5862

59-
List<ElementType> get typeArguments =>
60-
(_type as ParameterizedType).typeArguments.map((f) {
61-
Library lib;
62-
// can happen if element is dynamic
63-
lib = element.package.findLibraryFor(f.element);
64-
if (lib == null && f.element.library != null) {
65-
lib = new Library(f.element.library, element.package);
66-
}
67-
return new ElementType(f, new ModelElement.from(f.element, lib));
68-
}).toList();
63+
List<ElementType> get typeArguments {
64+
if (_type is FunctionType) {
65+
return (_type as FunctionType)
66+
.boundTypeParameters
67+
.map((f) => _getElementTypeFrom(f))
68+
.toList();
69+
} else {
70+
return (_type as ParameterizedType)
71+
.typeArguments
72+
.map((f) => _getElementTypeFrom(f))
73+
.toList();
74+
}
75+
}
76+
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);
83+
}
84+
return new ElementType(f, new ModelElement.from(f.element, lib));
85+
}
6986

7087
String get linkedName {
7188
if (_linkedName != null) return _linkedName;

pubspec.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ packages:
44
analyzer:
55
description: analyzer
66
source: hosted
7-
version: "0.26.3"
7+
version: "0.27.0"
88
ansicolor:
99
description: ansicolor
1010
source: hosted
@@ -184,7 +184,7 @@ packages:
184184
test:
185185
description: test
186186
source: hosted
187-
version: "0.12.6"
187+
version: "0.12.6+1"
188188
typed_data:
189189
description: typed_data
190190
source: hosted

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ homepage: https://github.com/dart-lang/dartdoc
77
environment:
88
sdk: '>=1.12.0 <2.0.0'
99
dependencies:
10-
analyzer: '>=0.26.3 <0.27.0'
10+
analyzer: '>=0.27.0 <0.28.0'
1111
args: ^0.13.0
1212
cli_util: ^0.0.1
1313
collection: ^1.2.0

test/src/utils.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class AnalyzerHelper {
6969
];
7070

7171
SourceFactory sourceFactory = new SourceFactory(resolvers);
72+
AnalysisEngine.instance.processRequiredPlugins();
7273
context = AnalysisEngine.instance.createAnalysisContext();
7374
context.sourceFactory = sourceFactory;
7475
}

0 commit comments

Comments
 (0)