Commit Graph

100169 Commits

Author SHA1 Message Date
Alexander.Likhachev 282a4ca09d [Gradle] Add a test for KT-38317 2023-04-11 16:16:29 +02:00
Sebastian Sellmair d40a20f90b [Gradle] AbstractCInteropCommonizerTask: Do not use ':' character in fileName
":" is not allowed on Windows. Using _ instead

^KT-57796 Verification Pending
2023-04-11 13:55:05 +00:00
Nikolay Lunyak f826011c9f [FIR] KT-57655: Add the missing branch
^KT-57655 Fixed
2023-04-11 13:49:07 +00:00
Artem Kobzar fa0f9a9201 [K/JS] Change strategy for implicitly exported declarations if there is a cycled reference
^KT-57356 Fixed
2023-04-11 13:48:47 +00:00
Dmitriy Novozhilov 94f77add49 [FIR] Try to load properties in order according to kotlinx.serialization metadata extension
Move metadata extension with property order from kotlinx.serialization to core

After fix of KT-54792 properties will be deserialized in declaration order
  if corresponding class was compiled with modern compiler. But this order
  is needed for kotlinx.serialization for binaries compiled with any
  kotlin compiler >= 1.4. Since we don't plan to add any extension points
  into (de)serialization into FIR, we need to take into account existing
  metadata extension from kotlinx.serialization in compiler itself

^KT-57769 Fixed
2023-04-11 13:43:39 +00:00
Dmitriy Novozhilov 7685284cb7 [FIR] Do not sort declarations in deserialized classes, keep order from metadata
KT-57769
KT-54792
2023-04-11 13:43:38 +00:00
Dmitriy Novozhilov 839026b6fe [FIR2IR] Generate IR declarations in classes in strict order
Order is following:
- declared declarations in declaration (in source) order
- generated declarations in sorted order
2023-04-11 13:43:38 +00:00
Abduqodiri Qurbonzoda c961c15729 Commonize AssertionError(message, cause) constructor 2023-04-11 13:32:54 +00:00
Abduqodiri Qurbonzoda 8e995e6c62 [K/N] Deprecate ArrayIndexOutOfBoundsException
As a part of efforts to stabilize Native stdlib.
2023-04-11 13:32:54 +00:00
Abduqodiri Qurbonzoda be87b6950c [K/N] Hide AssertionError(cause: Throwable?) constructor
To align Native AssertionError behavior with JVM.

As a part of efforts to stabilize Native stdlib.
2023-04-11 13:32:54 +00:00
Abduqodiri Qurbonzoda 0c89224955 [K/N] Deprecate getTime and measureTime functions
As a part of efforts to stabilize Native stdlib.

Merge-request: KT-MR-9533
Merged-by: Abduqodiri Qurbonzoda <abduqodiri.qurbonzoda@jetbrains.com>
2023-04-11 13:31:12 +00:00
Nikolay Lunyak 077f49f33b [FIR JS] KT-57822: Don't report the diagnostic for non-qualifiers
^KT-57822 Fixed
2023-04-11 13:20:42 +00:00
Alexander Shabalin 375116dcf5 [K/N] Disable testPermanentObjectsFramework w/o GC ^KT-56233
Merge-request: KT-MR-9542
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2023-04-11 12:43:41 +00:00
Anna Kozlova 1aba9460f2 [LL] fix resolving of compiled type value parameter
KT-57917
occurs when UAST requests e.g. annotations for the target parameter
to check correctness of nullability or Nls
2023-04-11 12:04:50 +00:00
Ivan Kylchik b8b8570a60 Add instruction on how to debug kotlin gradle plugin integration tests 2023-04-11 11:59:12 +00:00
Ilya Goncharov d2c2a86cb7 [Gradle, JS] Existence of node_modules for up-to-date of kotlinNpmInstall
[Gradle, JS] No dev deps in packages_imported

^KT-57920 fixed
2023-04-11 11:52:29 +00:00
Dmitrii Gridin 7d37bb1f78 [LC] FakeFileForLightClass: drop stub access from equals/hashCode
^KT-57857 Fixed
2023-04-11 09:19:39 +00:00
Filipp Zhinkin d0847f2519 KT-57617 Delegate iterators of reversed list views to underlying list iterators
Improve the performance of reversed list view iterators by delegating to
underlying list iterators instead of using implementations provided by
the AbstractList.
Latter use AbstractList::get(index: Int) to implement next() and
previous() methods and depending on the underlying list's implementation
it may lead to worse performance.

The change also improves reversed list views test coverage.
2023-04-11 08:16:21 +00:00
Nikolay Lunyak 247f5529d2 [FIR] KT-57809: Allow external constructors without arguments
The constructor with the required parameters may
not have been defined, and since JS/IR box tests
pass, it seems, we don't have to resolve
into anything meaningful. We could generate
the appropriate constructor like dynamic type
members are generated, but, again, K1 IR doesn't
even contain a delegating constructor call.

^KT-57809 Fixed
2023-04-11 08:15:44 +00:00
Artem Kobzar 96a25b7b7d [K/JS TESTS] Migrate generating and running of invalidation tests to JUnit 5 2023-04-11 07:25:56 +00:00
Igor Chevdar ab892037df [K/N] Propagate IrMessageLogger to subcompilations
Otherwise, some warnings/errors (like from IrLinker) might be lost
2023-04-11 07:08:41 +00:00
Igor Chevdar 7db0bf0f3c [K/N] Propagate -Xlazy-ir-for-caches to subcompilations 2023-04-11 07:08:40 +00:00
Abduqodiri Qurbonzoda b65a68ca0d [K/N and WASM] Internalize NoWhenBranchMatchedException and UninitializedPropertyAccessException
As a part of efforts to stabilize Native stdlib.

Merge-request: KT-MR-9531
Merged-by: Abduqodiri Qurbonzoda <abduqodiri.qurbonzoda@jetbrains.com>
2023-04-10 21:10:51 +00:00
Vladimir Sukharev 85450c93a6 [K2/N] Add FirInfrastructureTestGenerated
Merge-request: KT-MR-8774
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-04-10 13:40:06 +00:00
Jaebaek Seo 820d027676 [K2] Avoid shortening duplicated PSI elements
The existing K2 reference shortener collects all the PSI elements to
shorten. As a result, it possibly shortens duplicated PSI elements. For
example,
```
// FILE: main.kt
package a.b.c

fun test(n: Int) {
    return if (<expr>x.y.z.Outer.Inner.VALUE0 > x.y.z.Outer.Inner.VALUE1</expr>) 1
    else n
}
// FILE: values.kt
package x.y.z

class Outer {
    object Inner {
        val VALUE0 = 13
        val VALUE1 = 17
    }
}
```
for the above code, the existing K2 reference shortener tried to shorten
- x.y.z.Outer.Inner -> Inner
- x.y.z.Outer.Inner.VALUE0 -> VALUE0
- x.y.z.Outer.Inner -> Inner
- x.y.z.Outer.Inner.VALUE1 -> VALUE1

`x.y.z.Outer.Inner` is included in the list to shorten twice.
When it actually shortens the PSI elements, it shortens only
- x.y.z.Outer.Inner.VALUE0 -> VALUE0
- x.y.z.Outer.Inner.VALUE1 -> VALUE1

but it imports all of
- x.y.z.Outer.Inner
- x.y.z.Outer.Inner.VALUE0
- x.y.z.Outer.Inner.VALUE1

As a result, it has unnecessary additional import directives.
This commit fixes the issue by avoiding duplicated shortening for a
single PSI element.
2023-04-10 11:00:11 +00:00
Sergey Bogolepov fb5b143c1d [K/N] Fix KT-57848 2023-04-10 09:59:29 +00:00
Dmitriy Dolovov 468d524a74 [PL][tests] Run K/N tests (old infra) with PL enabled 2023-04-08 20:46:38 +00:00
Abduqodiri Qurbonzoda 9f50f8ff2a [K/N] Internalize print/println(String) functions
As a part of efforts to stabilize Native stdlib.
2023-04-08 21:50:36 +03:00
Abduqodiri Qurbonzoda 709d6c38d2 [K/N] Internalize IntrinsicConstEvaluation annotation
As a part of efforts to stabilize Native stdlib.
2023-04-08 21:50:35 +03:00
Abduqodiri Qurbonzoda 54bbeae273 [K/N] Internalize TypeCastException
As a part of efforts to stabilize Native stdlib.
2023-04-08 21:50:34 +03:00
Abduqodiri Qurbonzoda df642dd3fb [K/N] Internalize valueOfForEnum and valuesForEnum functions
As a part of efforts to stabilize Native stdlib.
2023-04-08 21:50:33 +03:00
Abduqodiri Qurbonzoda 72f87ba55f [K/N] Internalize functions for throwing specific exception from C++ code
As a part of efforts to stabilize Native stdlib.
2023-04-08 21:50:33 +03:00
Abduqodiri Qurbonzoda 95f1d0b6ae [K/N] Internalize getNativeNullPtr() functions
As a part of efforts to stabilize Native stdlib.
2023-04-08 21:50:32 +03:00
Abduqodiri Qurbonzoda dbfdda2ba1 [K/N] Internalize Ref
As a part of efforts to stabilize Native stdlib.
2023-04-08 21:37:39 +03:00
Abduqodiri Qurbonzoda d51763c240 [K/N] Internalize IntrinsicType
As a part of efforts to stabilize Native stdlib.
2023-04-08 21:37:38 +03:00
Abduqodiri Qurbonzoda bd3f528da4 [K/N] Internalize NumberConverter
As a part of efforts to stabilize K/N stdlib.
2023-04-08 21:36:59 +03:00
Abduqodiri Qurbonzoda 2328cf5fcf [K/N] Internalize FloatingPointParser
As a part of efforts to stabilize K/N stdlib.
2023-04-08 21:36:59 +03:00
Ilya Gorbunov f8d001c21f KT-57298 createParentDirectories: handle already existing directory symlink 2023-04-08 15:21:12 +00:00
Ilya Gorbunov 912b65060e KT-55610 Deprecate k.j.Volatile annotation in Common and JS
Use k.c.Volatile in common AbstractMap instead
2023-04-08 15:07:56 +00:00
Ilya Gorbunov b8da3e69ce KT-55268 Make k.c.Volatile stable 2023-04-08 15:07:56 +00:00
Ilya Gorbunov 2dbff89098 Split tests for MutableList.shuffle and Iterable.shuffled 2023-04-08 14:47:30 +00:00
Ilya Gorbunov f13e127b0f KT-57607 Add test for MutableList.addAll at index
Also improve other operations test coverage
2023-04-08 14:47:30 +00:00
Ivan Kylchik 99d47da014 Drop a part of compileTimeConstants.kt that is not serializable in K2
Basically `val a = 10; val b = a + 20` will not be serialized for
`b` property because `a` is not constant
2023-04-07 18:07:12 +00:00
Ivan Kylchik 6909d9a2f9 [K2] Support proper serialization of string concatenation expressions 2023-04-07 18:07:11 +00:00
Ivan Kylchik 1e3e04173b [K2] Properly handle serialization of repeatable annotations 2023-04-07 18:07:11 +00:00
Ivan Kylchik 2d0acecbd2 [K2] Allow to evaluate constant property in FIR constant transformer 2023-04-07 18:07:10 +00:00
Ivan Kylchik 0354cf3ed7 [K2] Drop excess method from ConstValueProvider 2023-04-07 18:07:10 +00:00
Ivan Kylchik 8499891756 [K2] Properly serialize constant values
#KT-56190 Fixed
2023-04-07 18:07:10 +00:00
Ivan Kylchik ac480e2285 [K2] Support serialization of complex annotations
#KT-57611 Fixed
2023-04-07 18:07:09 +00:00
Ivan Kylchik 4a50bd9b16 [K2] Fix annotation serialization for simple cases
#KT-57611
2023-04-07 18:07:09 +00:00