From d1214d23683be9a55eb1ea9baf9f016f5bbe6806 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 27 Aug 2014 17:46:35 +0400 Subject: [PATCH] Another TypeUtils.isNullableType() introduced --- .../constants/CompileTimeConstantChecker.java | 2 +- .../tests/platformTypes/methodCall/sam.kt | 26 +++++++++++++++++++ .../checkers/JetDiagnosticsTestGenerated.java | 5 ++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/platformTypes/methodCall/sam.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/CompileTimeConstantChecker.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/CompileTimeConstantChecker.java index 58b04689557..2fe01c6d02a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/CompileTimeConstantChecker.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/CompileTimeConstantChecker.java @@ -143,7 +143,7 @@ public class CompileTimeConstantChecker { } private boolean checkNullValue(@NotNull JetType expectedType, @NotNull JetConstantExpression expression) { - if (!noExpectedTypeOrError(expectedType) && !expectedType.isNullable()) { + if (!noExpectedTypeOrError(expectedType) && !TypeUtils.isNullableType(expectedType)) { return reportError(NULL_FOR_NONNULL_TYPE.on(expression, expectedType)); } return false; diff --git a/compiler/testData/diagnostics/tests/platformTypes/methodCall/sam.kt b/compiler/testData/diagnostics/tests/platformTypes/methodCall/sam.kt new file mode 100644 index 00000000000..ed1b08ed76a --- /dev/null +++ b/compiler/testData/diagnostics/tests/platformTypes/methodCall/sam.kt @@ -0,0 +1,26 @@ +// FILE: p/SAM.java + +package p; + +public interface SAM { + R foo(); +} + +// FILE: p/Util.java + +package p; + +public class Util { + + public static void sam(SAM sam) {} +} + +// FILE: k.kt + +import p.* + +fun test() { + Util.sam { + null + } +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 2bbc8e178ab..fd0cb006e80 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -7848,6 +7848,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("sam.kt") + public void testSam() throws Exception { + doTest("compiler/testData/diagnostics/tests/platformTypes/methodCall/sam.kt"); + } + @TestMetadata("singleton.kt") public void testSingleton() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/platformTypes/methodCall/singleton.kt");