KT-13961 REDECLARATION not reported on private-in-file 'foo' vs public 'foo' in different file
Private-in-file declarations conflict with public overload-equivalent declarations in other files in the same package. Move functions for grouping possible redeclarations to OverloadResolver (since they are used only there). Refactor redeclarations / conflicting overloads reporting.
This commit is contained in:
+2
-2
@@ -1,11 +1,11 @@
|
||||
// FILE: f1.kt
|
||||
package test
|
||||
|
||||
class <!REDECLARATION!>A<!>
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!>
|
||||
class F1
|
||||
|
||||
// FILE: f2.kt
|
||||
package test
|
||||
|
||||
class <!REDECLARATION!>A<!>
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!>
|
||||
class F2
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
// FILE: f.kt
|
||||
package a
|
||||
class <!REDECLARATION!>b<!> {}
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>b<!> {}
|
||||
// FILE: f.kt
|
||||
package a.<!REDECLARATION!>b<!>
|
||||
package a.<!PACKAGE_OR_CLASSIFIER_REDECLARATION!>b<!>
|
||||
// FILE: f.kt
|
||||
package a.<!REDECLARATION!>b<!>
|
||||
package a.<!PACKAGE_OR_CLASSIFIER_REDECLARATION!>b<!>
|
||||
@@ -1,15 +1,15 @@
|
||||
// FILE: f.kt
|
||||
package redeclarations
|
||||
object <!REDECLARATION, REDECLARATION!>A<!> {
|
||||
object <!PACKAGE_OR_CLASSIFIER_REDECLARATION, REDECLARATION!>A<!> {
|
||||
val x : Int = 0
|
||||
|
||||
val A = 1
|
||||
}
|
||||
|
||||
class <!REDECLARATION!>A<!> {}
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!> {}
|
||||
|
||||
val <!REDECLARATION, REDECLARATION!>A<!> = 1
|
||||
val <!PACKAGE_OR_CLASSIFIER_REDECLARATION, REDECLARATION!>A<!> = 1
|
||||
|
||||
// FILE: f.kt
|
||||
package redeclarations.<!REDECLARATION!>A<!>
|
||||
package redeclarations.<!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!>
|
||||
class A {}
|
||||
|
||||
+14
-5
@@ -5,8 +5,14 @@ interface A
|
||||
interface B : A
|
||||
|
||||
private fun validFun() {}
|
||||
private val validVal = 1
|
||||
|
||||
private val validProp = 1
|
||||
<!CONFLICTING_OVERLOADS!>private fun invalidFun0()<!> {}
|
||||
private val <!REDECLARATION!>invalidProp0<!> = 1
|
||||
|
||||
// NB invalidFun0 and invalidProp0 are conflicting overloads, since the following is an ambiguity:
|
||||
fun useInvalidFun0() = <!OVERLOAD_RESOLUTION_AMBIGUITY!>invalidFun0<!>()
|
||||
fun useInvalidProp0() = <!OVERLOAD_RESOLUTION_AMBIGUITY!>invalidProp0<!>
|
||||
|
||||
<!CONFLICTING_OVERLOADS!>private fun invalidFun1()<!> {}
|
||||
<!CONFLICTING_OVERLOADS!>private fun invalidFun1()<!> {}
|
||||
@@ -17,7 +23,7 @@ private val validProp = 1
|
||||
<!CONFLICTING_OVERLOADS!>public fun invalidFun3()<!> {}
|
||||
|
||||
<!CONFLICTING_OVERLOADS!>private fun invalidFun4()<!> {}
|
||||
<!CONFLICTING_OVERLOADS, CONFLICTING_OVERLOADS!>public fun invalidFun4()<!> {}
|
||||
<!CONFLICTING_OVERLOADS!>public fun invalidFun4()<!> {}
|
||||
|
||||
public fun validFun2(a: A) = a
|
||||
public fun validFun2(b: B) = b
|
||||
@@ -26,8 +32,11 @@ public fun validFun2(b: B) = b
|
||||
package a
|
||||
|
||||
private fun validFun() {}
|
||||
private val validVal = 1
|
||||
|
||||
private val validProp = 1
|
||||
<!CONFLICTING_OVERLOADS!>private fun invalidFun0()<!> {}
|
||||
|
||||
private val <!REDECLARATION!>invalidProp0<!> = 1
|
||||
|
||||
<!CONFLICTING_OVERLOADS!>internal fun invalidFun3()<!> {}
|
||||
<!CONFLICTING_OVERLOADS!>internal fun invalidFun4()<!> {}
|
||||
@@ -35,6 +44,6 @@ private val validProp = 1
|
||||
// FILE: c.kt
|
||||
package a
|
||||
|
||||
public fun validFun() {}
|
||||
<!CONFLICTING_OVERLOADS!>public fun invalidFun0()<!> {}
|
||||
|
||||
public val validProp = 1
|
||||
public val <!REDECLARATION!>invalidProp0<!> = 1
|
||||
+10
-4
@@ -1,9 +1,14 @@
|
||||
package
|
||||
|
||||
package a {
|
||||
private val validProp: kotlin.Int = 1
|
||||
private val validProp: kotlin.Int = 1
|
||||
public val validProp: kotlin.Int = 1
|
||||
private val invalidProp0: kotlin.Int = 1
|
||||
private val invalidProp0: kotlin.Int = 1
|
||||
public val invalidProp0: kotlin.Int = 1
|
||||
private val validVal: kotlin.Int = 1
|
||||
private val validVal: kotlin.Int = 1
|
||||
private fun invalidFun0(): kotlin.Unit
|
||||
private fun invalidFun0(): kotlin.Unit
|
||||
public fun invalidFun0(): kotlin.Unit
|
||||
private fun invalidFun1(): kotlin.Unit
|
||||
private fun invalidFun1(): kotlin.Unit
|
||||
private fun invalidFun2(): kotlin.Unit
|
||||
@@ -13,9 +18,10 @@ package a {
|
||||
internal fun invalidFun4(): kotlin.Unit
|
||||
private fun invalidFun4(): kotlin.Unit
|
||||
public fun invalidFun4(): kotlin.Unit
|
||||
public fun useInvalidFun0(): [ERROR : Error function type]
|
||||
public fun useInvalidProp0(): [ERROR : Error function type]
|
||||
private fun validFun(): kotlin.Unit
|
||||
private fun validFun(): kotlin.Unit
|
||||
public fun validFun(): kotlin.Unit
|
||||
public fun validFun2(/*0*/ a: a.A): a.A
|
||||
public fun validFun2(/*0*/ b: a.B): a.B
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
// FILE: f1.kt
|
||||
package test
|
||||
|
||||
class <!REDECLARATION!>A<!>
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!>
|
||||
class F1
|
||||
|
||||
// FILE: A.kts
|
||||
|
||||
+4
-4
@@ -7,7 +7,7 @@ interface <!REDECLARATION!>Test2<!>
|
||||
val <!REDECLARATION!>Test3<!> = null
|
||||
object <!REDECLARATION!>Test3<!>
|
||||
|
||||
val <!REDECLARATION, REDECLARATION!>Test4<!> = null
|
||||
class <!REDECLARATION, REDECLARATION!>Test4<!>
|
||||
interface <!REDECLARATION!>Test4<!>
|
||||
object <!REDECLARATION!>Test4<!>
|
||||
val <!PACKAGE_OR_CLASSIFIER_REDECLARATION, REDECLARATION!>Test4<!> = null
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION, REDECLARATION!>Test4<!>
|
||||
interface <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
|
||||
object <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
|
||||
@@ -1,9 +1,9 @@
|
||||
// FILE: file1.kt
|
||||
class <!REDECLARATION!>SomeClass<!>
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>SomeClass<!>
|
||||
|
||||
typealias <!REDECLARATION!>SomeClass<!> = Any
|
||||
typealias <!REDECLARATION!>SomeClass<!> = Any
|
||||
typealias <!REDECLARATION!>SomeClass<!> = Any
|
||||
typealias <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>SomeClass<!> = Any
|
||||
typealias <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>SomeClass<!> = Any
|
||||
typealias <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>SomeClass<!> = Any
|
||||
|
||||
class Outer {
|
||||
class <!REDECLARATION!>Nested<!>
|
||||
@@ -14,4 +14,4 @@ class Outer {
|
||||
}
|
||||
|
||||
// FILE: file2.kt
|
||||
typealias <!REDECLARATION!>SomeClass<!> = Any
|
||||
typealias <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>SomeClass<!> = Any
|
||||
Reference in New Issue
Block a user