Igor Chevdar
a1eff7f4af
[IR] Set source offsets in SAM lowering
...
This is needed for debug info generating in K/N
2020-03-16 11:58:36 +03:00
Alexander Udalov
57fd449288
Minor, add check of const field modifiers to codegen test
...
#KT-29885
2020-03-13 23:26:12 +01:00
pyos
bdd88e1655
JVM_IR: place suspend markers in faux lambdas around inline references
...
Otherwise, the assumption that coroutine codegen makes about every
inlined function already having the markers breaks and it is no longer
true that calls to inline lambdas do not require them.
2020-03-13 18:33:41 +01:00
Roman Artemev
d27954a6d4
[IR] Use erased types in backing field initializer in case of generic delegated property
...
- Since neither IrProperty nor IrField is Type Parameter container
using of proprty's type parameter in IrField related code leads to
creation of "hanging" type parameters which should be considered as
incorrect IR.
- Such code designed to be prohibited in LV 1.5
- The fix makes use of erased type in such case
where type parameter is expected.
2020-03-13 17:28:31 +03:00
Roman Artemev
13a73b67de
[IR] Fix IrPropertyReference for delegated property
...
- Make sure that property CR passed to `getValue` doesn't have type
arguments.
2020-03-13 17:28:30 +03:00
Roman Artemev
34c17e2bed
[KLIB] Add regression to about VarAsFun type parameter leak
2020-03-13 17:28:30 +03:00
Roman Artemev
8c1772d623
[KLIB] Add regression test
2020-03-13 17:28:30 +03:00
Dmitriy Novozhilov
31776d9a3b
[CFA] Mark arguments of all annotation calls as USED_AS_EXPRESSION
...
Also revert hacky fix of KT-37294 introduced in 80caa063b
#KT-37447 Fixed
2020-03-13 14:32:28 +03:00
Mikhail Glukhikh
20c4a7b244
[FIR2IR] Introduce staged transformation (first step)
...
Now FE IR -> BE IR transformation is performed in multiple stages
controller by Fir2IrConverter. Stages are
* files & classes registration
* supertypes & type parameters handling
* functions & properties signature generation
* body generation
After each step we have guarantee (with exception of local classes &
type inference combination, and external symbols) that required symbols
(class/function/property/variable/type parameter)
are already bound to real declarations and have correct parents.
This commit also fixes incorrect parents for local classes
2020-03-13 12:18:02 +03:00
Alexander Udalov
a9f7ff254b
Add -Xno-optimized-callable-references to disable KT-27362 optimization
...
This argument is useful in situations where the stdlib version which the
code compiles against is different from the one which is available at
runtime, such as the case of kotlin-gradle-plugin, which depends on the
compiler/stdlib compiled by 1.4, but may be executed in Gradle where
only 1.3.x is available.
#KT-37435
2020-03-13 10:07:22 +01:00
Zalim Bashorov
7cf8697e30
[JS BEs] use star projection when type parameter used recursively
...
#KT-37128 Fixed
2020-03-13 10:15:56 +03:00
Zalim Bashorov
8c7562d338
[CJS BE] don't crash when intersection types passed for a reified parameter
...
#KT-37163 Fixed
2020-03-13 10:15:53 +03:00
Zalim Bashorov
415893b8aa
[JS CLI] revert disabling NI by default
2020-03-13 01:51:24 +03:00
Vladimir Dolzhenko
87242b419a
Improvements in KotlinCopyPasteReferenceProcessor
...
reduced scope of nonBlockingRead to avoid long rerun of it
used smart pointers to keep valid elements over changes
moved back to non-modal progress
Relates to #KT-37414
2020-03-12 22:42:58 +01:00
Victor Petukhov
b1c4b5f51b
NI: Analyze lambdas which are return arguments of another lambda
...
^KT-36044 Fixed
2020-03-12 23:29:09 +03:00
Georgy Bronnikov
426738b7d4
JVM_IR: Cache stubs in CollectionStubMethodLowering
2020-03-12 23:14:17 +03:00
Georgy Bronnikov
92268c8144
JVM_IR: do not generate excessive stubs for immutable collections
2020-03-12 23:14:17 +03:00
Zalim Bashorov
179ec41a6b
[JS BEs] Generate tests for whole "codegen/boxInline"
2020-03-12 17:22:33 +03:00
Alexander Udalov
3762b5cba7
Minor, remove extraneous field CodegenTestCase.coroutinesPackage
...
After a795c38eb7 , this field is available in the base class
KotlinBaseTest.
2020-03-12 13:51:40 +01:00
Alexander Udalov
244db9bcf9
JVM IR: don't rename fake overrides for fields
...
In case derived class has a field with the same name as the base class,
RenameFieldsLowering previously tried to rename one of the fields by
adding the "...$1" suffix, which led to NoSuchFieldError.
2020-03-12 13:51:40 +01:00
Mikhail Glukhikh
6fd8ccc293
[FIR2IR] Support (simple) conversion of captured types
2020-03-12 15:17:51 +03:00
Sergey Bogolepov
e919e7b79a
[Gradle][Native][Cache] Don't skip metadata-based interop libraries
...
`resolveSingleFileKlib` by default doesn't support klibs with
non-default ir providers. In case of cache generation for native interop
libraries we need to override this behavior because they have
ir_provider=kotlin.native.cinterop.
2020-03-12 18:11:47 +07:00
Dmitry Petrov
c0b15b1768
KT-37448 'this' in delegating constructor call may refer to outer object
2020-03-12 13:40:14 +03:00
Ilmir Usmanov
7efab887aa
JVM_IR: Do not generate accessor for private function
...
if the function is called in suspendCoroutine's lambda.
#KT-37242 Fixed
2020-03-12 11:15:46 +01:00
Georgy Bronnikov
fded6fb494
JVM_IR: fix suspendCoroutineUninterceptedOrReturn
2020-03-12 11:28:42 +03:00
Ilya Chernikov
3cbfdd19f5
Optimize constraints simplification
...
simplify only when affecting changes are detected
2020-03-12 08:02:46 +01:00
Ilya Chernikov
c2b866fe7a
Reduce number of constraints simplifications
...
assuming that MutableVariableWithConstraints is constructed either
with no initial constraints or already from simplified list
2020-03-12 08:02:46 +01:00
Ilya Chernikov
84a0e39956
Skip duplicates removal on constraints simplification
...
It is already coveren on addition. Speeds up inference a bit.
2020-03-12 08:02:46 +01:00
Ilya Chernikov
6f97745de2
Optimize MutableDiagnosticsWithSuppression
...
avoid modificationTracker and own diagnostics list initialization if
possible
2020-03-12 08:02:46 +01:00
Ilya Chernikov
4538e212db
Optimize hot addSubTypeConstraintAndIncorporateIt function
...
reduce number of allocations, optimize for cases with small number
of possible new constraints
2020-03-12 08:02:45 +01:00
Ilya Chernikov
357ceeae19
Avoid unnecessary freshTypeConstructor() calls
2020-03-12 08:02:45 +01:00
Ilya Chernikov
54f10a709a
Cache isProperType calculations in the constraint system
...
avoid expensive calculations with type.contains
2020-03-12 08:02:45 +01:00
Ilya Chernikov
70c89a28e1
Stop subtyping constraint search if equality constraints for...
...
all not fixed type vars are found
#KT-35626 fixed
2020-03-12 08:02:45 +01:00
Ilya Chernikov
b6c9432334
[minor] Optimize diagnostic reporting a bit
...
Eliminating a couple of function calls on reporting, speeds up
diagnostic tests for a few %
2020-03-12 08:02:45 +01:00
Ilya Chernikov
2727507d18
Fix diagnostic inferred type calculation for null in some cases
...
#KT-36222 fixed
2020-03-12 08:02:45 +01:00
Nikolay Krasko
1afd3d929a
201: Update to 201.5985.32
2020-03-12 03:02:28 +03:00
Mikhail Zarechenskiy
7c86911f44
Filter out PSI values & valueOf methods from Java structure
...
These methods were recently added in Java PSI for IJ 201 and now have
clash with the methods that we add on our side. Note that we can't
start using methods from PSI as is because of different nullability:
they have flexible types in their signatures while current methods
have not-null types
#KT-36095 Fixed
2020-03-12 00:15:03 +03:00
Mikhail Glukhikh
1321bf426b
[FIR] Define argument lists and their builders more accurately
2020-03-11 22:08:59 +03:00
Mikhail Glukhikh
3d17ce05b5
[FIR] Introduce FirResolvedArgumentList with argument-parameter mapping
...
#KT-36345 Fixed
2020-03-11 22:08:59 +03:00
Mikhail Glukhikh
6b0a3aa176
[FIR] Cleanup vararg handling during call completion
2020-03-11 22:08:59 +03:00
Mikhail Glukhikh
91d51b93e1
[FIR] Introduce FirArgumentList node
2020-03-11 22:08:58 +03:00
Dmitry Petrov
a9ab3ae192
KT-36047 Support when-with-subject in optimized 'when' generators
2020-03-11 18:09:17 +03:00
Ilmir Usmanov
fd70b10b17
JVM_IR: Generate suspend fun main wrapper as class instead of reference
...
This way, there is no getName, getOwner and getSignature generated.
#KT-37404: Open
2020-03-11 15:34:38 +01:00
Mark Punzalan
79fef09bf5
[JVM IR] Add tests for KT-15971.
2020-03-11 14:33:31 +01:00
Mark Punzalan
2239b5ceab
[JVM IR] Maintain KT-36188 bug compatibility between non-IR and IR
...
backends.
2020-03-11 14:33:31 +01:00
Mikhail Glukhikh
47ebd38534
FIR2IR: fix origin of object literal constructor call
2020-03-11 16:01:58 +03:00
Mikhail Glukhikh
8231377f6b
FIR2IR: convert qualifiers inside getClass properly
2020-03-11 16:01:57 +03:00
Mikhail Glukhikh
1812b490a1
FIR: set anonymous object constructor return type properly
2020-03-11 16:01:57 +03:00
Alexander Udalov
4d2ee279c0
Remove unneeded workaround for IBM JDK and older intellij-core
...
The underlying problem (IDEA-206446) was fixed a long time ago and the
compiler is no longer affected by it.
#KT-37286 Fixed
2020-03-11 12:49:38 +01:00
Svyatoslav Kuzmich
f113c22450
[JS IR BE] Fix enum entry initialization
...
Keep helper fields uninitialized. This way thier initialization
would not depend on field initialization order.
2020-03-11 14:28:20 +03:00