Canonical type of arguments in method Qname\n That doesn't work for now because of Typeres. Be sure to edit the tests

This commit is contained in:
oowekyala
2017-05-26 14:56:49 +02:00
parent 909bb60043
commit b09cde6d03
4 changed files with 13 additions and 8 deletions

View File

@ -55,7 +55,8 @@ public class ASTConstructorDeclaration extends AbstractJavaAccessNode implements
String[] types = new String[numParams]; String[] types = new String[numParams];
for (int i = 0; i < numParams; i++) { for (int i = 0; i < numParams; i++) {
types[i] = params.jjtGetChild(i).getFirstDescendantOfType(ASTType.class).getTypeImage(); // Needs typeres ! TODO
types[i] = params.jjtGetChild(i).getFirstDescendantOfType(ASTType.class).getCanonicalTypeName();
} }

View File

@ -125,10 +125,9 @@ public class ASTMethodDeclaration extends AbstractJavaAccessNode implements DFAG
String[] types = new String[numParams]; String[] types = new String[numParams];
for (int i = 0; i < numParams; i++) { for (int i = 0; i < numParams; i++) {
types[i] = params.jjtGetChild(i).getFirstDescendantOfType(ASTType.class).getTypeImage(); types[i] = params.jjtGetChild(i).getFirstDescendantOfType(ASTType.class).getCanonicalTypeName();
} }
qualifiedName = QualifiedName.makeOperationOf(parent, getMethodName(), types); qualifiedName = QualifiedName.makeOperationOf(parent, getMethodName(), types);
return qualifiedName; return qualifiedName;
} }

View File

@ -31,4 +31,9 @@ public abstract class AbstractJavaTypeNode extends AbstractJavaNode implements T
public void setType(Class<?> type) { public void setType(Class<?> type) {
this.type = type; this.type = type;
} }
public String getCanonicalTypeName() {
return type.getCanonicalName();
}
} }

View File

@ -133,15 +133,15 @@ public class QualifiedNameTest extends ParserTst {
public void testConstructorWithParams() { public void testConstructorWithParams() {
final String TEST = "package bar; class Bzaz{ public Bzaz(int j, String k){}}"; final String TEST = "package bar; class Bzaz{ public Bzaz(int j, String k){}}";
Set<ASTConstructorDeclaration> nodes = getNodes(ASTConstructorDeclaration.class, Set<ASTConstructorDeclaration> nodes = getNodes(ASTConstructorDeclaration.class,
TEST); TEST);
for (ASTConstructorDeclaration declaration : nodes) { for (ASTConstructorDeclaration declaration : nodes) {
QualifiableNode.QualifiedName qname = declaration.getQualifiedName(); QualifiableNode.QualifiedName qname = declaration.getQualifiedName();
assertEquals("bar.Bzaz#Bzaz(int,String)", qname.toString()); // TODO fails due to typeres
assertEquals("bar.Bzaz#Bzaz(int,java.lang.String)", qname.toString());
assertNotNull(qname.getOperation()); assertNotNull(qname.getOperation());
assertEquals("Bzaz(int,String)", qname.getOperation()); assertEquals("Bzaz(int,java.lang.String)", qname.getOperation());
} }
} }
@ -160,7 +160,7 @@ public class QualifiedNameTest extends ParserTst {
} }
@Test @Test
public void testConstructorOverload() { public void testConstructorOverload() { // TODO fails due to typeres
final String TEST = "package bar; class Bzaz{ public Bzaz(int j) {} public Bzaz(int j, String k){}}"; final String TEST = "package bar; class Bzaz{ public Bzaz(int j) {} public Bzaz(int j, String k){}}";
Set<ASTConstructorDeclaration> nodes = getNodes(ASTConstructorDeclaration.class, Set<ASTConstructorDeclaration> nodes = getNodes(ASTConstructorDeclaration.class,
@ -171,7 +171,7 @@ public class QualifiedNameTest extends ParserTst {
} }
@Test @Test
public void testMethodOverload() { public void testMethodOverload() { // TODO fails due to typeres
final String TEST = "package bar; class Bzaz{ public void foo(String j) {} " + final String TEST = "package bar; class Bzaz{ public void foo(String j) {} " +
"public void foo(int j){} public void foo(double k){}}"; "public void foo(int j){} public void foo(double k){}}";