diff --git a/lib/src/model/model_function.dart b/lib/src/model/model_function.dart index 4e11225523..68a1cdf52c 100644 --- a/lib/src/model/model_function.dart +++ b/lib/src/model/model_function.dart @@ -13,15 +13,13 @@ class ModelFunction extends ModelFunctionTyped with Categorization { : super(element, library, packageGraph); @override - bool get isStatic { - return _func.isStatic; - } + bool get isStatic => element.isStatic; @override String get name => element.name ?? ''; @override - FunctionElement get _func => (element as FunctionElement); + FunctionElement get element => super.element; } /// A [ModelElement] for a [FunctionTypedElement] that is part of an @@ -39,19 +37,15 @@ class ModelFunctionTyped extends ModelElement with TypeParameters implements EnclosedElement { @override - List typeParameters = []; + final List typeParameters; ModelFunctionTyped( FunctionTypedElement element, Library library, PackageGraph packageGraph) - : super(element, library, packageGraph, null) { - _calcTypeParameters(); - } - - void _calcTypeParameters() { - typeParameters = _func.typeParameters.map((f) { - return ModelElement.from(f, library, packageGraph) as TypeParameter; - }).toList(); - } + : typeParameters = [ + for (var p in element.typeParameters) + ModelElement.from(p, library, packageGraph), + ], + super(element, library, packageGraph, null); @override ModelElement get enclosingElement => library; @@ -79,6 +73,4 @@ class ModelFunctionTyped extends ModelElement @override DefinedElementType get modelType => super.modelType; - - FunctionTypedElement get _func => (element as FunctionTypedElement); } diff --git a/lib/src/model/top_level_container.dart b/lib/src/model/top_level_container.dart index 32d61fb6bf..89f5a5aaa7 100644 --- a/lib/src/model/top_level_container.dart +++ b/lib/src/model/top_level_container.dart @@ -60,7 +60,7 @@ abstract class TopLevelContainer implements Nameable { Iterable get publicExceptions => model_utils.filterNonPublic(exceptions); - Iterable get publicFunctions => + Iterable get publicFunctions => model_utils.filterNonPublic(functions); Iterable get publicMixins => model_utils.filterNonPublic(mixins); @@ -68,5 +68,6 @@ abstract class TopLevelContainer implements Nameable { Iterable get publicProperties => model_utils.filterNonPublic(properties); - Iterable get publicTypedefs => model_utils.filterNonPublic(typedefs); + Iterable get publicTypedefs => + model_utils.filterNonPublic(typedefs); } diff --git a/lib/src/model/typedef.dart b/lib/src/model/typedef.dart index 1fd3f8b39f..373cb41564 100644 --- a/lib/src/model/typedef.dart +++ b/lib/src/model/typedef.dart @@ -9,7 +9,7 @@ import 'package:dartdoc/src/render/typedef_renderer.dart'; class Typedef extends ModelElement with TypeParameters, Categorization - implements EnclosedElement { + implements EnclosedElement, ModelFunctionTyped { Typedef(FunctionTypeAliasElement element, Library library, PackageGraph packageGraph) : super(element, library, packageGraph, null); @@ -44,11 +44,13 @@ class Typedef extends ModelElement } // Food for mustache. + @override bool get isInherited => false; @override String get kind => 'typedef'; + @override String get linkedReturnType => modelType.createLinkedReturnTypeName(); @override