Skip to content

Commit d3b2c6f

Browse files
mglukhikhSpace Team
authored and
Space Team
committed
K1: change depr. level of List.getFirst to HIDDEN but don't force it on overrides
#KT-65441 Fixed (cherry picked from commit 91e9fbd)
1 parent c041815 commit d3b2c6f

File tree

5 files changed

+41
-75
lines changed

5 files changed

+41
-75
lines changed

compiler/testData/diagnostics/testsWithJdk21/implementationsForSequencedCollection.kt

+12-12
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,35 @@
33
fun foo(ll: java.util.LinkedList<String>, al: ArrayList<String>, ad: ArrayDeque<String>, jad: java.util.ArrayDeque<String>) {
44
ll.addFirst("")
55
ll.addLast("")
6-
ll.<!DEPRECATION!>getFirst<!>()
7-
ll.<!DEPRECATION!>first<!> // synthetic property for getFirst()
6+
ll.getFirst()
7+
ll.first // synthetic property for getFirst()
88
ll.first() // stdlib extension on List
9-
ll.<!DEPRECATION!>getLast<!>()
10-
ll.<!DEPRECATION!>last<!>
9+
ll.getLast()
10+
ll.last
1111
ll.last()
1212
ll.<!DEBUG_INFO_CALL("fqName: java.util.LinkedList.removeFirst; typeCall: function")!>removeFirst()<!>
1313
ll.<!DEBUG_INFO_CALL("fqName: java.util.LinkedList.removeLast; typeCall: function")!>removeLast()<!>
1414
ll.<!DEBUG_INFO_CALL("fqName: kotlin.collections.reversed; typeCall: extension function")!>reversed()<!>
1515

1616
al.addFirst("")
1717
al.addLast("")
18-
al.<!DEPRECATION!>getFirst<!>()
19-
al.<!DEPRECATION!>first<!>
18+
al.getFirst()
19+
al.first
2020
al.first()
21-
al.<!DEPRECATION!>getLast<!>()
22-
al.<!DEPRECATION!>last<!>
21+
al.getLast()
22+
al.last
2323
al.last()
2424
al.<!DEBUG_INFO_CALL("fqName: java.util.ArrayList.removeFirst; typeCall: function")!>removeFirst()<!>
2525
al.<!DEBUG_INFO_CALL("fqName: java.util.ArrayList.removeLast; typeCall: function")!>removeLast()<!>
2626
al.<!DEBUG_INFO_CALL("fqName: kotlin.collections.reversed; typeCall: extension function")!>reversed()<!>
2727

2828
ad.addFirst("")
2929
ad.addLast("")
30-
ad.<!DEPRECATION!>getFirst<!>()
31-
ad.<!DEPRECATION!>first<!>
30+
ad.<!UNRESOLVED_REFERENCE!>getFirst<!>()
31+
ad.<!DEPRECATION_ERROR!>first<!>
3232
ad.first()
33-
ad.<!DEPRECATION!>getLast<!>()
34-
ad.<!DEPRECATION!>last<!>
33+
ad.<!UNRESOLVED_REFERENCE!>getLast<!>()
34+
ad.<!DEPRECATION_ERROR!>last<!>
3535
ad.last()
3636
ad.<!DEBUG_INFO_CALL("fqName: kotlin.collections.ArrayDeque.removeFirst; typeCall: function")!>removeFirst()<!>
3737
ad.<!DEBUG_INFO_CALL("fqName: kotlin.collections.ArrayDeque.removeLast; typeCall: function")!>removeLast()<!>
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,13 @@
1-
/newListMethods.kt:14:18: warning: this declaration overrides deprecated member but not marked as deprecated itself. Please add @Deprecated annotation or suppress. See https://youtrack.jetbrains.com/issue/KT-47902 for details
2-
override fun getFirst(): T = super.getFirst()
3-
^
4-
/newListMethods.kt:14:40: warning: 'getFirst(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getFirst()' member of List is redundant in Kotlin and might be removed soon. Please use 'first()' stdlib extension instead
5-
override fun getFirst(): T = super.getFirst()
6-
^
7-
/newListMethods.kt:15:18: warning: this declaration overrides deprecated member but not marked as deprecated itself. Please add @Deprecated annotation or suppress. See https://youtrack.jetbrains.com/issue/KT-47902 for details
8-
override fun getLast(): T = super.getLast()
9-
^
10-
/newListMethods.kt:15:39: warning: 'getLast(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getLast()' member of List is redundant in Kotlin and might be removed soon. Please use 'last()' stdlib extension instead
11-
override fun getLast(): T = super.getLast()
12-
^
13-
/newListMethods.kt:26:7: warning: 'getFirst(): E!' is deprecated. 'getFirst()' member of List is redundant in Kotlin and might be removed soon. Please use 'first()' stdlib extension instead
1+
/newListMethods.kt:26:7: error: unresolved reference: getFirst
142
x.getFirst()
153
^
16-
/newListMethods.kt:27:7: warning: 'getter for first: E!' is deprecated. 'getFirst()' member of List is redundant in Kotlin and might be removed soon. Please use 'first()' stdlib extension instead
4+
/newListMethods.kt:27:7: error: using 'getter for first: E!' is an error. 'getFirst()' member of List is redundant in Kotlin and might be removed soon. Please use 'first()' stdlib extension instead
175
x.first // synthetic property for getFirst()
186
^
19-
/newListMethods.kt:29:7: warning: 'getLast(): E!' is deprecated. 'getLast()' member of List is redundant in Kotlin and might be removed soon. Please use 'last()' stdlib extension instead
7+
/newListMethods.kt:29:7: error: unresolved reference: getLast
208
x.getLast()
219
^
22-
/newListMethods.kt:30:7: warning: 'getter for last: E!' is deprecated. 'getLast()' member of List is redundant in Kotlin and might be removed soon. Please use 'last()' stdlib extension instead
10+
/newListMethods.kt:30:7: error: using 'getter for last: E!' is an error. 'getLast()' member of List is redundant in Kotlin and might be removed soon. Please use 'last()' stdlib extension instead
2311
x.last
2412
^
25-
/newListMethods.kt:38:7: warning: 'getFirst(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getFirst()' member of List is redundant in Kotlin and might be removed soon. Please use 'first()' stdlib extension instead
26-
y.getFirst()
27-
^
28-
/newListMethods.kt:39:7: warning: 'getFirst(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getFirst()' member of List is redundant in Kotlin and might be removed soon. Please use 'first()' stdlib extension instead
29-
y.first
30-
^
31-
/newListMethods.kt:41:7: warning: 'getLast(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getLast()' member of List is redundant in Kotlin and might be removed soon. Please use 'last()' stdlib extension instead
32-
y.getLast()
33-
^
34-
/newListMethods.kt:42:7: warning: 'getLast(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getLast()' member of List is redundant in Kotlin and might be removed soon. Please use 'last()' stdlib extension instead
35-
y.last
36-
^
37-
/newListMethods.kt:50:7: warning: 'getFirst(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getFirst()' member of List is redundant in Kotlin and might be removed soon. Please use 'first()' stdlib extension instead
38-
z.getFirst()
39-
^
40-
/newListMethods.kt:51:7: warning: 'getFirst(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getFirst()' member of List is redundant in Kotlin and might be removed soon. Please use 'first()' stdlib extension instead
41-
z.first
42-
^
43-
/newListMethods.kt:53:7: warning: 'getLast(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getLast()' member of List is redundant in Kotlin and might be removed soon. Please use 'last()' stdlib extension instead
44-
z.getLast()
45-
^
46-
/newListMethods.kt:54:7: warning: 'getLast(): E!' is deprecated. Overrides deprecated member in 'java.util.AbstractList'. 'getLast()' member of List is redundant in Kotlin and might be removed soon. Please use 'last()' stdlib extension instead
47-
z.last
48-
^
13+

compiler/testData/diagnostics/testsWithJdk21/newListMethods.kt

+14-14
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ class A<T> : ArrayList<T>() {
1111
super.addLast(t)
1212
}
1313

14-
override fun <!OVERRIDE_DEPRECATION!>getFirst<!>(): T = super.<!DEPRECATION!>getFirst<!>()
15-
override fun <!OVERRIDE_DEPRECATION!>getLast<!>(): T = super.<!DEPRECATION!>getLast<!>()
14+
override fun <!OVERRIDE_DEPRECATION!>getFirst<!>(): T = super.getFirst()
15+
override fun <!OVERRIDE_DEPRECATION!>getLast<!>(): T = super.getLast()
1616

1717
override fun removeFirst(): T = super.removeFirst()
1818
override fun removeLast(): T = super.removeLast()
@@ -23,35 +23,35 @@ class A<T> : ArrayList<T>() {
2323
fun foo(x: MutableList<String>, y: ArrayList<String>, z: A<String>) {
2424
x.addFirst("")
2525
x.addLast("")
26-
x.<!DEPRECATION!>getFirst<!>()
27-
x.<!DEPRECATION!>first<!> // synthetic property for getFirst()
26+
x.<!UNRESOLVED_REFERENCE!>getFirst<!>()
27+
x.<!DEPRECATION_ERROR!>first<!> // synthetic property for getFirst()
2828
x.first() // stdlib extension on List
29-
x.<!DEPRECATION!>getLast<!>()
30-
x.<!DEPRECATION!>last<!>
29+
x.<!UNRESOLVED_REFERENCE!>getLast<!>()
30+
x.<!DEPRECATION_ERROR!>last<!>
3131
x.last()
3232
x.<!DEBUG_INFO_CALL("fqName: kotlin.collections.MutableList.removeFirst; typeCall: function")!>removeFirst()<!>
3333
x.<!DEBUG_INFO_CALL("fqName: kotlin.collections.MutableList.removeLast; typeCall: function")!>removeLast()<!>
3434
x.<!DEBUG_INFO_CALL("fqName: kotlin.collections.reversed; typeCall: extension function")!>reversed()<!>
3535

3636
y.addFirst("")
3737
y.addLast("")
38-
y.<!DEPRECATION!>getFirst<!>()
39-
y.<!DEPRECATION!>first<!>
38+
y.getFirst()
39+
y.first
4040
y.first()
41-
y.<!DEPRECATION!>getLast<!>()
42-
y.<!DEPRECATION!>last<!>
41+
y.getLast()
42+
y.last
4343
y.last()
4444
y.<!DEBUG_INFO_CALL("fqName: java.util.ArrayList.removeFirst; typeCall: function")!>removeFirst()<!>
4545
y.<!DEBUG_INFO_CALL("fqName: java.util.ArrayList.removeLast; typeCall: function")!>removeLast()<!>
4646
y.<!DEBUG_INFO_CALL("fqName: kotlin.collections.reversed; typeCall: extension function")!>reversed()<!>
4747

4848
z.addFirst("")
4949
z.addLast("")
50-
z.<!DEPRECATION!>getFirst<!>()
51-
z.<!DEPRECATION!>first<!>
50+
z.getFirst()
51+
z.first
5252
z.first()
53-
z.<!DEPRECATION!>getLast<!>()
54-
z.<!DEPRECATION!>last<!>
53+
z.getLast()
54+
z.last
5555
z.last()
5656
z.<!DEBUG_INFO_CALL("fqName: A.removeFirst; typeCall: function")!>removeFirst()<!>
5757
z.<!DEBUG_INFO_CALL("fqName: A.removeLast; typeCall: function")!>removeLast()<!>

compiler/testData/diagnostics/testsWithJdk21/newListMethodsImmutable.kt

+8-8
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ fun bar(x: List<String>) {
66
x.<!UNRESOLVED_REFERENCE!>addLast<!>("")
77
x.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>removeFirst<!>()
88
x.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>removeLast<!>()
9-
x.<!DEPRECATION, JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE!>getFirst<!>()
10-
x.<!DEPRECATION, JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE!>getLast<!>()
11-
x.<!DEPRECATION!>first<!>
12-
x.<!DEPRECATION!>last<!>
9+
x.<!UNRESOLVED_REFERENCE!>getFirst<!>()
10+
x.<!UNRESOLVED_REFERENCE!>getLast<!>()
11+
x.<!DEPRECATION_ERROR!>first<!>
12+
x.<!DEPRECATION_ERROR!>last<!>
1313
}
1414

1515
// Additional test for other SequenceCollection inheritor
@@ -18,10 +18,10 @@ fun baz(x: ArrayDeque<String>, y: LinkedHashSet<String>) {
1818
x.addLast("")
1919
x.removeFirst()
2020
x.removeLast()
21-
x.<!DEPRECATION!>getFirst<!>()
22-
x.<!DEPRECATION!>getLast<!>()
23-
x.<!DEPRECATION!>first<!>
24-
x.<!DEPRECATION!>last<!>
21+
x.<!UNRESOLVED_REFERENCE!>getFirst<!>()
22+
x.<!UNRESOLVED_REFERENCE!>getLast<!>()
23+
x.<!DEPRECATION_ERROR!>first<!>
24+
x.<!DEPRECATION_ERROR!>last<!>
2525

2626
y.addFirst("")
2727
y.addLast("")

core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsCustomizer.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ class JvmBuiltInsCustomizer(
7979
storageManager.createMemoizedFunction<Pair<String, String>, Annotations> { (methodName, extensionName) ->
8080
val annotation = moduleDescriptor.builtIns.createDeprecatedAnnotation(
8181
"'$methodName()' member of List is redundant in Kotlin and might be removed soon. Please use '$extensionName()' stdlib extension instead",
82-
forcePropagationDeprecationToOverrides = true,
82+
forcePropagationDeprecationToOverrides = false,
83+
level = "HIDDEN",
8384
replaceWith = "$extensionName()"
8485
)
8586
Annotations.create(listOf(annotation))

0 commit comments

Comments
 (0)