Commit Graph

39735 Commits

Author SHA1 Message Date
Steven Schäfer 0da23198e6 JVM_IR: Add null-checks in SAM wrapper constructors (KT-50108) 2022-05-14 02:01:44 +02:00
Kristoffer Andersen 7f531d8426 [IR] Improve stepping/LVT behavior around destructuring 2022-05-13 23:19:27 +02:00
Kristoffer Andersen c3dbb44e5f [IR] Adjust LVT test expectations and mute accordingly 2022-05-13 23:19:27 +02:00
Kristoffer Andersen b81139ad36 [IR] More extensive LVT tests around destructuring
All tests in this commit _pass_ to document existing behavior, but
this will change in a separate commit as we reflect desired behavior
in the test expectations.
2022-05-13 23:19:27 +02:00
Denis.Zharkov e632689d90 FIR2IR: Fix case of using context receivers in property initializers 2022-05-13 18:04:02 +00:00
Denis.Zharkov b87412c5af FIR2IR: Fix substitution work for context receivers 2022-05-13 18:04:02 +00:00
Denis.Zharkov 9ec2411218 FIR: Fix behavior for context-receiver contained super class constructor
^KT-51889 Fixed
2022-05-13 18:04:02 +00:00
Denis.Zharkov 299c02a822 FIR: Introduce FirContextReceiverArgumentListOwner
Add it as a supertype for FirQualifiedAccess and FirDelegatedConstructorCall

^KT-51889 Related
2022-05-13 18:04:01 +00:00
Denis.Zharkov 81416d1c46 Fix codegen for context-receiver contained super class constructor calls
^KT-51889 In Progress
2022-05-13 18:04:01 +00:00
Svyatoslav Kuzmich 813b600555 [Wasm] Don't write .wat files in box tests
These files take space on CI, but they are not validated or processed
automatically in any way.

Disabled by default, enabled via kotlin.wasm.debugMode=1
2022-05-13 11:20:13 +00:00
Artem Kobzar 6da3b3b274 fix: remove unnecessary warnings for export declarations. 2022-05-13 11:10:17 +00:00
Artem Kobzar 4e06ff26d4 fix(KT-39423): add support of optional parameters to constructor + fix bug with optional parameters inside functions. 2022-05-13 10:46:32 +00:00
Roman Golyshev 254151d82c [FIR IDE] Use proper FirSessions in FirSupertypesResolution
Symbols might be from other modules, so we need to use corresponding
`FirSession`s; otherwise it would be impossible to query symbols
from `firProvider`

^KTIJ-21714 Fixed
2022-05-12 21:22:22 +04:00
Victor Petukhov 11eb5ce39c [FE] Check types in canHaveCommonSubtype for intersection emptiness with erasing nullability
It doesn't affect having common subtypes check but may lead to false positives

^KT-52364 Fixed
2022-05-12 15:11:27 +00:00
Ilya Kirillov b5ad6f5db4 [analysis api] move analysis session classes to separate packages, use KtAnalysisApiInternals to mark internal API 2022-05-12 16:15:14 +02:00
Dmitriy Novozhilov 2796d21ec6 [FIR] Create snapshot of tower data context for postponed callable referneces
This fixes an issue if type of some implicit receiver was changed because
  of changed smartcast in outer scope

^KT-51228 Fixed
2022-05-12 12:15:31 +03:00
Dmitriy Novozhilov 118073e5d6 [FIR] Cleanup code of transforming callable references 2022-05-12 12:15:31 +03:00
Dmitriy Novozhilov 4301b05e15 [FE] Add API version 1.9
^KT-52208 In progress
2022-05-12 12:14:11 +03:00
Ilya Chernikov 6b09ace099 FIR LT: fix bootstrap compilation error
if the existing list in the FRIENDS_PATH config property created with
Arrays.asList, it contains non-extendable list, and attempt to use
addAll on it leads to an exception.
2022-05-12 08:45:40 +02:00
Mads Ager 3d4e025602 Remove variable that is only ever written and never read. 2022-05-11 19:58:12 +03:00
Ilya Kirillov ecbf9cd4d5 [analysis api] fix ISE: No conversion was found for SYNTAX
^KT-51786 fixed
2022-05-11 13:14:44 +02:00
Ilya Kirillov 6e0eba7e00 [low level api] fix ISE: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImpl for CheckDslScopeViolation 2022-05-11 13:14:44 +02:00
Dmitriy Novozhilov be76cd39d2 [JS] Ignore some tests due to KT-52339 2022-05-10 16:16:55 +00:00
Ilmir Usmanov 4f53b085ec Do not override collection stub, if the override is suspend
but the stub is not. The other way around should be OK.

 #KT-52237 Fixed
2022-05-09 23:16:58 +00:00
pyos b19b265735 JVM_IR: generate continuation classes for suspend inline references
This is somewhat suboptimal since this results in `::suspendInline`
generating 2 classes while `{ suspendInline() }` only creates 1, but
it's the best allowed by the existing hierarchy of classes in stdlib. At
least it works?

^KT-50832 Fixed
2022-05-09 23:15:05 +00:00
Victor Petukhov 9f31f074da [FE 1.0] Take care callable reference candidates with recursive candidate return type
^KT-51844 Fixed
2022-05-09 19:23:43 +00:00
Victor Petukhov ec6ec20728 [FE 1.0] Fix subtyping for captured integer literal types
^KT-50877 Fixed
2022-05-09 19:23:42 +00:00
Victor Petukhov 7675361380 [FE 1.0] Continue completion of calls inside that builder inference call postponed type variables of which has already been inferred 2022-05-09 12:38:39 +00:00
Victor Petukhov b8030ec1de [FIR] Substitute lambda implicit receivers with builder inference stub types
^KT-51988 Fixed
2022-05-09 12:38:38 +00:00
Victor Petukhov 6027c2a9aa [FE] Substitute fixed type variables with inferred stub types
Actually, a type variable might be fixed into a stub type. Such stub type should be substituted before sub calls completion

^KT-51988 Fixed
2022-05-09 12:38:37 +00:00
Jinseong Jeon af32a65c78 AA: use existing utils to define library scope
No visible differences from end clients, and we can avoid uses/shares of
Jar file system across modules
2022-05-09 00:22:52 +02:00
Victor Petukhov 94433a1600 [FE 1.0] Postpone turning NON_VARARG_SPREAD_WARNING into error till 1.8 to have a deprecation cycle of proper duration
^KT-48162
2022-05-08 10:49:16 +02:00
Kristoffer Andersen a9479ec8d7 [EE-IR] Anticipate fake overrides in fragment lowerings 2022-05-06 22:10:19 +02:00
Alexander Udalov ba20549e13 Fix JVM target in tests using boolean comparisons
These tests don't work on JVM target 1.6 after 6d664bcd10 because we're
generating `Boolean.compare` which is only available since 1.8. (It is
not a big deal because JVM target 1.6 is prohibited for users now.)
2022-05-06 03:47:25 +02:00
Alexander Udalov 6d664bcd10 JVM IR: fix operand type for CompareTo intrinsic
It's incorrect to take the first parameter type from the expression
itself because it can be nullable if smart casts are used. And if it's
nullable, it's mapped to the wrapper type and calling
`comparisonOperandType` for it makes no sense. Instead, take the type
from the callee function, as it's guaranteed to be mapped to a JVM
primitive type.

E.g. in `test1` function in the added test, the problem was that the
dispatch receiver type of the call expression is `Double?`, which is
mapped to `java/lang/Double`, whereas we clearly wanted to obtain the
primitive `D` (double) type.

 #KT-52163 Fixed
2022-05-05 23:06:21 +02:00
Zalim Bashorov 11d9751844 [Wasm] Unmute inlineVararg 2022-05-05 21:03:39 +00:00
Zalim Bashorov 76806eba8a [Wasm] Mute failing tests in boxInline 2022-05-05 21:03:38 +00:00
Zalim Bashorov 2c20a71d08 [Codegen tests] Specify JVM as target backend for inferenceFlexibleTToNullable.kt 2022-05-05 21:03:37 +00:00
Zalim Bashorov a6e8912af0 [Wasm] Mute failing tests in box/delegatedProperty 2022-05-05 21:03:36 +00:00
Zalim Bashorov 6ebeeabe0f [Codegen tests] Fix the test (kt39588)
For negative case, throwing CCE, we already have the issue KT-8135
and dedicated tests:
* genericDelegateUncheckedCast1.kt
* genericDelegateUncheckedCast2.kt

Related issues: KT-8135 KT-39588 KT-48749 KT-49837
2022-05-05 15:47:54 +00:00
Mads Ager c6d7c23940 Always take java source before class files.
Also when searching for inner classes.

^Fixes KT-51025
2022-05-05 13:21:06 +02:00
Ilya Kirillov 7c202948cd [fir low level, fir] extract empty FirPredicateBasedProvider to a separate class 2022-05-05 10:43:12 +02:00
Alexander Korepanov 57f16e801f [JS IR] Materialize Unit more aggressively for IrCalls
Unit materialization for IrCall is required for operations with dynamic type.

However it produces useless Unit_getInstance() calls,
especially in return expressions. The pach also adds some heuristics
for reducing the amount of Unit_getInstance() calls from return expressions:
do not add Unit_getInstance() if return value has Unit type.

Relaited to KT-51139
^KT-23252 Fixed
2022-05-04 13:14:06 +00:00
Mikhail Zarechenskiy 677ec12b50 Revert "[EE-IR] Minor: run local function patching on all fragment code"
This reverts commit 722d876675.
Unfortunately, this commit breaks debugger tests in intellij part
2022-05-04 14:56:33 +02:00
Artem Kobzar 729e24d053 fix: make sealed classes abstract inside d.ts files. 2022-05-04 11:24:47 +00:00
Artem Kobzar a2b40acc98 feat: add WARNING on usage top-level exportable declarations with non-consumable identifiers. 2022-05-04 11:22:57 +00:00
pyos 239bcea3b9 JVM: write back to tailrec function parameters if possible
This makes the debugger update the values when entering a recursive
call, and also uses fewer variable slots.

This may also work on the JS backend, but Native would probably require
something else.

^KT-47203 Fixed
2022-05-04 10:00:08 +02:00
pyos ca446f008e IR: add a do-while builder function 2022-05-04 10:00:08 +02:00
Kristoffer Andersen 722d876675 [EE-IR] Minor: run local function patching on all fragment code 2022-05-04 01:41:13 +02:00
pyos effd21d074 JVM_IR: do not optimize suspend$$forInline functions
`$$forInline` functions do not pass through the state machine generator,
and optimizing `Ref`s before that changes how assignments inside lambdas
passed to `suspendCoroutine`, etc. behave: without a `Ref`, the
assignment is not reflected in the continuation object, so the variable
has old value on resumption.

These functions will be optimized later, after they are inlined
somewhere and the state machine is generated.

^KT-52198 Fixed
2022-05-02 20:18:08 +02:00