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:
Dmitry Petrov
2016-02-01 16:27:58 +03:00
parent 7dd725f0a4
commit 65f754ffca
36 changed files with 193 additions and 84 deletions
@@ -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