@@ -10,6 +10,7 @@ import 'package:analyzer/source/line_info.dart';
1010import 'package:analyzer/src/dart/element/element.dart' ;
1111import 'package:dartdoc/src/model/model.dart' ;
1212import 'package:dartdoc/src/utils.dart' ;
13+ import 'package:dartdoc/src/warnings.dart' ;
1314
1415/// Mixin for top-level variables and fields (aka properties)
1516mixin GetterSetterCombo on ModelElement {
@@ -47,14 +48,13 @@ mixin GetterSetterCombo on ModelElement {
4748
4849 String linkifyConstantValue (String original) {
4950 if (constantInitializer is ! InstanceCreationExpression ) return original;
50- String constructorName = (constantInitializer as InstanceCreationExpression )
51- .constructorName
52- .toString ();
53- Element staticElement =
54- (constantInitializer as InstanceCreationExpression ).staticElement;
55- assert (staticElement != null ,
56- '${original } should be able to be resolved but an analysis error prevents this' );
57- if (staticElement == null ) return original;
51+ var creationExpression = constantInitializer as InstanceCreationExpression ;
52+ String constructorName = creationExpression.constructorName.toString ();
53+ Element staticElement = creationExpression.staticElement;
54+ if (staticElement == null ) {
55+ warn (PackageWarning .missingConstantConstructor, message: constructorName);
56+ return original;
57+ }
5858 Constructor target = ModelElement .fromElement (staticElement, packageGraph);
5959 Class targetClass = target.enclosingElement;
6060 // TODO(jcollins-g): this logic really should be integrated into Constructor,
0 commit comments