Commit Graph

8031 Commits

Author SHA1 Message Date
Mikhail Glukhikh 38d6f3d548 Move FirRenderer to separate package 2022-07-14 09:38:31 +00:00
Mikhail Glukhikh 475e40b3e4 K1: report warning for inline virtual member in enum #KT-53148 Fixed
Related to KT-34372
2022-07-14 07:59:33 +00:00
Mikhail Glukhikh 70e15b281c K2: fix exception in deserializer for external setter #KT-53031 Fixed 2022-07-13 17:06:14 +00:00
Mikhail Glukhikh 7bbd8d3b95 FIR2IR entry points: don't create JvmDescriptorMangler if not needed 2022-07-13 13:11:49 +00:00
Mikhail Glukhikh 1a45284e86 Drop some unused from symbol table / IR converter 2022-07-13 13:11:49 +00:00
Mikhail Glukhikh 18a5b3b518 Drop unnecessary usages of OptIn(ObsoleteDescriptorBasedAPI) 2022-07-13 13:11:48 +00:00
Pavel Kunyavskiy 5cdda48487 [K/N] Extract const val initializers to place of usage
This would make behaviour more consistent with jvm. There is still
a difference in behaviour about point where side effects happen.

^KT-52970
2022-07-13 08:49:40 +00:00
Igor Chevdar e36bd5fe90 [box-tests] Added a multi-module box test 2022-07-13 08:01:51 +00:00
Ilya Chernikov 3471a1b899 minor: fix caching in Fir2Ir declarations storage 2022-07-13 08:45:20 +02:00
Mikhail Glukhikh c92d685415 FIR: postpone callable reference candidate in default argument case
#KT-53019 Fixed
2022-07-12 12:22:34 +00:00
Mikhail Glukhikh c36e160f24 FIR2IR: minor refactoring of AdapterGenerator 2022-07-12 12:22:33 +00:00
Vladimir Sukharev fd52f475cb Devirtualization fails to eliminate boxing in function reference context
^KT-49847 Fixed

Merge-request: KT-MR-6460
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2022-07-12 08:26:27 +00:00
pyos 5a2ec4a0d5 FIR CFG: merge data flow if called-in-place lambda may not be called 2022-07-11 18:11:30 +03:00
pyos 06c7572ee5 FIR CFG: process called-in-place lambdas as loops 2022-07-11 18:11:30 +03:00
pyos 8214e4f806 FIR CFG: check lambda concurrency by data flow, not control flow
var p: String? = something
    if (p != null) {
      foo(
        run { p = null; n() },
        // This lambda executes strictly after the one above by CFG,
        // but data flow for type inference comes from before the call
        // so p would get smartcasted if not forbidden.
	run { p.length; 123 }
      )
    }
2022-07-11 18:11:30 +03:00
pyos 82731802ee FIR CFG: add one more test case 2022-07-11 18:11:30 +03:00
Victor Petukhov 7d945d9bdc [FIR] Support loading rxjava3 nullability annotations on bounded wildcards
^KT-53041 Fixed
2022-07-11 12:44:08 +00:00
Victor Petukhov cb2dbca0c3 [FE 1.0] Support loading rxjava3 nullability annotations on bounded wildcards
^KT-53041 Fixed
2022-07-11 12:44:07 +00:00
Victor Petukhov 2057deb91b [FE 1.0] Create DONT_CARE type only for callable references with no expected type
Otherwise, it can be resolved safety

^KT-52270 Fixed
2022-07-11 12:44:06 +00:00
Victor Petukhov fb21937eb1 [FE 1.0] Report INVISIBLE_MEMBER on all qualified expressions including safe call ones
^KT-47621 Fixed
2022-07-11 12:44:06 +00:00
Igor Chevdar a61d05971e [box-tests] Added a couple of multi-module box tests 2022-07-10 17:56:36 +00:00
Nikita Nazarov 7287be6879 Add tests on variable spilling with debug mode enabled
#KT-48678 Fixed
2022-07-07 14:51:24 +03:00
Mikhail Glukhikh 777aa725c9 Add signature cache to FirBasedSignatureComposer 2022-07-06 10:02:12 +00:00
Mikhail Glukhikh e95fe060d6 FIR2IR: don't create signatures also for accessors & constructors 2022-07-06 10:02:12 +00:00
Mikhail Glukhikh 2880cd8d5a FIR2IR: provide more precise conversion type context at some use-sites 2022-07-06 10:02:11 +00:00
Mikhail Glukhikh 517614a190 FIR2IR: remove code duplication from CallAndReferenceGenerator 2022-07-06 10:02:10 +00:00
Mikhail Glukhikh bb0191b7d5 FIR2IR: don't calculate signatures for callables when possible 2022-07-06 10:02:10 +00:00
Mikhail Glukhikh 45eb9238b3 Fir2IrClassifierStorage: don't calculate signature in registerClass 2022-07-06 10:02:09 +00:00
Stanislav Erokhin d788a927c4 Change deprecations annotation order on Ranges#endExclusive property
We have [Int|Long|Char]Range classes in 2 different places:
- as separate class-files
- serialized in the kotlin_builtins file

For some reason our Kotlin compiler during the JVM compilation
re-arranging the order of the annotations, so in class file they
will be written in the following order:
- Deprecated
- SinceKotlin
- ExperimentalStdlibApi

But in the kotlin_builtins they will be stored the same way as
in the sources.
We need these 2 way to be synchronized, because stub's in IDE
cares about order.

After this commit IDE test BuiltInDecompilerConsistencyTest is fixed
2022-07-05 19:50:45 +00:00
Nikolay Krasko d080297c20 Revert "Add tests on variable spilling with debug mode enabled"
This reverts commit 65bb6abae4.
2022-07-05 11:04:50 +00:00
Ilya Kirillov 8f89f1b368 [Analysis API] add info about context receivers to the Analysis API 2022-07-05 10:34:28 +02:00
Pavel Kunyavskiy c1ec1d9d4c [K/N] Handle Unit? and Nothing? correctly in finally transformation
^KT-52985
2022-07-05 06:54:29 +00:00
Mikhail Glukhikh 730a5d1a88 FIR: introduce Java vs Kotlin class conflicts checker #KT-44441 Fixed 2022-07-04 13:28:58 +00:00
Simon Ogorodnik d94d832309 FIR Test. Fix isolate not called for FP tests 2022-07-04 12:49:05 +00:00
Victor Petukhov 3ed87c29c7 [FE 1.0] Substituted possible fixed type variables after completion in accordance with @OverloadResolutionByLambdaReturnType
^KT-48031 Fixed
2022-07-04 12:05:57 +00:00
Victor Petukhov 5b5da025f4 [FE 1.0] Don't throw empty intersection exception, return empty intersection type instead 2022-07-04 12:05:56 +00:00
Mikhail Glukhikh 4aed9511f6 FIR/FE10: fix false positives described in KT-24643 2022-07-03 19:10:02 +00:00
Mikhail Glukhikh 3223d3c3e9 Add test with false/true positives for KT-24643 2022-07-03 19:10:01 +00:00
Nikita Nazarov 65bb6abae4 Add tests on variable spilling with debug mode enabled
#KT-48678 Fixed
2022-07-02 18:29:18 +03:00
Mikhail Glukhikh 4737bb07df FIR: look for conflicting declarations more precisely 2022-07-01 15:07:48 +00:00
Mikhail Glukhikh 3092a84b6b Drop unreachable when branch in FirConflictsChecker 2022-07-01 15:07:48 +00:00
Ilya Chernikov 854127bcc8 Fix testdata after switching Kotlin to version 1.8
(see the previous commit with the same title for details)
2022-07-01 14:31:45 +02:00
Pavel Mikhailovskii 8a402bcacd KT-52875 Fix extension function literal creation with -Xlambdas=indy 2022-06-30 14:13:05 +00:00
Ilmir Usmanov a5084c2f69 JVM IR: Make receiver type of IrGetField not null
otherwise, it will be mapped to inline class type if underlying type
is primitive of nullable.

 #KT-52913 Fixed
2022-06-30 01:28:09 +00:00
Mikhail Glukhikh 38f4a35be2 FIR: introduce flexible types pretty rendering for no arguments case
#KT-52020 Fixed
2022-06-29 16:50:05 +00:00
Mikhail Glukhikh 31ec10142b FirRenderer: add renderAllModifiers and renderDetailedTypeReferences
Related to KT-52020
2022-06-29 16:50:04 +00:00
Mikhail Glukhikh b2a9ad079d Fix unreachable branch in ConeKotlinType.render() 2022-06-29 16:50:03 +00:00
Dmitriy Novozhilov 22dae9bff4 [FIR] Fix registration of multiple compiler plugins 2022-06-29 11:59:59 +00:00
Dmitriy Novozhilov 8b42638afa [Plugins] Introduce new API for registering compiler plugins
Original `ComponentRegistrar` exposes Project to its registration method,
  so plugins should manually register extensions to it. To prepare for
  possible unbound compiler from Project API in future new  `K2ComponentRegistrar`
  introduced which provides registration method without Project at all
2022-06-29 11:59:58 +00:00
Ilya Chernikov bb996c1b27 Switch kotlin version to 1.8
with appropriate fixes in testdata, tests and other
places.
2022-06-29 10:20:30 +02:00