From 47d7a3a509c686cf483d828869fd78ca84ee8999 Mon Sep 17 00:00:00 2001 From: malte_langkabel Date: Mon, 3 Oct 2016 12:50:51 +0200 Subject: [PATCH] data: changed name of Java generic type to use name of declaration * changed the name resolution of generic type instantiations to use the name of the type's declaration instead of using the provided type arguments here. * fixed tests --- java_indexer/src/io/coati/ASTDumper.java | 1 + java_indexer/src/io/coati/JavaDeclName.java | 2 +- .../src/io/coati/JavaSymbolSolverTypeNameResolver.java | 3 +++ src/test/JavaParserTestSuite.h | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/java_indexer/src/io/coati/ASTDumper.java b/java_indexer/src/io/coati/ASTDumper.java index d4c7966e..0f4c5d7f 100644 --- a/java_indexer/src/io/coati/ASTDumper.java +++ b/java_indexer/src/io/coati/ASTDumper.java @@ -37,6 +37,7 @@ public class ASTDumper extends JavaAstVisitor{ line += " [" + ((ClassOrInterfaceType)n).getName() + "]"; } + System.out.println(line); } diff --git a/java_indexer/src/io/coati/JavaDeclName.java b/java_indexer/src/io/coati/JavaDeclName.java index 14bd5c6e..5e7a9cd3 100644 --- a/java_indexer/src/io/coati/JavaDeclName.java +++ b/java_indexer/src/io/coati/JavaDeclName.java @@ -126,7 +126,7 @@ public class JavaDeclName return string; } - private String getTypeParameterString() + public String getTypeParameterString() { String string = ""; if (m_typeParameterNames != null && !m_typeParameterNames.isEmpty()) diff --git a/java_indexer/src/io/coati/JavaSymbolSolverTypeNameResolver.java b/java_indexer/src/io/coati/JavaSymbolSolverTypeNameResolver.java index dd158ecf..ba7c9973 100644 --- a/java_indexer/src/io/coati/JavaSymbolSolverTypeNameResolver.java +++ b/java_indexer/src/io/coati/JavaSymbolSolverTypeNameResolver.java @@ -82,6 +82,8 @@ public class JavaSymbolSolverTypeNameResolver extends JavaNameResolver m_ignoredContexts ); + return new JavaTypeName(declName.getName() + declName.getTypeParameterString(), new ArrayList(), declName.getParent()); + /* if (declName != null) { List typeArgumentNames = new ArrayList<>(); @@ -92,6 +94,7 @@ public class JavaSymbolSolverTypeNameResolver extends JavaNameResolver } return new JavaTypeName(declName.getName(), typeArgumentNames, declName.getParent()); } + */ } else if (typeUsage instanceof TypeParameterUsage) { diff --git a/src/test/JavaParserTestSuite.h b/src/test/JavaParserTestSuite.h index 7b02c981..999afe39 100644 --- a/src/test/JavaParserTestSuite.h +++ b/src/test/JavaParserTestSuite.h @@ -769,7 +769,7 @@ public: ); TS_ASSERT_EQUALS(client->typeUses.size(), 1); - TS_ASSERT_EQUALS(client->typeUses[0], "A.t -> A <3:2 3:2>"); + TS_ASSERT_EQUALS(client->typeUses[0], "A.t -> A <3:2 3:2>"); } void test_java_parser_finds_bound_type_of_type_parameter()