data: removed java import errors
* removed error recording when import not found because of false positives
This commit is contained in:
@@ -19,6 +19,7 @@ import com.github.javaparser.ast.comments.LineComment;
|
||||
import com.github.javaparser.ast.expr.ArrayInitializerExpr;
|
||||
import com.github.javaparser.ast.expr.MethodCallExpr;
|
||||
import com.github.javaparser.ast.expr.NameExpr;
|
||||
import com.github.javaparser.ast.expr.QualifiedNameExpr;
|
||||
import com.github.javaparser.ast.expr.VariableDeclarationExpr;
|
||||
import com.github.javaparser.ast.stmt.BlockStmt;
|
||||
import com.github.javaparser.ast.stmt.SwitchStmt;
|
||||
@@ -32,6 +33,7 @@ import com.github.javaparser.ast.PackageDeclaration;
|
||||
import com.github.javaparser.ast.TypeParameter;
|
||||
|
||||
import me.tomassetti.symbolsolver.javaparsermodel.JavaParserFacade;
|
||||
import me.tomassetti.symbolsolver.javaparsermodel.JavaParserFactory;
|
||||
import me.tomassetti.symbolsolver.javaparsermodel.UnsolvedSymbolException;
|
||||
import me.tomassetti.symbolsolver.javaparsermodel.declarations.JavaParserMethodDeclaration;
|
||||
import me.tomassetti.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration;
|
||||
@@ -388,6 +390,45 @@ public class JavaAstVisitor extends JavaAstVisitorAdapter
|
||||
{
|
||||
importedDeclName = JavaDeclNameResolver.getQualifiedDeclName(symbolReference.getCorrespondingDeclaration(), m_typeSolver);
|
||||
}
|
||||
|
||||
/*
|
||||
else
|
||||
{
|
||||
// TODO: handle import of static field or method
|
||||
|
||||
if (nameExpr instanceof QualifiedNameExpr)
|
||||
{
|
||||
String qName = nameExpr.toString();
|
||||
int typeNameEndIndex = qName.lastIndexOf('.');
|
||||
if (typeNameEndIndex != -1)
|
||||
{
|
||||
String typeName = qName.substring(0, typeNameEndIndex);
|
||||
String memberName = qName.substring(typeNameEndIndex + 1);
|
||||
|
||||
me.tomassetti.symbolsolver.model.declarations.TypeDeclaration ref = m_typeSolver.solveType(typeName);
|
||||
for (me.tomassetti.symbolsolver.model.declarations.MethodDeclaration methodDecl: ref.getDeclaredMethods()) // look for method
|
||||
{
|
||||
if (methodDecl.getName().equals(memberName))
|
||||
{
|
||||
System.out.println("methodDeclNamasdasdasdasd: " + methodDecl.getName());
|
||||
importedDeclName = JavaDeclNameResolver.getQualifiedDeclName(methodDecl, m_typeSolver);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (importedDeclName == null && ref.hasField(memberName)) // look for field
|
||||
{
|
||||
JavaDeclName importedTypeDeclName = JavaDeclNameResolver.getQualifiedDeclName(ref, m_typeSolver);
|
||||
if (importedTypeDeclName != null)
|
||||
{
|
||||
importedDeclName = new JavaDeclName(memberName);
|
||||
importedDeclName.setParent(importedTypeDeclName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
if (importedDeclName != null)
|
||||
{
|
||||
@@ -403,10 +444,13 @@ public class JavaAstVisitor extends JavaAstVisitorAdapter
|
||||
}
|
||||
else
|
||||
{
|
||||
// uncomment this when there are no errors where there shouldn't be
|
||||
/*
|
||||
JavaIndexer.recordError(
|
||||
m_callbackId, "Import not found.", true, true,
|
||||
nameExpr.getBeginLine(), nameExpr.getBeginColumn(), nameExpr.getEndLine(), nameExpr.getEndColumn()
|
||||
);
|
||||
*/
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.github.javaparser.ast.expr.QualifiedNameExpr;
|
||||
|
||||
import me.tomassetti.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration;
|
||||
import me.tomassetti.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration;
|
||||
import me.tomassetti.symbolsolver.javaparsermodel.declarations.JavaParserMethodDeclaration;
|
||||
import me.tomassetti.symbolsolver.model.resolution.TypeSolver;
|
||||
|
||||
public class JavaDeclNameResolver extends JavaNameResolver
|
||||
@@ -167,6 +168,72 @@ public class JavaDeclNameResolver extends JavaNameResolver
|
||||
return declName;
|
||||
}
|
||||
|
||||
// TODO: move this to JavaSymbolSolverDeclNameResolver
|
||||
/*
|
||||
public static JavaDeclName getQualifiedDeclName(me.tomassetti.symbolsolver.model.declarations.MethodDeclaration methodDecl, TypeSolver typeSolver)
|
||||
{
|
||||
return getQualifiedDeclName(methodDecl, typeSolver, null);
|
||||
}
|
||||
|
||||
public static JavaDeclName getQualifiedDeclName(me.tomassetti.symbolsolver.model.declarations.MethodDeclaration methodDecl, TypeSolver typeSolver, ArrayList<BodyDeclaration> ignoredContexts)
|
||||
{
|
||||
JavaDeclNameResolver resolver = new JavaDeclNameResolver(typeSolver, ignoredContexts);
|
||||
return resolver.getQualifiedDeclName(methodDecl);
|
||||
}
|
||||
|
||||
public JavaDeclName getQualifiedDeclName(me.tomassetti.symbolsolver.model.declarations.MethodDeclaration methodDecl)
|
||||
{
|
||||
JavaDeclName declName = null;
|
||||
if (methodDecl != null)
|
||||
{
|
||||
MethodDeclaration decl = null;
|
||||
if (methodDecl instanceof JavaParserMethodDeclaration)
|
||||
{
|
||||
decl = ((JavaParserMethodDeclaration)methodDecl).getWrappedNode();
|
||||
}
|
||||
else
|
||||
{
|
||||
methodDecl.declaringType();
|
||||
|
||||
|
||||
String name = methodDecl.getName();
|
||||
|
||||
List<me.tomassetti.symbolsolver.model.resolution.TypeParameter> typeParameters = methodDecl.getTypeParameters();
|
||||
List<String> typeParameterNames = new ArrayList<>();
|
||||
if (typeParameters != null && typeParameters.size() > 0)
|
||||
{
|
||||
for (int i = 0; i < typeParameters.size(); i++)
|
||||
{
|
||||
typeParameterNames.add(typeParameters.get(i).getName());
|
||||
}
|
||||
}
|
||||
|
||||
JavaTypeName returnTypeName = methodDecl.getReturnType().;
|
||||
|
||||
List<JavaTypeName> parameterNames = new ArrayList<>();
|
||||
for (Parameter parameter: decl.getParameters())
|
||||
{
|
||||
parameterNames.add(JavaTypeNameResolver.getQualifiedTypeName(parameter.getType(), m_typeSolver, m_ignoredContexts));
|
||||
}
|
||||
|
||||
return new JavaDeclName(name, typeParameterNames, returnTypeName, parameterNames);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
// todo: implement for JavaParserEnumDeclaration.ValuesMethod
|
||||
|
||||
if (decl != null)
|
||||
{
|
||||
declName = JavaDeclNameResolver.getQualifiedDeclName(decl, m_typeSolver, m_ignoredContexts);
|
||||
}
|
||||
}
|
||||
return declName;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
public JavaDeclName getDeclName(VariableDeclarator decl)
|
||||
{
|
||||
return new JavaDeclName(decl.getId().getName());
|
||||
|
||||
Reference in New Issue
Block a user