Skip to content

Conversation

@MercerK
Copy link

@MercerK MercerK commented Jul 28, 2022

Hey! I want to start off by stating that this library is amazing. Thank you for your hard work! It is an absolute game changer.

When I was trying to build it against io.papermc.paper:paper-api:1.19.1-R0.1-SNAPSHOT, it was failing specifically at https://jd.papermc.io/paper/1.19/io/papermc/paper/event/world/StructuresLocateEvent.html. It seems that JavaParser doesn't understand record just yet (javaparser/javaparser#2446, javaparser/javaparser#3556).

I went ahead and added an additional catch, so the tool can still build and updated the JavaParser dependency.

With these changes, I was able to produce:

image

MercerK added 2 commits July 27, 2022 23:00
* StructuresLocateEvent leverages a `record` which isn't supported by JavaParser just yet.
@MercerK
Copy link
Author

MercerK commented Jul 28, 2022

Copy of original error.

Exception in thread "main" java.lang.IllegalArgumentException: com.github.javaparser.ast.body.RecordDeclaration
        at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory.toTypeDeclaration(JavaParserFactory.java:190)
        at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeDeclaration(JavaParserFacade.java:797)
        at com.github.javaparser.symbolsolver.javaparsermodel.contexts.JavaParserTypeDeclarationAdapter.solveType(JavaParserTypeDeclarationAdapter.java:82)   
        at com.github.javaparser.symbolsolver.javaparsermodel.contexts.ClassOrInterfaceDeclarationContext.solveType(ClassOrInterfaceDeclarationContext.java:106)
        at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage(JavaParserFacade.java:680)
        at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert(JavaParserFacade.java:740)
        at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert(JavaParserFacade.java:736)
        at com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserFieldDeclaration.getType(JavaParserFieldDeclaration.java:63)
        at io.github.bensku.tsbind.AstGenerator.processFieldValue(AstGenerator.java:437)
        at io.github.bensku.tsbind.AstGenerator.processField(AstGenerator.java:404)
        at io.github.bensku.tsbind.AstGenerator.processMember(AstGenerator.java:154)
        at io.github.bensku.tsbind.AstGenerator.processType(AstGenerator.java:259)
        at io.github.bensku.tsbind.AstGenerator.parseType(AstGenerator.java:89)        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)    
        at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
        at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
        at io.github.bensku.tsbind.cli.BindGenApp.main(BindGenApp.java:127)

@bensku
Copy link
Owner

bensku commented Sep 15, 2022

Apologies for slow response. I would prefer to waiting for JavaParser to fix their record support (or alternative, find a workaround that doesn't just ignore records). Since I don't distribute binaries, users need to compile it themself in any case.

@bensku bensku mentioned this pull request Sep 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants