[FIR] Adapt positioning of NO_VALUE_FOR_PARAMETER to match K1

This commit is contained in:
Kirill Rakhman
2023-06-23 13:05:49 +02:00
committed by Space Team
parent 6d1d6e48c1
commit 5abab2197b
42 changed files with 70 additions and 194 deletions
@@ -8,7 +8,7 @@ fun test() {
foo(1, 2.0, true)
foo(1, third = true)
<!NO_VALUE_FOR_PARAMETER!>foo()<!>
foo<!NO_VALUE_FOR_PARAMETER!>()<!>
foo(0, 0.0, false, <!TOO_MANY_ARGUMENTS!>""<!>)
bar(1, third = true)
@@ -15,7 +15,7 @@ fun foo(a: A) {
a.foo()
a.foo(1)
a.<!NO_VALUE_FOR_PARAMETER!>bar()<!>
a.bar<!NO_VALUE_FOR_PARAMETER!>()<!>
a.bar(<!NO_VALUE_FOR_PARAMETER!>"")<!>
a.bar(y = 1)
a.bar("", 2)
@@ -29,6 +29,6 @@ fun test() {
// Bad
<!NO_VALUE_FOR_PARAMETER!>baz<!> {}
<!NO_VALUE_FOR_PARAMETER!>baz()<!> {}
baz<!NO_VALUE_FOR_PARAMETER!>()<!> {}
baz(<!NO_VALUE_FOR_PARAMETER!>other = false)<!> <!TOO_MANY_ARGUMENTS!>{}<!>
}
@@ -7,7 +7,7 @@ fun test() {
foo(1, second = 3.14, third = false, fourth = "!?")
foo(third = false, second = 2.71, fourth = "?!", first = 0)
<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>foo()<!>
foo<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>()<!>
foo(<!ARGUMENT_TYPE_MISMATCH!>0.0<!>, <!ARGUMENT_TYPE_MISMATCH!>false<!>, <!ARGUMENT_TYPE_MISMATCH!>0<!>, "")
foo(1, 2.0, third = true, "")
foo(second = 0.0, first = 0, <!NO_VALUE_FOR_PARAMETER!>fourth = "")<!>
@@ -590,7 +590,8 @@ object LightTreePositioningStrategies {
if (lastArgument != null) {
markRange(lastArgument, rightParenthesis, startOffset, endOffset, tree, node)
} else {
markRange(nodeToStart, rightParenthesis, startOffset, endOffset, tree, node)
val leftParenthesis = tree.findLastChildByType(argumentList, LPAR)
markRange(leftParenthesis?: nodeToStart, rightParenthesis, startOffset, endOffset, tree, node)
}
}
@@ -693,7 +693,8 @@ object PositioningStrategies {
if (lastArgument != null) {
markRange(lastArgument, rightParenthesis)
} else {
markRange(qualifiedAccess, rightParenthesis)
val leftParenthesis = argumentList.leftParenthesis
markRange(leftParenthesis ?: qualifiedAccess, rightParenthesis)
}
}
@@ -1,4 +1,3 @@
// COMPARE_WITH_LIGHT_TREE
// !CHECK_TYPE
package foo
@@ -28,8 +27,8 @@ fun <T> fooT2() : (t : T) -> T {
fun main(args : Array<String>) {
args.foo()()
<!NO_VALUE_FOR_PARAMETER!>args.foo1()()<!>
<!NO_VALUE_FOR_PARAMETER!><!UNRESOLVED_REFERENCE!>a<!>.foo1()()<!>
args.foo1()<!NO_VALUE_FOR_PARAMETER!>()<!>
<!UNRESOLVED_REFERENCE!>a<!>.foo1()<!NO_VALUE_FOR_PARAMETER!>()<!>
<!UNRESOLVED_REFERENCE!>a<!>.foo1()(<!UNRESOLVED_REFERENCE!>a<!>)
args.foo1()(1)
@@ -76,8 +75,8 @@ fun main1() {
}
fun test() {
<!NO_VALUE_FOR_PARAMETER!>{x : Int -> 1}()<!>;
<!NO_VALUE_FOR_PARAMETER!>(fun Int.() = 1)()<!>
{x : Int -> 1}<!NO_VALUE_FOR_PARAMETER!>()<!>;
(fun Int.() = 1)<!NO_VALUE_FOR_PARAMETER!>()<!>
<!ARGUMENT_TYPE_MISMATCH!>"sd"<!>.(fun Int.() = 1)()
val i : Int? = null
<!ARGUMENT_TYPE_MISMATCH!>i<!>.(fun Int.() = 1)();
@@ -1,4 +1,3 @@
// COMPARE_WITH_LIGHT_TREE
// !CHECK_TYPE
package foo
@@ -1,36 +0,0 @@
// !LANGUAGE: -InstantiationOfAnnotationClasses
annotation class Ann
annotation class Ann1(val a: Int)
annotation class Ann2(val a: Ann1)
annotation class Ann3(val a: Ann1 = Ann1(1))
annotation class Ann4(val value: String)
@Ann2(Ann1(1)) val a = 1
@Ann2(a = Ann1(1)) val c = 2
@Ann4("a") class MyClass
fun foo() {
<!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann()<!>
val a = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann()<!>
<!ANNOTATION_CLASS_CONSTRUCTOR_CALL, NO_VALUE_FOR_PARAMETER!>Ann1()<!>
<!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann1(1)<!>
bar(<!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann()<!>)
bar(a = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann()<!>)
val ann = javaClass<MyClass>().getAnnotation(javaClass<Ann4>())
ann!!.value()
}
fun bar(a: Ann = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann()<!>) {
if (<!USELESS_IS_CHECK!>a is Ann<!>) {}
}
operator fun String.invoke() {}
// from stdlib
fun <T> javaClass() : Class<T> = null <!CAST_NEVER_SUCCEEDS!>as<!> Class<T>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: -InstantiationOfAnnotationClasses
annotation class Ann
annotation class Ann1(val a: Int)
@@ -13,7 +13,7 @@ fun test() {
checkSubtype<KProperty1<A, Int>>(p)
checkSubtype<KMutableProperty1<A, Int>>(<!ARGUMENT_TYPE_MISMATCH!>p<!>)
checkSubtype<Int>(p.get(A()))
p.<!NO_VALUE_FOR_PARAMETER!>get()<!>
p.get<!NO_VALUE_FOR_PARAMETER!>()<!>
p.<!UNRESOLVED_REFERENCE!>set<!>(A(), 239)
val q = A::bar
@@ -1,13 +1,13 @@
// WITH_STDLIB
// FILE: test.kt
val bar2 by <!NO_VALUE_FOR_PARAMETER!>bar2()<!>
val bar2 by bar2<!NO_VALUE_FOR_PARAMETER!>()<!>
// FILE: lt/neworld/compiler/Foo.kt
package lt.neworld.compiler
class Foo {
val bar by <!NO_VALUE_FOR_PARAMETER!>bar()<!>
val bar by bar<!NO_VALUE_FOR_PARAMETER!>()<!>
}
// FILE: lt/neworld/compiler/bar/Bar.kt
@@ -19,7 +19,7 @@ class A
infix operator fun A.plus(a : Any) {
1.foo()
true.<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>foo()<!>
true.foo<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>()<!>
1
}
@@ -16,7 +16,7 @@ class C : T {
super.foo() // OK
super.<!UNRESOLVED_REFERENCE!>bar<!>() // Error
super.buzz() // OK, resolved to a member
super.<!NO_VALUE_FOR_PARAMETER!>buzz1()<!> // Resolved to an extension
super.buzz1<!NO_VALUE_FOR_PARAMETER!>()<!> // Resolved to an extension
super.buzz1(<!ARGUMENT_TYPE_MISMATCH!>""<!>) // Resolved to a member
}
}
@@ -1,34 +0,0 @@
// !LANGUAGE: +ContextReceivers
class File(name: String)
interface InputStream
interface AutoCloseScope {
fun defer(closeBlock: () -> Unit)
fun close()
}
class AutoCloseScopeImpl : AutoCloseScope {
override fun defer(closeBlock: () -> Unit) = TODO()
override fun close() = TODO()
}
context(AutoCloseScope)
fun File.open(): InputStream = TODO()
fun withAutoClose(block: context(AutoCloseScope) () -> Unit) {
val scope = AutoCloseScopeImpl() // Not shown here
try {
with(scope) { <!NO_VALUE_FOR_PARAMETER!>block()<!> }
} finally {
scope.close()
}
}
fun test() {
withAutoClose {
val input = File("input.txt").open()
val config = File("config.txt").open()
// Work
// All files are closed at the end
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +ContextReceivers
class File(name: String)
@@ -1,16 +0,0 @@
// See KT-7813: Call to functional parameter with missing argument: no error detected but compiler crashes
fun foo(p: (Int, () -> Int) -> Unit) {
// Errors except last call
<!NO_VALUE_FOR_PARAMETER!>p<!> { 1 }
<!NO_VALUE_FOR_PARAMETER!>p()<!> { 2 }
p(3) { 4 }
}
fun bar(p: (String, Any, () -> String) -> Unit) {
// Errors except last call
<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>p<!> { "" }
<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>p()<!> { "x" }
p(<!NO_VALUE_FOR_PARAMETER!>"y")<!> { "z" }
p("v", Any()) { "w" }
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// See KT-7813: Call to functional parameter with missing argument: no error detected but compiler crashes
fun foo(p: (Int, () -> Int) -> Unit) {
@@ -2,6 +2,6 @@ fun test1(i: Int) = { i ->
i
}(i)
fun test2() = <!NO_VALUE_FOR_PARAMETER!>{ i -> i }()<!>
fun test2() = { i -> i }<!NO_VALUE_FOR_PARAMETER!>()<!>
fun test3() = { i -> i }(1)
@@ -35,7 +35,7 @@ fun poll11(flag: Boolean) {
fun poll12(flag: Boolean) {
val inv = if (flag) { ::<!UNRESOLVED_REFERENCE!>bar3<!> } else { ::<!UNRESOLVED_REFERENCE!>foo3<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll13(flag: Boolean) {
@@ -45,12 +45,12 @@ fun poll13(flag: Boolean) {
fun poll14(flag: Boolean) {
val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>if (flag) { ::bar4 } else { ::foo4 }<!>
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll15(flag: Boolean) {
val inv = if (flag) { ::<!UNRESOLVED_REFERENCE!>bar5<!> } else { ::<!UNRESOLVED_REFERENCE!>foo5<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll16(flag: Boolean) {
@@ -65,7 +65,7 @@ fun poll17(flag: Boolean) {
fun poll2(flag: Boolean) {
val inv = when (flag) { true -> ::<!UNRESOLVED_REFERENCE!>bar<!> else -> ::<!UNRESOLVED_REFERENCE!>foo<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll21(flag: Boolean) {
@@ -75,12 +75,12 @@ fun poll21(flag: Boolean) {
fun poll22(flag: Boolean) {
val inv = when (flag) { true -> ::<!UNRESOLVED_REFERENCE!>bar3<!> else -> ::<!UNRESOLVED_REFERENCE!>foo3<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll23(flag: Boolean) {
val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>when (flag) { true -> ::bar4 else -> ::foo4 }<!>
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll24(flag: Boolean) {
@@ -100,7 +100,7 @@ fun poll26(flag: Boolean) {
fun poll3(flag: Boolean) {
val inv = when (flag) { true -> ::<!UNRESOLVED_REFERENCE!>bar<!> false -> ::<!UNRESOLVED_REFERENCE!>foo<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll31(flag: Boolean) {
@@ -110,12 +110,12 @@ fun poll31(flag: Boolean) {
fun poll32(flag: Boolean) {
val inv = when (flag) { true -> ::<!UNRESOLVED_REFERENCE!>bar3<!> false -> ::<!UNRESOLVED_REFERENCE!>foo3<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll33(flag: Boolean) {
val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>when (flag) { true -> ::bar4 false -> ::foo4 }<!>
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll34(flag: Boolean) {
@@ -135,7 +135,7 @@ fun poll36(flag: Boolean) {
fun poll4() {
val inv = try { ::<!UNRESOLVED_REFERENCE!>bar<!> } finally { ::<!UNRESOLVED_REFERENCE!>foo<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll41() {
@@ -145,17 +145,17 @@ fun poll41() {
fun poll42() {
val inv = try { ::<!UNRESOLVED_REFERENCE!>bar3<!> } finally { ::<!UNRESOLVED_REFERENCE!>foo3<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll43() {
val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>try { ::bar4 } finally { ::foo4 }<!>
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll44() {
val inv = try { ::<!UNRESOLVED_REFERENCE!>bar5<!> } finally { ::<!UNRESOLVED_REFERENCE!>foo5<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll45() {
@@ -170,7 +170,7 @@ fun poll46() {
fun poll5() {
val inv = try { ::<!UNRESOLVED_REFERENCE!>bar<!> } catch (e: Exception) { ::<!UNRESOLVED_REFERENCE!>foo<!> } finally { ::<!UNRESOLVED_REFERENCE!>foo<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll51() {
@@ -180,17 +180,17 @@ fun poll51() {
fun poll52() {
val inv = try { ::<!UNRESOLVED_REFERENCE!>bar3<!> } catch (e: Exception) { ::<!UNRESOLVED_REFERENCE!>foo3<!> } finally { ::<!UNRESOLVED_REFERENCE!>foo3<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll53() {
val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>try { ::bar4 } catch (e: Exception) { ::foo4 } finally { ::foo4 }<!>
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll54() {
val inv = try { ::<!UNRESOLVED_REFERENCE!>bar5<!> } catch (e: Exception) { ::<!UNRESOLVED_REFERENCE!>foo5<!> } finally { ::<!UNRESOLVED_REFERENCE!>foo5<!> }
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll55() {
@@ -240,7 +240,7 @@ fun poll66() {
fun poll7() {
val inv = ::<!UNRESOLVED_REFERENCE!>bar<!><!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll71() {
@@ -250,7 +250,7 @@ fun poll71() {
fun poll72() {
val inv = ::<!UNRESOLVED_REFERENCE!>bar3<!><!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
<!NO_VALUE_FOR_PARAMETER!>inv()<!>
inv<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun poll73() {
@@ -12,7 +12,7 @@ class Outer {
fun baz() {
// Diagnostic here could be better (why can't I call the constructor above?)
<!NO_VALUE_FOR_PARAMETER!>Inner()<!>
Inner<!NO_VALUE_FOR_PARAMETER!>()<!>
Inner(<!ARGUMENT_TYPE_MISMATCH!>1<!>)
Inner("")
}
@@ -20,7 +20,7 @@ class Outer {
}
fun foo() {
Outer.<!NO_VALUE_FOR_PARAMETER!>Inner()<!>
Outer.Inner<!NO_VALUE_FOR_PARAMETER!>()<!>
Outer.Inner(<!ARGUMENT_TYPE_MISMATCH!>1<!>)
Outer.Inner("")
}
@@ -31,7 +31,7 @@ import abc.Outer.Inner
import abc.Outer.Companion.Inner
fun bar() {
<!NO_VALUE_FOR_PARAMETER!>Inner()<!>
Inner<!NO_VALUE_FOR_PARAMETER!>()<!>
Inner(<!ARGUMENT_TYPE_MISMATCH!>1<!>)
Inner("")
@@ -1,11 +0,0 @@
// FILE: C.java
// See KT-10410
public class C {
public <T extends T> C(T t) {
}
}
// FILE: main.kt
fun foo() = <!NO_VALUE_FOR_PARAMETER!>C()<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: C.java
// See KT-10410
-8
View File
@@ -1,8 +0,0 @@
// COMPARE_WITH_LIGHT_TREE
fun Any.foo1() : (i : Int) -> Unit {
return {}
}
fun test(a : Any) {
<!NO_VALUE_FOR_PARAMETER!>a.foo1()()<!>
}
+1 -1
View File
@@ -1,4 +1,4 @@
// COMPARE_WITH_LIGHT_TREE
// FIR_IDENTICAL
fun Any.foo1() : (i : Int) -> Unit {
return {}
}
@@ -14,7 +14,7 @@ fun test() {
foo(1, "", <!TOO_MANY_ARGUMENTS!>""<!>)
bar(z = "")
<!NO_VALUE_FOR_PARAMETER!>bar()<!>
bar<!NO_VALUE_FOR_PARAMETER!>()<!>
bar(<!NO_VALUE_FOR_PARAMETER!>"")<!>
bar(1, 1, "")
bar(1, 1, "")
@@ -1,7 +1,7 @@
fun test1(f: String.() -> Unit) {
<!NO_VALUE_FOR_PARAMETER!>(f)()<!>
(f)<!NO_VALUE_FOR_PARAMETER!>()<!>
<!NO_VALUE_FOR_PARAMETER!>f()<!>
f<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun test2(f: (Int) -> Int) {
@@ -6,7 +6,7 @@ fun test1() {
fun test2(f: String.(Int) -> Unit) {
<!ARGUMENT_TYPE_MISMATCH!>11<!>.(f)(1)
11.<!NO_VALUE_FOR_PARAMETER!>(f)()<!>
11.(f)<!NO_VALUE_FOR_PARAMETER!>()<!>
}
fun test3() {
@@ -11,10 +11,10 @@ fun test(a: A) {
<!UNSAFE_IMPLICIT_INVOKE_CALL!>(a.x)<!>("")
with("") {
a.<!NO_VALUE_FOR_PARAMETER!>x()<!>
a.x<!NO_VALUE_FOR_PARAMETER!>()<!>
<!UNSAFE_IMPLICIT_INVOKE_CALL!>(a.x)<!>()
if (a.x != null) {
a.<!NO_VALUE_FOR_PARAMETER!>x()<!> // todo
a.x<!NO_VALUE_FOR_PARAMETER!>()<!> // todo
(a.x)()
}
}
@@ -23,8 +23,8 @@ fun test(a: A, b: B) {
}
with(b) {
a.<!NO_VALUE_FOR_PARAMETER!>foo()<!>
a.<!NO_VALUE_FOR_PARAMETER!>(foo)()<!>
a.foo<!NO_VALUE_FOR_PARAMETER!>()<!>
a.(foo)<!NO_VALUE_FOR_PARAMETER!>()<!>
(a.foo)()
@@ -65,8 +65,8 @@ fun test(a: A, b: B) {
}
with(b) {
a.<!NO_VALUE_FOR_PARAMETER!>foo()<!>
a.<!NO_VALUE_FOR_PARAMETER!>(foo)()<!>
a.foo<!NO_VALUE_FOR_PARAMETER!>()<!>
a.(foo)<!NO_VALUE_FOR_PARAMETER!>()<!>
(a.foo)()
@@ -1,17 +0,0 @@
class A {
val foo: B.() -> Unit get() = null!!
}
class B
fun test(a: A, b: B) {
with(b) {
a.<!NO_VALUE_FOR_PARAMETER!>foo()<!> // here must be error, because a is not extension receiver
a.foo(this)
(a.foo)()
(a.foo)(this)
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
class A {
val foo: B.() -> Unit get() = null!!
}
@@ -28,7 +28,7 @@ fun testNoArgs() {
}
fun testLambdaArg() {
<!NO_VALUE_FOR_PARAMETER!>oneLambdaArg()<!>
oneLambdaArg<!NO_VALUE_FOR_PARAMETER!>()<!>
oneLambdaArg {}
oneLambdaArg()
{}
@@ -40,7 +40,7 @@ fun testLambdaArg() {
<!TOO_MANY_ARGUMENTS!>{}<!>
)
oneLambdaArg() {}
<!NO_VALUE_FOR_PARAMETER!>oneLambdaArg()<!> // {}
oneLambdaArg<!NO_VALUE_FOR_PARAMETER!>()<!> // {}
oneLambdaArg() /* */ {}
oneLambdaArg() /*
block
@@ -95,7 +95,7 @@ fun testTwoLambdas() {
)
fun bar(): () -> Unit {
<!NO_VALUE_FOR_PARAMETER!>twoLambdaArgs()<!>
twoLambdaArgs<!NO_VALUE_FOR_PARAMETER!>()<!>
{}
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
@@ -1,4 +1,4 @@
val (a, b, c) = <!COMPONENT_FUNCTION_MISSING, COMPONENT_FUNCTION_MISSING, COMPONENT_FUNCTION_MISSING, NO_VALUE_FOR_PARAMETER!>A()<!>
val (a, b, c) = <!COMPONENT_FUNCTION_MISSING, COMPONENT_FUNCTION_MISSING, COMPONENT_FUNCTION_MISSING!>A<!NO_VALUE_FOR_PARAMETER!>()<!><!>
class A(val a: Int) {
operator fun component1() {}
@@ -3,7 +3,7 @@ open class B0(x: Int)
class A0 : B0 {
<!EXPLICIT_DELEGATION_CALL_REQUIRED!>constructor()<!>
constructor(x: Int) : <!NO_VALUE_FOR_PARAMETER!>super()<!>
constructor(x: Int) : super<!NO_VALUE_FOR_PARAMETER!>()<!>
}
// --------------------------
@@ -1,6 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class A {
constructor(x: Int)
}
val x = <!NO_VALUE_FOR_PARAMETER!>A()<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class A {
constructor(x: Int)
@@ -13,8 +13,8 @@ open class C2(val x: Int) {
typealias C2_Alias = C2
val test1 = <!API_NOT_AVAILABLE!>C1_Alias<!>()
val test2 = <!NO_VALUE_FOR_PARAMETER!>C2_Alias()<!>
val test2 = C2_Alias<!NO_VALUE_FOR_PARAMETER!>()<!>
class Test3 : <!API_NOT_AVAILABLE!>C1_Alias<!>()
class Test4 : <!NO_VALUE_FOR_PARAMETER!>C2_Alias()<!>
class Test4 : C2_Alias<!NO_VALUE_FOR_PARAMETER!>()<!>
@@ -1,3 +0,0 @@
// NI_EXPECTED_FILE
fun foo(first: Array<Any?>, second: Array<Any?>) = Pair(first.<!NO_VALUE_FOR_PARAMETER!>toCollection()<!>, second.<!NO_VALUE_FOR_PARAMETER!>toCollection()<!>)
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// NI_EXPECTED_FILE
fun foo(first: Array<Any?>, second: Array<Any?>) = Pair(first.toCollection<!NO_VALUE_FOR_PARAMETER!>()<!>, second.toCollection<!NO_VALUE_FOR_PARAMETER!>()<!>)
@@ -12,13 +12,13 @@ fun <E> List<*>.toArray(ar: Array<E>): Array<E> = ar
fun testArrays(ci: List<Int?>, cii: List<Int?>?) {
val c1: Array<Int?> = cii.sure().toArray(<!ARGUMENT_TYPE_MISMATCH, NO_COMPANION_OBJECT!>Array<Int?><!>)
val c2: Array<Int?> = ci.toArray(<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>Array<Int?>()<!>)
val c2: Array<Int?> = ci.toArray(Array<Int?><!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>()<!>)
val c3 = <!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>Array<Int?>()<!>
val c3 = Array<Int?><!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>()<!>
val c4 = ci.toArray<Int?>(<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>Array<Int?>()<!>)
val c4 = ci.toArray<Int?>(Array<Int?><!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>()<!>)
val c5 = ci.toArray(<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>Array<Int?>()<!>)
val c5 = ci.toArray(Array<Int?><!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>()<!>)
checkSubtype<Array<Int?>>(c1)
checkSubtype<Array<Int?>>(c2)
@@ -1,4 +1,4 @@
<!NO_VALUE_FOR_PARAMETER!>@JvmName()<!>
@JvmName<!NO_VALUE_FOR_PARAMETER!>()<!>
fun foo() {}
@JvmName(<!ARGUMENT_TYPE_MISMATCH!>42<!>)