Fix KT-10764 IDEA doesn't show overload conflict between constructor and function...
When checking for overloads in package, consider functions and top-level class constructors as possibly conflicting between each other. NB OverloadUtil uses containing package scope from module descriptor. Change diagnostic message for CONFLICTING_OVERLOAD: it's misleading in case of fun vs constructor conflict. Add custom multifile test for diagnostics in IDE (probably not the best; should preprocess file content if it's required to check highlighting in multiple files, not only in the first file). Add test for KT-10765 Incremental compilation misses overload conflict between constructor and function ...
This commit is contained in:
+11
-18
@@ -4,9 +4,19 @@ End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
COMPILATION FAILED
|
||||
'public constructor A(x: kotlin.String)' conflicts with another declaration: public constructor A(x: kotlin.String)
|
||||
|
||||
|
||||
Cleaning output files:
|
||||
out/production/module/AConstructorFunctionKt.class
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/AChild.class
|
||||
out/production/module/AConstructorFunctionKt.class
|
||||
out/production/module/CreateAFromIntKt.class
|
||||
out/production/module/CreateAFromStringKt.class
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
@@ -14,23 +24,6 @@ out/production/module/UseAKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/AChild.kt
|
||||
src/AConstructorFunction.kt
|
||||
src/createAFromInt.kt
|
||||
src/createAFromString.kt
|
||||
src/useA.kt
|
||||
End of files
|
||||
COMPILATION FAILED
|
||||
Overload resolution ambiguity:
|
||||
public constructor A(x: kotlin.String) defined in A
|
||||
public fun A(x: kotlin.String): A defined in root package
|
||||
|
||||
|
||||
Cleaning output files:
|
||||
out/production/module/A.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/A.kt
|
||||
src/AChild.kt
|
||||
src/createAFromInt.kt
|
||||
src/createAFromString.kt
|
||||
src/useA.kt
|
||||
|
||||
Reference in New Issue
Block a user