https://issues.dlang.org/show_bug.cgi?id=23945
--- Comment #2 from FeepingCreature <[email protected]> --- As a workaround, sticking this code into AnnotationValue in the original code: size_t toHash() const { return hashOf(annotation_value); } also makes it compile. I think because the hashOf is hidden in a method body, the sema doesn't have to recurse immediately from AnnotationValue into Annotation, which breaks the loop. --
