KT-4405 Control-flow analysis is not performed for some local declarations #KT-4405 Fixed
This commit is contained in:
@@ -15,15 +15,15 @@ class WithC() {
|
||||
{
|
||||
$x = 1
|
||||
<!UNRESOLVED_REFERENCE!>$y<!> = 2
|
||||
val b = x
|
||||
val <!UNUSED_VARIABLE!>b<!> = x
|
||||
|
||||
}
|
||||
|
||||
val a : Int get() = 1
|
||||
|
||||
{
|
||||
val z = <!UNRESOLVED_REFERENCE!>b<!>
|
||||
val zz = x
|
||||
val zzz = <!NO_BACKING_FIELD_CUSTOM_ACCESSORS!>$a<!>
|
||||
val <!UNUSED_VARIABLE!>z<!> = <!UNRESOLVED_REFERENCE!>b<!>
|
||||
val <!UNUSED_VARIABLE!>zz<!> = x
|
||||
val <!UNUSED_VARIABLE!>zzz<!> = <!NO_BACKING_FIELD_CUSTOM_ACCESSORS!>$a<!>
|
||||
}
|
||||
}
|
||||
@@ -199,7 +199,7 @@ class LocalValsVsProperties(val a: Int, w: Int) : Open(a, w) {
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val y : Int<!>
|
||||
{
|
||||
$x = 1
|
||||
val b = x
|
||||
val <!UNUSED_VARIABLE!>b<!> = x
|
||||
}
|
||||
val b = a
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
class ReadForward() {
|
||||
{
|
||||
val x = <!UNINITIALIZED_VARIABLE!>$a<!>
|
||||
val <!UNUSED_VARIABLE!>x<!> = <!UNINITIALIZED_VARIABLE!>$a<!>
|
||||
}
|
||||
|
||||
val a = 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
class ReadByAnotherPropertyInitializer() {
|
||||
val a = 1
|
||||
{
|
||||
val x = $a
|
||||
val <!UNUSED_VARIABLE!>x<!> = $a
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,6 +2,6 @@ abstract class ReadNonexistent() {
|
||||
abstract val aa: Int
|
||||
|
||||
{
|
||||
val x = <!NO_BACKING_FIELD_ABSTRACT_PROPERTY!>$aa<!>
|
||||
val <!UNUSED_VARIABLE!>x<!> = <!NO_BACKING_FIELD_ABSTRACT_PROPERTY!>$aa<!>
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -3,6 +3,6 @@ class ReadNonexistent() {
|
||||
get() = 1
|
||||
|
||||
{
|
||||
val x = <!NO_BACKING_FIELD_CUSTOM_ACCESSORS!>$a<!>
|
||||
val <!UNUSED_VARIABLE!>x<!> = <!NO_BACKING_FIELD_CUSTOM_ACCESSORS!>$a<!>
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
class Cl() {
|
||||
{
|
||||
val x = <!UNRESOLVED_REFERENCE!>$a<!>
|
||||
val <!UNUSED_VARIABLE!>x<!> = <!UNRESOLVED_REFERENCE!>$a<!>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
//KT-4405 Control-flow analysis is not performed for some local declarations
|
||||
|
||||
package d
|
||||
|
||||
val closure = {
|
||||
val <!UNUSED_VARIABLE!>x4<!> = "" // error: should be UNUSED_VARIABLE
|
||||
|
||||
fun g() {
|
||||
val <!UNUSED_VARIABLE!>x6<!> = "" // error: should be UNUSED_VARIABLE
|
||||
}
|
||||
|
||||
fun h(): Int { // error: should be NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY
|
||||
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
}
|
||||
|
||||
class A {
|
||||
{
|
||||
fun foo(): Int {
|
||||
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
|
||||
val <!UNUSED_VARIABLE!>closure<!> = {
|
||||
val <!UNUSED_VARIABLE!>x<!> = ""
|
||||
|
||||
fun local(): Int {
|
||||
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
}
|
||||
|
||||
val <!UNUSED_VARIABLE!>y<!> = ""
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ fun f() {
|
||||
|
||||
fun loc2(): Int {
|
||||
val <!UNUSED_VARIABLE!>x2_<!> = "" // error: should be UNUSED_VARIABLE
|
||||
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY, NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
}
|
||||
|
||||
val v: String
|
||||
|
||||
@@ -2,20 +2,20 @@ package f
|
||||
|
||||
object A {
|
||||
class LoginFormPage() : Request({
|
||||
val failed = session.get("LOGIN_FAILED")
|
||||
val <!UNUSED_VARIABLE!>failed<!> = session.get("LOGIN_FAILED")
|
||||
})
|
||||
}
|
||||
|
||||
class B {
|
||||
class object {
|
||||
class LoginFormPage() : Request({
|
||||
val failed = session.get("LOGIN_FAILED")
|
||||
val <!UNUSED_VARIABLE!>failed<!> = session.get("LOGIN_FAILED")
|
||||
})
|
||||
}
|
||||
|
||||
class C {
|
||||
class LoginFormPage() : Request({
|
||||
val failed = session.get("LOGIN_FAILED")
|
||||
val <!UNUSED_VARIABLE!>failed<!> = session.get("LOGIN_FAILED")
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ fun f() {
|
||||
val closure = {
|
||||
class MyClass {
|
||||
{
|
||||
val x: MyClass = MyClass()
|
||||
val <!UNUSED_VARIABLE!>x<!>: MyClass = MyClass()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ class A(a: String?) {
|
||||
val b = if (a != null) <!DEBUG_INFO_AUTOCAST!>a<!>.length else 1
|
||||
{
|
||||
if (a != null) {
|
||||
val c = <!DEBUG_INFO_AUTOCAST!>a<!>.length
|
||||
val <!UNUSED_VARIABLE!>c<!> = <!DEBUG_INFO_AUTOCAST!>a<!>.length
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,6 @@ import javax.swing.JFrame
|
||||
|
||||
class KFrame() : JFrame() {
|
||||
{
|
||||
val x = this.rootPaneCheckingEnabled // make sure field is visible
|
||||
val <!UNUSED_VARIABLE!>x<!> = this.rootPaneCheckingEnabled // make sure field is visible
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class A(vararg t : Int) {
|
||||
{
|
||||
val t1 : IntArray = t
|
||||
val <!UNUSED_VARIABLE!>t1<!> : IntArray = t
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class A(vararg val t : Int) {
|
||||
{
|
||||
val t1 : IntArray = t
|
||||
val <!UNUSED_VARIABLE!>t1<!> : IntArray = t
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user