Closed
Description
Repro instructions:
Check out this repo/branch https://github.com/jakemac53/macros_example/tree/dartdoc-failure
Using a custom built recent SDK:
- Run
dart pub upgrade
. You may want to delete thepubspec_overrides.yaml
file first, or change the paths in it to point at your own local SDK. - Run
dart --enable-experiment=macros doc .
You will observe two issues:
- It won't exit properly, cc @scheglov should be able to comment on how to shut down the analysis context
- It will crash, with an exception like the following:
Bad state: The target must be a declaration, not an augmentation.
#0 InterfaceElementExtension.augmentedOfDeclaration (package:analyzer/src/dart/element/extensions.dart:142:7)
dart-lang/sdk#1 ClassHierarchy._getHierarchy (package:analyzer/src/dart/element/class_hierarchy.dart:38:31)
dart-lang/sdk#2 ClassHierarchy.implementedInterfaces (package:analyzer/src/dart/element/class_hierarchy.dart:22:12)
dart-lang/sdk#3 InterfaceElementImpl.allSupertypes (package:analyzer/src/dart/element/element.dart:3456:43)
dart-lang/sdk#4 Method.overriddenElement (package:dartdoc/src/model/method.dart:116:26)
dart-lang/sdk#5 DocumentationComment.documentationFrom.<anonymous closure> (package:dartdoc/src/model/documentation_comment.dart:58:46)
dart-lang/sdk#6 DocumentationComment.documentationFrom (package:dartdoc/src/model/documentation_comment.dart:65:8)
dart-lang/sdk#7 PackageGraph._precacheLocalDocs (package:dartdoc/src/model/package_graph.dart:178:31)
dart-lang/sdk#8 PackageGraph.initializePackageGraph (package:dartdoc/src/model/package_graph.dart:132:23)
dart-lang/sdk#9 PubPackageBuilder.buildPackageGraph (package:dartdoc/src/model/package_builder.dart:90:20)
<asynchronous suspension>
dart-lang/sdk#10 Dartdoc.generateDocsBase (package:dartdoc/src/dartdoc.dart:189:24)
<asynchronous suspension>
dart-lang/sdk#11 Dartdoc.generateDocs (package:dartdoc/src/dartdoc.dart:233:24)
<asynchronous suspension>
dart-lang/sdk#12 Dartdoc.executeGuarded.<anonymous closure> (package:dartdoc/src/dartdoc.dart:265:9)
<asynchronous suspension>
Note that I was running this to see if I could see the generated toJson/fromJson members in the docs.
cc @srawlins