forked from JavaTX/JavaCompilerCore
Hotfix für Typparsen Problem
This commit is contained in:
parent
ad42282485
commit
7e3fca2da9
@ -22,18 +22,20 @@ import java.util.List;
|
|||||||
public class TypeGenerator {
|
public class TypeGenerator {
|
||||||
|
|
||||||
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.UnannClassOrInterfaceTypeContext unannClassOrInterfaceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.UnannClassOrInterfaceTypeContext unannClassOrInterfaceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
String name;
|
|
||||||
if(unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType() != null){
|
|
||||||
name = unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType().unannClassType_lfno_unannClassOrInterfaceType().Identifier().getText();
|
|
||||||
}
|
|
||||||
Java8Parser.TypeArgumentsContext arguments;
|
Java8Parser.TypeArgumentsContext arguments;
|
||||||
if(unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType() != null){
|
if(unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType() != null){
|
||||||
name = unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType().Identifier().getText();
|
|
||||||
arguments = unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType().typeArguments();
|
arguments = unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType().typeArguments();
|
||||||
}else{// if(unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType() != null){
|
}else{// if(unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType() != null){
|
||||||
name = unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType().unannClassType_lfno_unannClassOrInterfaceType().getText();
|
|
||||||
arguments = unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType().unannClassType_lfno_unannClassOrInterfaceType().typeArguments();
|
arguments = unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType().unannClassType_lfno_unannClassOrInterfaceType().typeArguments();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Problem sind hier die verschachtelten Typen mit verschachtelten Typargumenten
|
||||||
|
* Beispiel: Typ<String>.InnererTyp<Integer>
|
||||||
|
*/
|
||||||
|
String name = unannClassOrInterfaceTypeContext.getText();
|
||||||
|
if(name.contains("<")){
|
||||||
|
name = name.split("<")[0]; //Der Typ ist alles vor den ersten Argumenten
|
||||||
|
}
|
||||||
return convertTypeName(name, arguments, unannClassOrInterfaceTypeContext.getStart(), reg, generics);
|
return convertTypeName(name, arguments, unannClassOrInterfaceTypeContext.getStart(), reg, generics);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
9
test/parser/PackageNameTest.jav
Normal file
9
test/parser/PackageNameTest.jav
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import java.lang.Integer;
|
||||||
|
import java.lang.Comparable;
|
||||||
|
|
||||||
|
class PackageNameTest{
|
||||||
|
java.lang.Integer test(a){return a;}
|
||||||
|
|
||||||
|
Comparable<Integer> test2(a){return a;}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user