diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java index 66e300dc0b3f..cbb59ab67237 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java @@ -52,7 +52,6 @@ public class ControlFlowAnalyzer extends JavaElementVisitor { private FList myTrapStack = FList.emptyList(); private final ExceptionTransfer myRuntimeException; private final ExceptionTransfer myError; - private final PsiType myNpe; private final PsiType myAssertionError; ControlFlowAnalyzer(final DfaValueFactory valueFactory, @NotNull PsiElement codeFragment, boolean ignoreAssertions) { @@ -63,7 +62,6 @@ public class ControlFlowAnalyzer extends JavaElementVisitor { GlobalSearchScope scope = codeFragment.getResolveScope(); myRuntimeException = new ExceptionTransfer(myFactory.createTypeValue(createClassType(scope, JAVA_LANG_RUNTIME_EXCEPTION), Nullness.NOT_NULL)); myError = new ExceptionTransfer(myFactory.createTypeValue(createClassType(scope, JAVA_LANG_ERROR), Nullness.NOT_NULL)); - myNpe = createClassType(scope, JAVA_LANG_NULL_POINTER_EXCEPTION); myAssertionError = createClassType(scope, JAVA_LANG_ASSERTION_ERROR); } @@ -708,16 +706,7 @@ public class ControlFlowAnalyzer extends JavaElementVisitor { exception.accept(this); addConditionalRuntimeThrow(); - addInstruction(new DupInstruction()); - addInstruction(new PushInstruction(myFactory.getConstFactory().getNull(), null)); - addInstruction(new BinopInstruction(JavaTokenType.EQEQ, null, myProject)); - ConditionalGotoInstruction gotoInstruction = new ConditionalGotoInstruction(null, true, null); - addInstruction(gotoInstruction); - addInstruction(new FieldReferenceInstruction(exception, "thrown exception")); - throwException(myNpe, statement); - - gotoInstruction.setOffset(myCurrentFlow.getInstructionCount()); throwException(exception.getType(), statement); } diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/ThrowNullable.java b/java/java-tests/testData/inspection/dataFlow/fixture/ThrowNullable.java index 4c9c3986c834..568b193ad217 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/ThrowNullable.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/ThrowNullable.java @@ -15,4 +15,8 @@ class DataFlowBug { } } + void foo(RuntimeException tt) { + throw tt; + } + } \ No newline at end of file