RFR: 8273408: java.lang.AssertionError: typeSig ERROR on generated class property of record
vromero at openjdk.java.net
Wed Sep 15 01:47:08 UTC 2021
On Tue, 14 Sep 2021 16:14:39 GMT, Guoxiong Li <gli at openjdk.org> wrote:
> Hi all,
> After processing annotation, if new source files are generated, the compiler should re-parse and re-enter the source files so that the type and symbol can keep right. The compiler always holds this convention in the past. But when the feature `record` is added, the convention is broken. In this bug, the compiler doesn't catch or enter the new/good type for record component after processing annotation. So some issues may occur at the later phases.
> This patch fixes the type of the record component so that the phases `Gen` and `ClassWriter` can get the right type. And a test case is added.
> Thanks for taking the time to review.
> Best Regards,
> -- Guoxiong
src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java line 1517:
> 1515: // If the class type of the record component is generated by annotation processor, it should
> 1516: // use the new actual class type and symbol instead of the old dummy ErrorType.
> 1517: // toRemove = rc;
there is dead code here, `toRemove` doesn't seem to be assigned ever, probably you uploaded an intermediate patch?
More information about the compiler-dev