From 166d580682d17c41443df63098444484142fe04f Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 20 Nov 2014 12:23:04 +0300 Subject: [PATCH] Partial body resolve: found group of cases incorrectly handled by the current implementation --- .../SmartCastPointsResolveRequired1.dump | 2 ++ .../SmartCastPointsResolveRequired1.kt.todo | 15 +++++++++++++++ .../SmartCastPointsResolveRequired2.dump | 2 ++ .../SmartCastPointsResolveRequired2.kt.todo | 10 ++++++++++ 4 files changed, 29 insertions(+) create mode 100644 idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired1.dump create mode 100644 idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired1.kt.todo create mode 100644 idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired2.dump create mode 100644 idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired2.kt.todo diff --git a/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired1.dump b/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired1.dump new file mode 100644 index 00000000000..890fa034495 --- /dev/null +++ b/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired1.dump @@ -0,0 +1,2 @@ +Resolve target: value-parameter val x: kotlin.Any? +Skipped statements: diff --git a/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired1.kt.todo b/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired1.kt.todo new file mode 100644 index 00000000000..2b4a1ec43e2 --- /dev/null +++ b/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired1.kt.todo @@ -0,0 +1,15 @@ +fun foo(x: Any?, p: Int) { + if (p > 0) { + val x = f() + print(x!!) + } + else { + val x = g() + print(x!!) + } + + x.hashCode() +} + +fun f(): Any? = null +fun g(): Any? = null \ No newline at end of file diff --git a/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired2.dump b/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired2.dump new file mode 100644 index 00000000000..890fa034495 --- /dev/null +++ b/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired2.dump @@ -0,0 +1,2 @@ +Resolve target: value-parameter val x: kotlin.Any? +Skipped statements: diff --git a/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired2.kt.todo b/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired2.kt.todo new file mode 100644 index 00000000000..f42f557dbae --- /dev/null +++ b/idea/testData/resolve/partialBodyResolve/SmartCastPointsResolveRequired2.kt.todo @@ -0,0 +1,10 @@ +fun foo(x: Any?) { + if (x == null) { + val error = f() + error("error") + } + + x.hashCode() +} + +fun f(): (String) -> Unit = {}