From ee40c73d037e4714624385ffdc7d1ac5441ea58a Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Wed, 11 Feb 2015 17:02:25 +0300 Subject: [PATCH] EA-64618 one more null check --- .../groovy/codeInspection/type/GroovyTypeCheckVisitor.java | 6 ++++-- .../api/statements/expressions/GrTypeCastExpression.java | 2 ++ .../expressions/types/GrTypeCastExpressionImpl.java | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/type/GroovyTypeCheckVisitor.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/type/GroovyTypeCheckVisitor.java index cac417a1fd39..a5776325888e 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/type/GroovyTypeCheckVisitor.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/type/GroovyTypeCheckVisitor.java @@ -839,12 +839,14 @@ public class GroovyTypeCheckVisitor extends BaseInspectionVisitor { public void visitCastExpression(GrTypeCastExpression expression) { super.visitCastExpression(expression); - if (expression.getCastTypeElement() == null) return; - final PsiType expectedType = expression.getCastTypeElement().getType(); final GrExpression operand = expression.getOperand(); + if (operand == null) return; final PsiType actualType = operand.getType(); if (actualType == null) return; + if (expression.getCastTypeElement() == null) return; + final PsiType expectedType = expression.getCastTypeElement().getType(); + final ConversionResult result = TypesUtil.canCast(expectedType, actualType, expression); if (result == ConversionResult.OK) return; final ProblemHighlightType highlightType = result == ConversionResult.ERROR diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrTypeCastExpression.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrTypeCastExpression.java index b4fe54f956bd..6cccb4832cc3 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrTypeCastExpression.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrTypeCastExpression.java @@ -16,6 +16,7 @@ package org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions; +import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement; import org.jetbrains.annotations.NotNull; import com.intellij.psi.PsiElement; @@ -26,6 +27,7 @@ import com.intellij.psi.PsiElement; public interface GrTypeCastExpression extends GrExpression { GrTypeElement getCastTypeElement(); + @Nullable GrExpression getOperand(); @NotNull diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/types/GrTypeCastExpressionImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/types/GrTypeCastExpressionImpl.java index 54665477304c..06f8ed1e356e 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/types/GrTypeCastExpressionImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/types/GrTypeCastExpressionImpl.java @@ -20,6 +20,7 @@ import com.intellij.lang.ASTNode; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiType; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes; import org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; @@ -58,6 +59,7 @@ public class GrTypeCastExpressionImpl extends GrExpressionImpl implements GrType } @Override + @Nullable public GrExpression getOperand() { return findExpressionChild(this); }