Commit d1ccdf38 authored by Carlos Galindo's avatar Carlos Galindo
Browse files

fix! nameExpr prefixing now catches UnsolvedSymbolException

parent 6ad07f6d
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -128,7 +128,6 @@ public abstract class InterproceduralActionFinder<A extends VariableAction> exte
                else if (r1.isField() && r2.isParameter())
                    return 1;
            } catch (UnsolvedSymbolException e) {
                Logger.log("Could not resolve a given name expression, it may be a type: " + e.getName());
                if (r1 == null)
                    return 1;
                else if (r2 == null)
+10 −4
Original line number Diff line number Diff line
@@ -11,10 +11,12 @@ import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
import com.github.javaparser.ast.stmt.ExpressionStmt;
import com.github.javaparser.ast.stmt.ForEachStmt;
import com.github.javaparser.resolution.Resolvable;
import com.github.javaparser.resolution.UnsolvedSymbolException;
import com.github.javaparser.resolution.declarations.ResolvedMethodLikeDeclaration;
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserFieldDeclaration;
import es.upv.mist.slicing.graphs.GraphNodeContentVisitor;
import es.upv.mist.slicing.utils.ASTUtils;
import es.upv.mist.slicing.utils.Logger;
import es.upv.mist.slicing.utils.QuadConsumer;
import es.upv.mist.slicing.utils.TriConsumer;

@@ -282,9 +284,13 @@ public class VariableVisitor extends GraphNodeContentVisitor<VariableVisitor.Act
    protected String getRealName(Expression n) {
        if (n.isNameExpr()) { // Add a prefix to the name ("this." or "CLASS.this.") when "n" is a NameExpr
            NameExpr en = n.asNameExpr();
            try {
                String prefix = this.getNamePrefix(en); // Add a prefix to the name ("this." or "CLASS.this.")
                if (!prefix.isEmpty())
                    return prefix + n.toString();
            } catch (UnsolvedSymbolException e) {
                Logger.log("Unable to resolve symbol " + e.getName());
            }
        }
        return n.toString();
    }