@@ -43,6 +43,7 @@ abstract class ElementType extends Privacy
43
43
if (fElement == null ||
44
44
fElement.kind == ElementKind .DYNAMIC ||
45
45
fElement.kind == ElementKind .NEVER ) {
46
+ // [UndefinedElementType]s.
46
47
if (f is FunctionType ) {
47
48
if (f.alias? .element != null ) {
48
49
return AliasedFunctionTypeElementType (
@@ -51,43 +52,42 @@ abstract class ElementType extends Privacy
51
52
return FunctionTypeElementType (f, library, packageGraph, returnedFrom);
52
53
}
53
54
return UndefinedElementType (f, library, packageGraph, returnedFrom);
54
- } else {
55
- var element = packageGraph.modelBuilder.fromElement (fElement);
56
- // [TypeAliasElement.aliasElement] has different implications.
57
- // In that case it is an actual type alias of some kind (generic
58
- // or otherwise. Here however aliasElement signals that this is a
59
- // type referring to an alias.
60
- if (f is ! TypeAliasElement && f.alias? .element != null ) {
61
- return AliasedElementType (f as ParameterizedType , library, packageGraph,
62
- element, returnedFrom);
63
- }
64
- assert (f is ParameterizedType || f is TypeParameterType );
65
- // TODO(jcollins-g): strip out all the cruft that's accumulated
66
- // here for non-generic type aliases.
67
- var isGenericTypeAlias = f.alias? .element != null && f is ! InterfaceType ;
68
- if (f is FunctionType ) {
69
- assert (f is ParameterizedType );
70
- // This is an indication we have an extremely out of date analyzer....
71
- assert (
72
- ! isGenericTypeAlias, 'should never occur: out of date analyzer?' );
73
- // And finally, delete this case and its associated class
74
- // after https://dart-review.googlesource.com/c/sdk/+/201520
75
- // is in all published versions of analyzer this version of dartdoc
76
- // is compatible with.
77
- return CallableElementType (
78
- f, library, packageGraph, element, returnedFrom);
79
- } else if (isGenericTypeAlias) {
80
- return GenericTypeAliasElementType (f as TypeParameterType , library,
81
- packageGraph, element, returnedFrom);
82
- }
83
- if (f is TypeParameterType ) {
84
- return TypeParameterElementType (
85
- f, library, packageGraph, element, returnedFrom);
86
- }
87
- assert (f is ParameterizedType );
88
- return ParameterizedElementType (
55
+ }
56
+ // [DefinedElementType]s.
57
+ var element = packageGraph.modelBuilder.fromElement (fElement);
58
+ // [TypeAliasElement.aliasElement] has different implications.
59
+ // In that case it is an actual type alias of some kind (generic
60
+ // or otherwise. Here however aliasElement signals that this is a
61
+ // type referring to an alias.
62
+ if (f is ! TypeAliasElement && f.alias? .element != null ) {
63
+ return AliasedElementType (
89
64
f as ParameterizedType , library, packageGraph, element, returnedFrom);
90
65
}
66
+ assert (f is ParameterizedType || f is TypeParameterType );
67
+ // TODO(jcollins-g): strip out all the cruft that's accumulated
68
+ // here for non-generic type aliases.
69
+ var isGenericTypeAlias = f.alias? .element != null && f is ! InterfaceType ;
70
+ if (f is FunctionType ) {
71
+ assert (f is ParameterizedType );
72
+ // This is an indication we have an extremely out of date analyzer....
73
+ assert (! isGenericTypeAlias, 'should never occur: out of date analyzer?' );
74
+ // And finally, delete this case and its associated class
75
+ // after https://dart-review.googlesource.com/c/sdk/+/201520
76
+ // is in all published versions of analyzer this version of dartdoc
77
+ // is compatible with.
78
+ return CallableElementType (
79
+ f, library, packageGraph, element, returnedFrom);
80
+ } else if (isGenericTypeAlias) {
81
+ return GenericTypeAliasElementType (
82
+ f as TypeParameterType , library, packageGraph, element, returnedFrom);
83
+ }
84
+ if (f is TypeParameterType ) {
85
+ return TypeParameterElementType (
86
+ f, library, packageGraph, element, returnedFrom);
87
+ }
88
+ assert (f is ParameterizedType );
89
+ return ParameterizedElementType (
90
+ f as ParameterizedType , library, packageGraph, element, returnedFrom);
91
91
}
92
92
93
93
bool get canHaveParameters => false ;
@@ -260,7 +260,7 @@ class AliasedElementType extends ParameterizedElementType with Aliased {
260
260
ParameterizedType get type;
261
261
262
262
/// Parameters, if available, for the underlying typedef.
263
- List <Parameter > get aliasedParameters =>
263
+ late final List <Parameter > aliasedParameters =
264
264
modelElement.isCallable ? modelElement.parameters : [];
265
265
266
266
@override
@@ -298,7 +298,7 @@ abstract class DefinedElementType extends ElementType {
298
298
this .modelElement, ElementType ? returnedFrom)
299
299
: super (type, library, packageGraph, returnedFrom);
300
300
301
- Element get element => modelElement.element;
301
+ Element get element => modelElement.element! ;
302
302
303
303
@override
304
304
String get name => type.element! .name! ;
@@ -372,7 +372,7 @@ abstract class DefinedElementType extends ElementType {
372
372
modelElement.referenceParents;
373
373
374
374
@override
375
- Iterable <CommentReferable > get referenceGrandparentOverrides =>
375
+ Iterable <CommentReferable >? get referenceGrandparentOverrides =>
376
376
modelElement.referenceGrandparentOverrides;
377
377
378
378
@internal
0 commit comments