Dmitry Petrov
560c269e05
PSI2IR KT-47450 prevent SOE when generating IR for deep expressions
2021-06-28 15:41:41 +03:00
Anton Bannykh
d303b783be
KLIB: serialization support for global signatures and lowered IR features
...
Including:
- returnable blocks
- raw function references
- standalone type and value parameters
- file symbols
2021-06-27 22:56:35 +03:00
Anton Bannykh
6f01789139
IR: public symbols for the new global signatures
2021-06-27 22:56:35 +03:00
Anton Bannykh
aa5e7c65be
KLIB: queue modules instead of ModuleDeserializationState
...
This approach is more general and expandable.
2021-06-27 22:56:35 +03:00
Anton Bannykh
e4707b236b
JS IC: new signatures
...
Lowered IR might have cross-file references for fields, type parameters
and other stuff. Thus there is a need to make file-local and scope-local
signatures unique at least within a module.
2021-06-27 22:56:34 +03:00
Anton Bannykh
eba0661016
JS IC: .proto update
2021-06-27 22:56:34 +03:00
Anton Bannykh
b77d481ac6
IR: hide assert behind a flag
...
In JS IC the symbol might be unbound at this moment
2021-06-27 22:56:34 +03:00
Anton Bannykh
dbeb09af89
IR: fix SecondaryCtorLowering.kt
2021-06-27 22:56:34 +03:00
Anton Bannykh
bd4e7ffef8
JS PIR: store signatures for lowered declarations inside PIR declarations
2021-06-27 22:56:33 +03:00
Anton Bannykh
e0bdabcf61
JS IR: fix js SAM lowering
2021-06-27 22:56:33 +03:00
Anton Bannykh
9462131014
JS IR: fix offsets in BlockDecompositionLowering
2021-06-27 22:56:33 +03:00
Anton Bannykh
600099585d
IR: refactor IdSignatureSerializer
...
Use a separate instance for each file.
2021-06-27 22:56:33 +03:00
Dmitriy Novozhilov
a8501bcef5
[FE 1.0] Fix message of INTEGER_OPERATOR_RESOLVE_WILL_CHANGE warning
...
^KT-47446 Fixed
2021-06-26 13:46:27 +03:00
Mikhael Bogdanov
5f62b72c82
Properly process big types
2021-06-26 06:10:16 +02:00
Mikhael Bogdanov
0fd1f549a9
Properly process special symbols during indy-with-constants concatenation
...
#KT-47320 Fixed
2021-06-26 06:10:16 +02:00
Zalim Bashorov
e947556aaa
[IR] Use separate directories for each module for IR dumps
...
It allows avoiding overwriting content generated for other modules.
Also, added using additional ".kt" prefix to file extension for dumps generated with Kotlin like syntax.
2021-06-26 01:38:04 +03:00
Ivan Kochurkin
568eb255f5
[FIR] Split UpperBoundViolated checkers on two files (expression and declaration), add FirUpperBoundViolatedHelpers
2021-06-25 20:57:48 +03:00
Ivan Kochurkin
a26ffde820
[FIR] Correct support of projections and type aliases for UPPER_BOUND_VIOLATED, extend tests
2021-06-25 20:57:47 +03:00
Ivan Kochurkin
66e2b44272
[FIR] Implement UPPER_BOUND_VIOLATED_IN_TYPEALIAS_EXPANSION diagnostics, fix handling of UPPER_BOUND_VIOLATED
2021-06-25 20:57:46 +03:00
Ivan Kochurkin
5741374883
[FIR] Report UPPER_BOUND_VIOLATED only on checkers stage, fix detection of missing cases and testData
2021-06-25 20:57:45 +03:00
Ivan Kochurkin
ada14413e0
[FIR] Fix location of UPPER_BOUND_VIOLATED, fix detecting of several diagnostics, simplify FirUpperBoundViolatedChecker.kt
2021-06-25 20:57:44 +03:00
Dmitry Petrov
1298ba431b
JVM_IR KT-47449 handle star projection arguments in default lambda types
2021-06-25 20:42:22 +03:00
Yahor Berdnikau
430306b23d
Change 'jvmTarget' backing property visibility to internal.
...
Allows to check if this property was updated by the user or not.
^KT-45611 In Progress
^KT-43095 In Progress
2021-06-25 16:28:54 +00:00
Denis.Zharkov
7645663d12
Deprecate (V)::a reference resolution to companion in FE 1.0
...
^KT-45315 Fixed
2021-06-25 18:41:14 +03:00
Denis.Zharkov
46b297477c
Deprecate ambiguous cases in FE 1.0: companion property vs enum entry
...
^KT-37591 Fixed
2021-06-25 18:41:12 +03:00
Dmitriy Novozhilov
24bb9a4e14
Approximate expected type before reporting INTEGER_OPERATOR_RESOLVE_WILL_CHANGE
...
^KT-47447 Fixed
2021-06-25 18:39:01 +03:00
Dmitriy Novozhilov
05883afc0a
Deprecate simplification of complex boolean constant expressions in whens and loops
...
^KT-39883 In Progress
2021-06-25 16:37:35 +03:00
Dmitriy Novozhilov
8a2e0cedf9
Add test for exhaustive when with subject of Boolean! type
2021-06-25 16:37:34 +03:00
Dmitriy Novozhilov
09994ee8ea
[FIR] Make type of safe call always nullable
...
^KT-46860 In Progress
2021-06-25 16:37:32 +03:00
Dmitriy Novozhilov
f18e38a49f
[FIR] Properly setup source element for FirSafeCallExpression
2021-06-25 16:37:31 +03:00
Dmitriy Novozhilov
26b9948e5f
[FE 1.0] Make type of safe call always nullable
...
^KT-46860 In Progress
2021-06-25 16:37:30 +03:00
Dmitriy Novozhilov
805fad980f
[FIR] Fix creating DEBUG_CALL_INFO for safe calls
2021-06-25 16:37:29 +03:00
Dmitriy Novozhilov
9116c341ba
[FIR] Fix detecting selector for safe calls in light tree
2021-06-25 16:37:27 +03:00
Anton Bannykh
1006eb0945
IR: fix offsets in constant folding lowering
2021-06-25 00:59:28 +03:00
Anton Bannykh
9d1a8b2d58
IR: fill type parameters in inline class static method delegation call
2021-06-25 00:59:27 +03:00
Anton Bannykh
61a08be6b4
JS IR: don't rename the local declarations
...
IR2JS handles clashing declarations anyway.
2021-06-25 00:59:25 +03:00
Anton Bannykh
a56cc89010
JS IR: fill enum constructor call type parameters
2021-06-25 00:59:24 +03:00
Anton Bannykh
eb0c13793b
JS IR: introduce 'lower per module' mode
...
This mode is closer to how IC supposed to work - reusing work
from dependencies, not re-lowering them.
2021-06-25 00:59:23 +03:00
Anton Bannykh
a4cb70af31
JS IR: gather statement origins in one place
...
Preparing to serialize lowered IR
2021-06-25 00:59:22 +03:00
Anton Bannykh
1b2f4ad071
dumpKotlinLike: add a flag to treat else as true
...
Deserialized IR always has `true` instead of `else` branch.
Dumping `else` as `true` helps comparing regular and serialized IR.
2021-06-25 00:59:20 +03:00
Tianyu Geng
84f8d4d315
FIR IDE: handle reference to package and outer classes
...
For a qualified name like `foo.bar.Outer.Inner`, FIR represents it as
one atomic FIR element. Hence, to properly resolve these names to the
corresponding package and class, we need some additional work.
2021-06-24 18:27:51 +02:00
Tianyu Geng
a537074e1e
FIR: add a boolean tracking if a class ref resolves to the companion object
2021-06-24 18:27:50 +02:00
Tianyu Geng
63c65edda2
FIR IDE: AddWhenRemainingBranchFix
...
The fix reuses logic that is already available from
FirWhenExhaustivenessTransformer to collect missing when branches. The
current logic unfortunately uses hackyAllowRunningOnEdt to shorten the
generated code.
2021-06-24 18:26:18 +02:00
Tianyu Geng
6ec247b861
FIR: accept when(nothing) {} as exhaustive
...
FE1.0 accepts this but FIR current rejects it.
2021-06-24 18:26:17 +02:00
pyos
26e3237b8c
JVM_IR: never rename public/protected fields
...
And if that causes a platform declaration clash, that's not a problem
that can be solved without breaking the ABI anyway.
#KT-47412 Fixed
2021-06-24 17:41:06 +03:00
pyos
88320cbb05
JVM_IR: produce collection stubs in a stable order
...
This means not storing intermediate results in any HashSets.
#KT-47411 Fixed
2021-06-24 14:47:49 +03:00
Denis.Zharkov
c8c558b575
FIR: Use Any? expect type to the argument list of ==
...
^KT-47409 Related
2021-06-24 12:17:46 +03:00
Denis.Zharkov
4892ad42b9
FIR: Do not mark not found classes' based types from Java as error
...
The same happens in FE1.0
2021-06-24 12:17:45 +03:00
Denis.Zharkov
201dded237
FIR: Fix serialization of delegated members
...
^KT-47413 Relates
2021-06-24 12:17:43 +03:00
Ilya Kirillov
8ac2a48eaf
Allow specify path of compiler extension points for ide tests
2021-06-23 20:36:20 +03:00