e6b5cb5216
Update includes:
- Changing syntax of `OI/`NI` tags from `<!NI;TAG!>` to `<!TAG{NI}!>`
- Fix some incorrect directives
- Change order of diagnostics in some places
- Remove ignored diagnostics from FIR test data (previously `DIAGNOSTICS` didn't work)
- Update FIR dumps in some places and add `FIR_IDENTICAL` if needed
- Replace all JAVAC_SKIP with SKIP_JAVAC directive
119 lines
3.7 KiB
Kotlin
Vendored
119 lines
3.7 KiB
Kotlin
Vendored
// !WITH_NEW_INFERENCE
|
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
|
|
|
fun noArgs() {}
|
|
fun oneLambdaArg(fn: () -> Unit) {}
|
|
fun twoLambdaArgs(f1: () -> Unit, f2: () -> Unit) {}
|
|
fun varargFn(vararg args: Int) {}
|
|
|
|
fun testNoArgs() {
|
|
noArgs()
|
|
noArgs <!TOO_MANY_ARGUMENTS!>{}<!>
|
|
noArgs() <!TOO_MANY_ARGUMENTS!>{}<!>
|
|
noArgs() // {}
|
|
noArgs() /* */ <!TOO_MANY_ARGUMENTS!>{}<!>
|
|
noArgs() /*
|
|
block comment, no new line
|
|
*/ <!TOO_MANY_ARGUMENTS!>{}<!>
|
|
noArgs()
|
|
/*
|
|
block comment with new line
|
|
*/
|
|
<!UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
noArgs() // comment
|
|
// comment
|
|
<!UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
noArgs() <!TOO_MANY_ARGUMENTS!>{}<!> <!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
|
|
noArgs() <!TOO_MANY_ARGUMENTS!>{}<!>
|
|
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS, UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
}
|
|
|
|
fun testLambdaArg() {
|
|
oneLambdaArg(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
|
oneLambdaArg {}
|
|
oneLambdaArg()
|
|
{}
|
|
oneLambdaArg()
|
|
{}
|
|
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS, UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
oneLambdaArg(
|
|
{},
|
|
<!TOO_MANY_ARGUMENTS!>{}<!>
|
|
)
|
|
oneLambdaArg() {}
|
|
oneLambdaArg(<!NO_VALUE_FOR_PARAMETER!>)<!> // {}
|
|
oneLambdaArg() /* */ {}
|
|
oneLambdaArg() /*
|
|
block
|
|
comment
|
|
*/ {}
|
|
oneLambdaArg() // comment
|
|
// comment
|
|
{}
|
|
oneLambdaArg() {}/*
|
|
block comment, no new line
|
|
*/ <!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
|
|
oneLambdaArg() {}/*
|
|
block comment with new line
|
|
*/
|
|
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS, UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
oneLambdaArg() {}// comment
|
|
// comment
|
|
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS, UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
oneLambdaArg() {} <!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
|
|
oneLambdaArg() {}
|
|
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS, UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
oneLambdaArg() {} // comment
|
|
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS, UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
}
|
|
|
|
fun testVararg() {
|
|
varargFn(1,2,3)
|
|
varargFn <!VARARG_OUTSIDE_PARENTHESES!>{}<!>
|
|
varargFn(1,2,3) <!VARARG_OUTSIDE_PARENTHESES!>{}<!>
|
|
varargFn(1,2,3) // {}
|
|
varargFn(1,2,3) /* */ <!VARARG_OUTSIDE_PARENTHESES!>{}<!>
|
|
varargFn(1,2,3) /*
|
|
block comment, no new line
|
|
*/ <!VARARG_OUTSIDE_PARENTHESES!>{}<!>
|
|
varargFn(1,2,3)
|
|
/*
|
|
block comment with new line
|
|
*/ <!UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
varargFn(1,2,3) // comment
|
|
// comment
|
|
<!UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
varargFn(1,2,3) <!VARARG_OUTSIDE_PARENTHESES!>{}<!> <!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
|
|
varargFn(1,2,3) <!VARARG_OUTSIDE_PARENTHESES!>{}<!>
|
|
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS, UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
}
|
|
|
|
fun testTwoLambdas() {
|
|
twoLambdaArgs(
|
|
f1 = {},
|
|
f2 =
|
|
{}
|
|
)
|
|
|
|
fun bar(): () -> Unit {
|
|
twoLambdaArgs(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
|
{}
|
|
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS, UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!>
|
|
|
|
return if (true) <!TYPE_MISMATCH{NI}!>{
|
|
<!TYPE_MISMATCH{OI}!>twoLambdaArgs({})
|
|
{}
|
|
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS, UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{}<!><!>
|
|
}<!> else {
|
|
{}
|
|
}
|
|
}
|
|
}
|
|
|
|
fun f1(): (() -> Unit) -> (() -> Unit) -> Unit {
|
|
return { l1 ->
|
|
<!TYPE_MISMATCH{NI}, TYPE_MISMATCH!>l1()
|
|
<!UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE!>{ <!CANNOT_INFER_PARAMETER_TYPE, UNUSED_ANONYMOUS_PARAMETER{NI}!>l2<!> -> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}!><!DEBUG_INFO_MISSING_UNRESOLVED{NI}!>l2<!>()<!> }<!><!>
|
|
}
|
|
}
|