@@ -947,6 +947,7 @@ abstract class ModelElement extends Canonicalization
947
947
.renderLinkedParams (parameters, showMetadata: false , showNames: false );
948
948
949
949
ElementType get modelType {
950
+ var element = this .element;
950
951
if (_modelType == null ) {
951
952
// TODO(jcollins-g): Need an interface for a "member with a type" (or changed object model).
952
953
if (_originalMember != null &&
@@ -962,13 +963,16 @@ abstract class ModelElement extends Canonicalization
962
963
_modelType = ElementType .from (
963
964
(_originalMember as ParameterMember ).type, library, packageGraph);
964
965
}
965
- } else if (element is ExecutableElement ||
966
- element is FunctionTypedElement ||
967
- element is ParameterElement ||
968
- element is TypeDefiningElement ||
969
- element is PropertyInducingElement ) {
970
- _modelType =
971
- ElementType .from ((element as dynamic ).type, library, packageGraph);
966
+ } else if (element is ClassElement ) {
967
+ _modelType = ElementType .from (element.thisType, library, packageGraph);
968
+ } else if (element is FunctionTypedElement ) {
969
+ _modelType = ElementType .from (element.type, library, packageGraph);
970
+ } else if (element is ParameterElement ) {
971
+ _modelType = ElementType .from (element.type, library, packageGraph);
972
+ } else if (element is PropertyInducingElement ) {
973
+ _modelType = ElementType .from (element.type, library, packageGraph);
974
+ } else {
975
+ throw UnimplementedError ('(${element .runtimeType }) $element ' );
972
976
}
973
977
}
974
978
return _modelType;
0 commit comments