Search in sources :

Example 1 with GoShortVarDeclaration

use of com.goide.psi.GoShortVarDeclaration in project go-lang-idea-plugin by go-lang-plugin-org.

the class GoUsedAsValueInCondition method buildGoVisitor.

@NotNull
@Override
protected GoVisitor buildGoVisitor(@NotNull ProblemsHolder holder, @NotNull LocalInspectionToolSession session) {
    return new GoVisitor() {

        @Override
        public void visitAssignmentStatement(@NotNull GoAssignmentStatement o) {
            if (o.getParent() != null && o.getParent() instanceof GoIfStatement && ((GoIfStatement) o.getParent()).getExpression() == null) {
                String left = GoPsiImplUtil.joinPsiElementText(o.getLeftHandExprList().getExpressionList());
                String right = GoPsiImplUtil.joinPsiElementText(o.getExpressionList());
                holder.registerProblem(o, left + " = " + right + " used as value", GENERIC_ERROR_OR_WARNING, new GoAssignmentToComparisonQuickFix());
            }
        }

        @Override
        public void visitShortVarDeclaration(@NotNull GoShortVarDeclaration o) {
            PsiElement parent = o.getParent();
            if (parent != null) {
                PsiElement gradParent = parent.getParent();
                if (gradParent instanceof GoIfStatement && ((GoIfStatement) gradParent).getExpression() == null) {
                    String left = GoPsiImplUtil.joinPsiElementText(o.getVarDefinitionList());
                    String right = GoPsiImplUtil.joinPsiElementText(o.getRightExpressionsList());
                    holder.registerProblem(o, left + " := " + right + " used as value", GENERIC_ERROR_OR_WARNING, new GoAssignmentToComparisonQuickFix());
                }
            }
        }
    };
}
Also used : GoShortVarDeclaration(com.goide.psi.GoShortVarDeclaration) GoAssignmentStatement(com.goide.psi.GoAssignmentStatement) GoIfStatement(com.goide.psi.GoIfStatement) NotNull(org.jetbrains.annotations.NotNull) GoVisitor(com.goide.psi.GoVisitor) PsiElement(com.intellij.psi.PsiElement) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

GoAssignmentStatement (com.goide.psi.GoAssignmentStatement)1 GoIfStatement (com.goide.psi.GoIfStatement)1 GoShortVarDeclaration (com.goide.psi.GoShortVarDeclaration)1 GoVisitor (com.goide.psi.GoVisitor)1 PsiElement (com.intellij.psi.PsiElement)1 NotNull (org.jetbrains.annotations.NotNull)1