Commit Graph

63039 Commits

Author SHA1 Message Date
Mikhail Glukhikh 63aa5191da Move Fir2IrFakeOverrideGenerator to 'backend.generators' package 2020-03-18 17:09:35 +03:00
Mikhail Glukhikh 8f27129c36 [FIR2IR] Introduce & use components storage 2020-03-18 17:09:35 +03:00
Mikhail Glukhikh 175145ce4e [FIR2IR] Extract separate classifier storage from declaration storage 2020-03-18 17:09:34 +03:00
Dmitry Gridin 95b77f6386 AddJvmOverloadsIntention: disable for annotation classes
#KT-36482 Fixed
2020-03-18 13:51:56 +00:00
Valentin Kipyatkov 084276ef1f Suppress suggested refactoring for unused private and local declarations 2020-03-18 15:16:04 +02:00
Valentin Kipyatkov e95d1c1224 Do not suggest to update usages on renaming duplicated method or property 2020-03-18 15:16:04 +02:00
Valentin Kipyatkov 395ba7d008 Using new API 2020-03-18 15:16:04 +02:00
Dmitry Gridin 7a3f6f5312 Formatter: fix continuation indent in call chain
#KT-37545 Fixed
2020-03-18 12:37:28 +00:00
pyos 2c06503311 JVM_IR: partially fix inline methods using captured crossinline lambdas
The fields containing crossinline lambdas should be package-private to
avoid generating synthetic accessors, which break object regeneration.

Note that the inline methods cannot actually be called, as call sites
will attempt to read the captured lambda from a field through a *copy*
of the local containing the object, so these reads will not be inlined,
causing an exception at runtime:

    inline fun f(crossinline g: () -> Unit) = object : I {
        inline fun h() = g()
        // effectively `val tmp = this; return tmp.$g()`:
        override fun run() = h()
    }

    f {}.run() // NoSuchFieldError: $g

This particular example can be fixed by reusing locals for receiver
parameters in IrInlineCodegen, but explicitly assigning `this` to
another variable and calling an inline method on it will break it again.
(This is only applicable to the JVM_IR backend, as the non-IR one fails
to generate `f` at all for some other reason.)
2020-03-18 13:13:54 +01:00
Dmitry Petrov dd27b3d4f1 KT-36973 Keep private default interface members private 2020-03-18 14:18:47 +03:00
Dmitry Petrov 1c24a97b9e KT-36972 Don't create proxies for companion @JvmStatic $default in host
When creating proxy functions in a host class for @JvmStatic members of
companion object, skip functions for default parameters handling.
2020-03-18 13:33:56 +03:00
Yan Zhulanow 897c48f97e Add more robust check for plugin application order (KT-37245)
Cause build to fail if the 'kotlin-kapt' plugin is applied before the
  main Kotlin plugin ('kotlin' or 'kotlin-android').
  The 'logger.error()' prints an error message, however the build
  continues.
2020-03-18 18:26:17 +09:00
Alexander Podkhalyuzin 0247a300d1 Experimental features EP + completion.stats optional dependency
Fixed tests for Spring
2020-03-18 12:21:11 +03:00
Dmitriy Novozhilov f85022532d [FIR] Rename FirArraySetCall to FirAugmentedArraySetCall 2020-03-18 11:31:54 +03:00
Dmitriy Novozhilov 2b986194fb [FIR] Add desugaring of array assignments and resolve of it
#KT-37516 Fixed
2020-03-18 11:31:53 +03:00
Mikhail Glukhikh 26f919df03 Fix some nullable usages of not-null type parameters (KT-36770) 2020-03-18 10:24:26 +03:00
Denis Zharkov a2e7b6d20e FIR: Do not add "field" to accessor of a property with receiver 2020-03-18 10:22:10 +03:00
Dmitry Petrov ade18d144a KT-36810 Implement javaPrimitiveType intrinsic in JVM_IR 2020-03-17 22:56:45 +03:00
Dmitry Petrov 2851fab281 KT-36809 Implement javaObjectType intrinsic in JVM_IR 2020-03-17 22:56:45 +03:00
Mikhail Bogdanov aecd12fa12 Minor. Regenerate tests 2020-03-17 19:05:12 +01:00
pyos 2e542da91d JVM_IR: fix accesses from crossinline lambdas in other packages again 2020-03-17 16:38:32 +01:00
Denis Zharkov 7a1eb9214d FIR: Fix resolution for lambda returning resolved qualifier 2020-03-17 16:33:48 +03:00
Denis Zharkov e1312a752a FIR: Allow a field override another field with the same name 2020-03-17 16:33:48 +03:00
Denis Zharkov 7203499b7a FIR: Fix visibility check for protected within a companion 2020-03-17 16:33:48 +03:00
Denis Zharkov 170978a4f1 FIR: Move fixed tests from problems directory to common 2020-03-17 16:33:48 +03:00
Denis Zharkov a1b0b15521 FIR: Add test for KT-37478
^KT-37478 Fixed
2020-03-17 16:33:48 +03:00
Jinseong Jeon b71b0fa32c Update stepping tests to inspect source name, instead of method info. 2020-03-17 13:39:35 +01:00
Jinseong Jeon 5dc1651a44 JVM: missed line number for return expression. 2020-03-17 13:39:35 +01:00
Vladimir Dolzhenko c29f76580c Don't show modal progress dialog on calculate method parameter hint info
#KT-37537 Fixed
Relates to #EA-216268
2020-03-17 11:06:36 +01:00
Dmitry Petrov 6809f4439c Fix range-based 'for' loop with 'continue' in range bounds
1. Search for increment function in range element type, not in inferred
induction variable type
(which can be inappropriate, e.g., 'Nothing' in case of 'continue').

2. Handle nested loops with shared exit labels
(generated by JVM_IR for KT-37370 case).

KT-37370 KT-37373
2020-03-17 12:18:48 +03:00
Dmitry Petrov d5b65abc5d KT-37505 Add box test 2020-03-17 12:18:48 +03:00
Igor Yakovlev 3dc898b8ca Fix for change signature refactoring type resolve
Fixed #KT-37451
2020-03-17 12:06:59 +03:00
Igor Yakovlev 64bcc6d54f KotlinChangeSignature refactoring remove deprecated usage + refactoring 2020-03-17 12:06:59 +03:00
Dmitry Gridin 309ceef49a i18n: remove template name from bundle
#KT-37483
2020-03-17 15:26:35 +07:00
Vyacheslav Karpukhin eb68a0de47 Android import: simplify the check for android plugin version 2020-03-16 23:46:38 +01:00
Nikolay Krasko 45cba7b408 Update to 201.6251.22-EAP-SNAPSHOT 2020-03-16 23:46:06 +03:00
simon.ogorodnik f226d855e1 Fix NI flag in modularized test for old frontend 2020-03-16 21:42:05 +03:00
simon.ogorodnik 4844a90788 [FIR] KT-37453: Type argument mapping
#KT-37453 Fixed
2020-03-16 21:41:59 +03:00
Steven Schäfer 6a1e35389c JVM IR: Mangle interface implementation methods in inline classes 2020-03-16 18:48:16 +01:00
Vladimir Dolzhenko d21be3b665 Revert back fetchAnalysisResultsForElement
Relates to #KT-37467
#KT-37515 Fixed
2020-03-16 17:19:01 +01:00
Igor Yakovlev af1e3fb10d UL properties supports JvmSynthetic annotation for get: and set: modifiers
(+small refactoring)
Fixed #KT-34973
2020-03-16 18:42:17 +03:00
anastasiia.spaseeva 0e26194a27 [FIR] Test for KT-37431 2020-03-16 17:24:01 +03:00
Dmitriy Novozhilov 1b479c49a8 [FIR] Fix exhaustiveness checking for conditions with equals to object
#KT-37488 Fixed
2020-03-16 17:04:28 +03:00
Dmitriy Novozhilov 3765a1efaf [FIR] Add values and valueOf to deserialized enums 2020-03-16 17:04:28 +03:00
Dmitriy Novozhilov caec5fe352 [FIR-TEST] Add test for KT-37478 2020-03-16 17:04:28 +03:00
Dmitriy Novozhilov 37aa234bb7 [FIR] Fix transform of subject of when expressions with subject variable 2020-03-16 17:04:28 +03:00
Dmitriy Novozhilov 820da6edaa [FIR] Don't set up expected type for function body 2020-03-16 17:04:28 +03:00
Dmitriy Novozhilov 813003e12e [FIR] Approximate statements with ILT without expected type 2020-03-16 17:04:28 +03:00
Dmitriy Novozhilov 698f78570d [FIR] Add ability to pass data=null to transformInplace with data producer 2020-03-16 17:04:28 +03:00
Dmitriy Novozhilov fe95e37c88 [FIR] Add equality to Unit constraint for lambda without return expressions 2020-03-16 17:04:27 +03:00