Introduce warning about forbidden referencing to underscore named parameter of the catch block in a future release (KT-31567)
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
// !LANGUAGE: -ForbidReferencingToUnderscoreNamedParameterOfCatchBlock
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -UNUSED_ANONYMOUS_PARAMETER -UNUSED_EXPRESSION
|
||||
|
||||
fun foo() {
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
}
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
val x = {
|
||||
val x2 = {
|
||||
val x3 = { y: Int ->
|
||||
val x4 = { _: Int ->
|
||||
`_`
|
||||
}
|
||||
`_`
|
||||
}
|
||||
`_`
|
||||
10
|
||||
}
|
||||
fun bar(x: Exception = `_`) {}
|
||||
class Bar(`_`: Exception = `_`) {
|
||||
inner class Bar2(x: Exception = `_`) { }
|
||||
}
|
||||
}
|
||||
} catch (_: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
val y1 = _
|
||||
val y2 = (`_`)
|
||||
}
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
}
|
||||
}
|
||||
val boo1 = { `_`: Exception ->
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
}
|
||||
}
|
||||
val boo2 = { _: Exception ->
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
// !LANGUAGE: -ForbidReferencingToUnderscoreNamedParameterOfCatchBlock
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -UNUSED_ANONYMOUS_PARAMETER -UNUSED_EXPRESSION
|
||||
|
||||
fun foo() {
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
<!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>.stackTrace
|
||||
}
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
val x = {
|
||||
val x2 = {
|
||||
val x3 = { y: Int ->
|
||||
val x4 = { _: Int ->
|
||||
<!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>
|
||||
}
|
||||
<!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>
|
||||
}
|
||||
<!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>
|
||||
10
|
||||
}
|
||||
fun bar(x: Exception = <!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>) {}
|
||||
class Bar(`_`: Exception = <!UNINITIALIZED_PARAMETER!>`_`<!>) {
|
||||
inner class Bar2(x: Exception = <!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>) { }
|
||||
}
|
||||
}
|
||||
} catch (_: Exception) {
|
||||
<!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>.stackTrace
|
||||
val y1 = <!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER, UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>
|
||||
val y2 = (<!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>)
|
||||
}
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
<!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>.stackTrace
|
||||
}
|
||||
}
|
||||
val boo1 = { `_`: Exception ->
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
`_`.stackTrace
|
||||
}
|
||||
}
|
||||
val boo2 = { _: Exception ->
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
<!UNRESOLVED_REFERENCE!>`_`<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>stackTrace<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun foo(): kotlin.Unit
|
||||
Vendored
+57
@@ -0,0 +1,57 @@
|
||||
// !LANGUAGE: +ForbidReferencingToUnderscoreNamedParameterOfCatchBlock
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -UNUSED_ANONYMOUS_PARAMETER -UNUSED_EXPRESSION
|
||||
|
||||
fun foo() {
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
}
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
val x = {
|
||||
val x2 = {
|
||||
val x3 = { y: Int ->
|
||||
val x4 = { _: Int ->
|
||||
`_`
|
||||
}
|
||||
`_`
|
||||
}
|
||||
`_`
|
||||
10
|
||||
}
|
||||
fun bar(x: Exception = `_`) {}
|
||||
class Bar(`_`: Exception = `_`) {
|
||||
inner class Bar2(x: Exception = `_`) { }
|
||||
}
|
||||
}
|
||||
} catch (_: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
val y1 = _
|
||||
val y2 = (`_`)
|
||||
}
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
}
|
||||
}
|
||||
val boo1 = { `_`: Exception ->
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
}
|
||||
}
|
||||
val boo2 = { _: Exception ->
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
`_`.<!UNRESOLVED_REFERENCE!>stackTrace<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
// !LANGUAGE: +ForbidReferencingToUnderscoreNamedParameterOfCatchBlock
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -UNUSED_ANONYMOUS_PARAMETER -UNUSED_EXPRESSION
|
||||
|
||||
fun foo() {
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
<!UNRESOLVED_REFERENCE!>`_`<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>stackTrace<!>
|
||||
}
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
val x = {
|
||||
val x2 = {
|
||||
val x3 = { y: Int ->
|
||||
val x4 = { _: Int ->
|
||||
<!UNRESOLVED_REFERENCE!>`_`<!>
|
||||
}
|
||||
<!UNRESOLVED_REFERENCE!>`_`<!>
|
||||
}
|
||||
<!UNRESOLVED_REFERENCE!>`_`<!>
|
||||
10
|
||||
}
|
||||
fun bar(x: Exception = <!UNRESOLVED_REFERENCE!>`_`<!>) {}
|
||||
class Bar(`_`: Exception = <!UNINITIALIZED_PARAMETER!>`_`<!>) {
|
||||
inner class Bar2(x: Exception = <!UNRESOLVED_REFERENCE!>`_`<!>) { }
|
||||
}
|
||||
}
|
||||
} catch (_: Exception) {
|
||||
<!UNRESOLVED_REFERENCE!>`_`<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>stackTrace<!>
|
||||
val y1 = <!UNRESOLVED_REFERENCE!>_<!>
|
||||
val y2 = (<!UNRESOLVED_REFERENCE!>`_`<!>)
|
||||
}
|
||||
try {
|
||||
TODO()
|
||||
} catch (_: Exception) {
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
<!UNRESOLVED_REFERENCE!>`_`<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>stackTrace<!>
|
||||
}
|
||||
}
|
||||
val boo1 = { `_`: Exception ->
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
`_`.stackTrace
|
||||
}
|
||||
}
|
||||
val boo2 = { _: Exception ->
|
||||
try {
|
||||
TODO()
|
||||
} catch (x: Exception) {
|
||||
<!UNRESOLVED_REFERENCE!>`_`<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>stackTrace<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun foo(): kotlin.Unit
|
||||
Reference in New Issue
Block a user