@@ -13,6 +13,15 @@ import 'package:dartdoc/src/model/model.dart';
13
13
import 'package:dartdoc/src/model/model_object_builder.dart' ;
14
14
import 'package:dartdoc/src/render/element_type_renderer.dart' ;
15
15
16
+ mixin ElementTypeBuilderImpl implements ElementTypeBuilder {
17
+ PackageGraph get packageGraph;
18
+
19
+ @override
20
+ ElementType typeFrom (DartType f, Library library,
21
+ {ElementType returnedFrom}) =>
22
+ ElementType ._from (f, library, packageGraph, returnedFrom: returnedFrom);
23
+ }
24
+
16
25
/// Base class representing a type in Dartdoc. It wraps a [DartType] , and
17
26
/// may link to a [ModelElement] .
18
27
abstract class ElementType extends Privacy
@@ -26,7 +35,7 @@ abstract class ElementType extends Privacy
26
35
27
36
ElementType (this ._type, this .library, this .packageGraph, this .returnedFrom);
28
37
29
- factory ElementType .from (
38
+ factory ElementType ._from (
30
39
DartType f, Library library, PackageGraph packageGraph,
31
40
{ElementType returnedFrom}) {
32
41
if (f.element == null ||
@@ -215,7 +224,7 @@ class ParameterizedElementType extends DefinedElementType with Rendered {
215
224
@override
216
225
Iterable <ElementType > get typeArguments =>
217
226
_typeArguments ?? = type.typeArguments
218
- .map ((f) => ElementType . from (f, library, packageGraph ))
227
+ .map ((f) => modelBuilder. typeFrom (f, library))
219
228
.toList (growable: false );
220
229
}
221
230
@@ -234,7 +243,7 @@ mixin Aliased implements ElementType, ModelBuilderInterface {
234
243
Iterable <ElementType > _aliasArguments;
235
244
Iterable <ElementType > get aliasArguments =>
236
245
_aliasArguments ?? = type.alias.typeArguments
237
- .map ((f) => ElementType . from (f, library, packageGraph ))
246
+ .map ((f) => modelBuilder. typeFrom (f, library))
238
247
.toList (growable: false );
239
248
}
240
249
@@ -381,7 +390,7 @@ mixin Callable implements ElementType {
381
390
382
391
ElementType _returnType;
383
392
ElementType get returnType {
384
- _returnType ?? = ElementType . from (type.returnType, library, packageGraph );
393
+ _returnType ?? = modelBuilder. typeFrom (type.returnType, library);
385
394
return _returnType;
386
395
}
387
396
@@ -432,7 +441,7 @@ class CallableElementType extends DefinedElementType with Rendered, Callable {
432
441
@override
433
442
Iterable <ElementType > get typeArguments =>
434
443
_typeArguments ?? = (type.alias? .typeArguments ?? [])
435
- .map ((f) => ElementType . from (f, library, packageGraph ))
444
+ .map ((f) => modelBuilder. typeFrom (f, library))
436
445
.toList (growable: false );
437
446
}
438
447
0 commit comments