Code2Graph
Code2Graph copied to clipboard
bug: gen.java | QUALIFIED_NAME 类型的 ASTNode 节点缺少 reference 边连接类静态变量
对于以下情况 gen.java 不能处理:
src/Main.java
public static void main(String[] args) {
...
Global.LOGS.add("TEST");
}
src/Global.java
public class Global {
public static List<String> LOGS = new ArrayList<>(Arrays.asList("<GLOBAL LOGS>", "--------------"));
...
}
Main.java的 Global.LOGS 链接不到 Global.java 的静态变量 LOGS
原因是 gen.java 里的 edu.pku.code2graph.gen.jdt.ExpressionVisitor.java 第 1095 行:
case ASTNode.QUALIFIED_NAME:
{
QualifiedName name = (QualifiedName) exp;
root.setType(NodeType.QUALIFIED_NAME);
root.setUri(createIdentifier(name.getFullyQualifiedName()));
GraphUtil.addNode(root);
break;
}
缺少对 ((QualifiedName) exp).getName() 这个SimpleName节点的处理
解决方案:
