[FIR] Resolve infix calls to infix functions only

Implements INFIX_MODIFIER_REQUIRED diagnostics
This commit is contained in:
Andrey Zinovyev
2021-05-14 15:22:43 +03:00
committed by TeamCityServer
parent df14deb5a0
commit b1c8669b43
46 changed files with 174 additions and 94 deletions
@@ -4,23 +4,23 @@ fun fooByte(p: Byte) = p
fun fooShort(p: Short) = p
fun test() {
fooInt(1 plus 1)
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 plus 1<!>)
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 plus 1<!>)
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 plus 1<!>)
fooInt(1 <!INFIX_MODIFIER_REQUIRED!>plus<!> 1)
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>plus<!> 1<!>)
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>plus<!> 1<!>)
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>plus<!> 1<!>)
fooInt(1 times 1)
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 times 1<!>)
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 times 1<!>)
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 times 1<!>)
fooInt(1 <!INFIX_MODIFIER_REQUIRED!>times<!> 1)
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>times<!> 1<!>)
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>times<!> 1<!>)
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>times<!> 1<!>)
fooInt(1 div 1)
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 div 1<!>)
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 div 1<!>)
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 div 1<!>)
fooInt(1 <!INFIX_MODIFIER_REQUIRED!>div<!> 1)
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>div<!> 1<!>)
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>div<!> 1<!>)
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>div<!> 1<!>)
fooInt(1 rem 1)
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 rem 1<!>)
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 rem 1<!>)
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 rem 1<!>)
fooInt(1 <!INFIX_MODIFIER_REQUIRED!>rem<!> 1)
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>rem<!> 1<!>)
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>rem<!> 1<!>)
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>rem<!> 1<!>)
}