danfickle / danfickle/cpp-to-java-source-converter

CPPClassType cannot be cast to ICPPConstructor

Abierto
#3 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Java
Estrellas
51
Forks
33
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

First of all, not sure if I am setting this up correctly, as there were no instructions really. I created a folder "\home\daniel\workspace\cpp-to-java-source-converter" and put the repository (master branch) there. I then ran "mvn clean package". I found I needed to create a directory called "crap" under the root directory and put an empty file "test-statements.java" there, as this is expected. I changed to the target directory to run:

`D:\home\daniel\workspace\cpp-to-java-source-converter\target>java -cp cpp-to-java-source-converter-0.1-SNAPSHOT.jar;..\lib\* com.github.danfickle.cpptojavasourceconverter.Main`

Secondly, it doesn't seem to work, due to a class cast exception. Here is the output I get:

```
D:\home\daniel\workspace\cpp-to-java-source-converter\target>java -cp cpp-to-jav
a-source-converter-0.1-SNAPSHOT.jar;..\lib\* com.github.danfickle.cpptojavasourc
econverter.Main
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-bitfield.cp
p
org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassType cannot be cast to org.
eclipse.cdt.core.dom.ast.cpp.ICPPConstructor
java.lang.ClassCastException: org.eclipse.cdt.internal.core.dom.parser.cpp.CPPCl
assType cannot be cast to org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor
at com.github.danfickle.cpptojavasourceconverter.ExpressionEvaluator.eva
lExprNew(ExpressionEvaluator.java:162)
at com.github.danfickle.cpptojavasourceconverter.ExpressionEvaluator.eva
l1Expr(ExpressionEvaluator.java:67)
at com.github.danfickle.cpptojavasourceconverter.InitializationManager.e
val1Init(InitializationManager.java:76)
at com.github.danfickle.cpptojavasourceconverter.SourceConverter.evaluat
eDeclarationReturnInitializers(SourceConverter.java:282)
at com.github.danfickle.cpptojavasourceconverter.StmtEvaluator.evalStmt(
StmtEvaluator.java:141)
at com.github.danfickle.cpptojavasourceconverter.StmtEvaluator.evalStmt(
StmtEvaluator.java:123)
at com.github.danfickle.cpptojavasourceconverter.StmtEvaluator.eval1Stmt
(StmtEvaluator.java:25)
at com.github.danfickle.cpptojavasourceconverter.FunctionManager.evalFun
ction(FunctionManager.java:162)
at com.github.danfickle.cpptojavasourceconverter.SourceConverter.evalDec
laration(SourceConverter.java:299)
at com.github.danfickle.cpptojavasourceconverter.Traverser.traverse(Trav
erser.java:50)
at com.github.danfickle.cpptojavasourceconverter.Main.main(Main.java:37)

In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
Failure to determine type of expression
In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-operator-ov
erloading.cpp
org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassType cannot be cast to org.
eclipse.cdt.core.dom.ast.cpp.ICPPConstructor
java.lang.ClassCastException: org.eclipse.cdt.internal.core.dom.parser.cpp.CPPCl
assType cannot be cast to org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor
at com.github.danfickle.cpptojavasourceconverter.ExpressionEvaluator.eva
lExprNew(ExpressionEvaluator.java:162)
at com.github.danfickle.cpptojavasourceconverter.ExpressionEvaluator.eva
l1Expr(ExpressionEvaluator.java:67)
at com.github.danfickle.cpptojavasourceconverter.InitializationManager.e
val1Init(InitializationManager.java:76)
at com.github.danfickle.cpptojavasourceconverter.SourceConverter.evaluat
eDeclarationReturnInitializers(SourceConverter.java:282)
at com.github.danfickle.cpptojavasourceconverter.StmtEvaluator.evalStmt(
StmtEvaluator.java:141)
at com.github.danfickle.cpptojavasourceconverter.StmtEvaluator.evalStmt(
StmtEvaluator.java:123)
at com.github.danfickle.cpptojavasourceconverter.StmtEvaluator.eval1Stmt
(StmtEvaluator.java:25)
at com.github.danfickle.cpptojavasourceconverter.FunctionManager.evalFun
ction(FunctionManager.java:162)
at com.github.danfickle.cpptojavasourceconverter.SourceConverter.evalDec
laration(SourceConverter.java:299)
at com.github.danfickle.cpptojavasourceconverter.Traverser.traverse(Trav
erser.java:50)
at com.github.danfickle.cpptojavasourceconverter.Main.main(Main.java:37)

In: D:\home\daniel\workspace\cpp-to-java-source-converter\tests\test-expressions
.cpp
org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassType cannot be cast to org.
eclipse.cdt.core.dom.ast.cpp.ICPPConstructor
java.lang.ClassCastException: org.eclipse.cdt.internal.core.dom.parser.cpp.CPPCl
assType cannot be cast to org.eclipse.cdt.core.dom.ast.cpp.ICPPConstructor
at com.github.danfickle.cpptojavasourceconverter.ExpressionEvaluator.eva
lExprNew(ExpressionEvaluator.java:143)
at com.github.danfickle.cpptojavasourceconverter.ExpressionEvaluator.eva
l1Expr(ExpressionEvaluator.java:67)
at com.github.danfickle.cpptojavasourceconverter.ExpressionEvaluator.eva
lExprBinary(ExpressionEvaluator.java:1158)
at com.github.danfickle.cpptojavasourceconverter.ExpressionEvaluator.eva
l1Expr(ExpressionEvaluator.java:59)
at com.github.danfickle.cpptojavasourceconverter.StmtEvaluator.evalStmt(
StmtEvaluator.java:177)
at com.github.danfickle.cpptojavasourceconverter.StmtEvaluator.evalStmt(
StmtEvaluator.java:123)
at com.github.danfickle.cpptojavasourceconverter.StmtEvaluator.eval1Stmt
(StmtEvaluator.java:25)
at com.github.danfickle.cpptojavasourceconverter.FunctionManager.evalFun
ction(FunctionManager.java:162)
at com.github.danfickle.cpptojavasourceconverter.SourceConverter.evalDec
laration(SourceConverter.java:299)
at com.github.danfickle.cpptojavasourceconverter.SourceConverter.evalDec
lSpecifier(SourceConverter.java:668)
at com.github.danfickle.cpptojavasourceconverter.SourceConverter.evalDec
laration(SourceConverter.java:313)
at com.github.danfickle.cpptojavasourceconverter.Traverser.traverse(Trav
erser.java:50)
at com.github.danfickle.cpptojavasourceconverter.Main.main(Main.java:37)

D:\home\daniel\workspace\cpp-to-java-source-converter\target>
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Reproduce el fallo con `mvn clean package` y el punto de entrada `com.github.danfickle.cpptojavasourceconverter.Main`. Inspecciona `ExpressionEvaluator.java` en `evalExprNew`, en las líneas 143 y 162, y compara después los fallos de `tests/test-bitfield.cpp`, `tests/test-operator-overloading.cpp` y `tests/test-expressions.cpp`. Se considera terminado cuando estas entradas ya no producen la `ClassCastException` indicada ni fallos repetidos del tipo de expresión.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp, java
Área
compilers
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.