Roman Artemev
939da9dbc8
[KLIB] Take into account *.klib rebuild similar to *.jar
...
Fix multi-module incremental compilation. Fix allows to trigger klib
rebuild when dependency changed.
2021-01-26 19:23:23 +03:00
Roman Artemev
380225e0cb
[KLIB IC] Support special klib-build.log in IC test infrastructure
2021-01-26 19:23:23 +03:00
Roman Artemev
96ba3b873e
[IC] Add in-module tests for incremental compilation
...
Two tests to check recompilation when parameter with default value was
added or removed without changing use-site.
2021-01-26 19:23:23 +03:00
Roman Artemev
697d4675a2
[KLIB] Improve klib debugging implementing KotlinLibrary.toString()
2021-01-26 19:23:23 +03:00
Roman Artemev
2daf0cc11c
[JS IR] Support additional repositories in CLI (cli part)
2021-01-26 19:23:22 +03:00
Roman Artemev
cd9e341fa9
[JS IR] Support additional repositories in CLI (compiler part)
2021-01-26 19:23:22 +03:00
Simon Ogorodnik
e22711d17f
[FIR] Reuse empty scopes
2021-01-26 18:33:57 +03:00
Simon Ogorodnik
67267518f0
[FIR] Optimize tower group comparisons
...
Fix incorrect used bits calculation
bits debug
Disable tower group debugging
Extend comment
Proper to binary string
2021-01-26 18:33:57 +03:00
Simon Ogorodnik
4530cdefe5
[FIR] Implement proper equals/hashCode for TowerGroupKind.WithDepth
2021-01-26 18:33:57 +03:00
Vladimir Dolzhenko
8019dbe06c
Do not leak LowMemoryWatcher on plugin unload
...
#KT-44543 Fixed
2021-01-26 13:55:47 +00:00
Mikhail Glukhikh
76c2288e21
IrInterpreter: interpret IrGetField properly
2021-01-26 16:19:14 +03:00
Mikhail Glukhikh
b311e95487
FIR2IR: don't generate IR getter for const library properties
2021-01-26 16:10:09 +03:00
sebastian.sellmair
dcda47b502
Ensure that Decompiler and IDE agree on rendered function types with parameterized annotations
...
findDecompiledDeclaration.kt: Use same DescriptorRenderer options as Decompiler
DescriptorRendererImpl.kt: not enforce different AnnotationArgumentsRenderingPolicy for function type annotations
This will fix KTIJ-563 where rendered Descriptors are used as Keys
for GOTO navigation into decompiled sources.
^KTIJ-563 fixed
2021-01-26 12:24:53 +00:00
Mikhail Glukhikh
1a4b327210
FIR2IR: fix smart casts in case field is accessed
2021-01-26 12:27:09 +03:00
Mikhail Glukhikh
1c9064836e
FIR2IR: fix intersection type smart cast when synthetic property accessed
2021-01-26 12:26:50 +03:00
Alexander Gorshenev
504bdfc283
testData for binary compatibility tests on klib library evolution
2021-01-26 03:42:15 +03:00
Steven Schäfer
3e820ff3b1
JVM: Take inline class mangling state into account for default methods
2021-01-25 18:12:01 +01:00
Svyatoslav Kuzmich
f85263ca7f
[JS IR] Add fast path to JsCodeOutliningLowering
2021-01-25 19:18:44 +03:00
Svyatoslav Kuzmich
cb3b1f8ae2
[JS IR] Fix referencing Kotin variables in inline JS code
...
Fixed by outlining JS code that uses Kotlin variables making usages of
these locals explicit and preventing bugs due to one-sided variable renaming.
This prevents using Kotlin variables as lvalue in JS code.
2021-01-25 19:18:44 +03:00
Dmitry Petrov
708e6914bd
JVM JVM_IR hide sealed class constructors
2021-01-25 17:29:38 +03:00
Dmitriy Novozhilov
ca3bb02897
[TD] Update spec testdata after f06a5321
2021-01-25 17:16:54 +03:00
Dmitriy Novozhilov
f61a318c9d
[Test] Migrate AbstractBytecodeTextTest to new test infrastructure
2021-01-25 17:11:21 +03:00
Dmitriy Novozhilov
663d5026d8
[Test] Migrate FIR diagnostic spec tests to new infrastructure
...
This commit includes a lot of minor changes in testdata: new infrastructure
requires that each test file in one testdata file in one module must
have unique name, but a lot of existing spec tests didn't satisfy
this requirement
2021-01-25 17:08:32 +03:00
Dmitriy Novozhilov
0b45139b34
[Test] Fix OutOfMemoryError during extracting meta info from test
...
Previously CodeMetaInfoParser saved MatchResults for each meta info in
text (and for each meta info it was different string with text because
of extracting parsed part from original text), so it led to O(n^2)
memory complexity (where n is a size of original text).
Such complexity caused OOME in case of big testdata (~1k meta infos
for text of 4k lines)
2021-01-25 17:08:32 +03:00
Dmitriy Novozhilov
fd8795de99
[Test] Fix FirIdenticalChecker and update some FIR_IDENTICAL testdata
2021-01-25 17:08:32 +03:00
Dmitriy Novozhilov
98c22f9e59
[TD] Add forgotten bytecode dump
2021-01-25 17:08:32 +03:00
Dmitriy Novozhilov
5c0cfa87ba
[Test] Support some jvm codegen specific configuration directives
2021-01-25 17:08:31 +03:00
Dmitriy Novozhilov
7d4adaba21
[Test] Add ability to simply declaring mapping between directives and configuration keys
2021-01-25 17:08:31 +03:00
Dmitriy Novozhilov
5490689fea
[Test] Add ability to disable specific handler if there was an error from previous one
2021-01-25 17:08:31 +03:00
Dmitriy Novozhilov
42f9442728
[Test] Handle any Throwable from test instead of AssertionError
2021-01-25 17:08:31 +03:00
Victor Petukhov
c111c33950
Fix failing tests after 8bd78064be
2021-01-25 16:24:43 +03:00
Ilya Goncharov
aa1e23d9b0
[JS IR] Use origins for bridge with and without stable names
...
^KT-44415 fixed
2021-01-25 15:16:47 +03:00
Ilya Goncharov
57fdabdace
[JS IR] Add BRIDGE origin as ignore for stabitility of names
...
^KT-44415 fixed
2021-01-25 15:16:35 +03:00
Victor Petukhov
f06a5321a6
Approximate definitely not-null types for type parameter's types if they are already not-null (has not-null upper bounds)
...
^KT-44440 Fixed
2021-01-25 14:17:58 +03:00
Simon Ogorodnik
f2c1608c2b
Update testData
2021-01-25 13:53:45 +03:00
Denis.Zharkov
9548caf6ea
FIR2IR: Use TEST ClassBuilderFactory in for tests
...
It helps with bytecode printing when tests fail
2021-01-25 12:29:32 +03:00
Denis.Zharkov
8c30adc301
FIR2IR: Unwrap intersection overrides for intersection types
2021-01-25 12:29:31 +03:00
Denis.Zharkov
3a3d2ee3e9
FIR2IR: Fix mapping for intersection overrides of deserialized properties
2021-01-25 12:29:31 +03:00
Victor Petukhov
fdf0934ade
Don't generate txt dump for buildFlexibleEnhancement.kt diagnostic test
2021-01-25 12:16:13 +03:00
Victor Petukhov
8bd78064be
Do substitution of a type enhancement, not only lower and upper bounds
...
^KT-44439 Fixed
2021-01-25 12:14:34 +03:00
Victor Petukhov
83c93aca2e
Build type enhancement properly, by taking into account both bounds of the original flexible type
...
^KT-44420 Fixed
2021-01-25 11:36:49 +03:00
Nikolay Krasko
293f2f9950
Build: Replace Bintray with Space for kotlin-dependencies repository (KTI-466)
2021-01-24 15:04:41 +03:00
Mikhail Glukhikh
eed0f50c5d
Code cleanup: ConeAttributes
2021-01-23 10:56:43 +03:00
Mikhail Glukhikh
94e613dd01
FIR: support custom annotation-based type attributes
2021-01-23 10:56:42 +03:00
Mikhail Glukhikh
4cd6266bce
FIR: fix suspend type serialization
2021-01-23 10:56:40 +03:00
Mikhail Glukhikh
afe335e504
FIR: serialize ExtensionFunctionType attribute
2021-01-23 10:56:37 +03:00
Mikhail Glukhikh
9e5c9efadf
FIR2IR: don't generate IrGetObject for anonymous objects
2021-01-23 10:56:36 +03:00
Mikhail Glukhikh
06ee768c6a
FIR: in case of smart cast, use original type for FirThisRcvrExpression
...
Before this commit, we used type after smart cast both for original
FirThisReceiverExpression and for wrapping FirExpressionWithSmartCast.
However, this makes FIR2IR implicit cast generator work incorrectly
(it decides not to insert implicit cast because original type is the same).
After this commit, expressions have different types and implicit cast
generator works properly.
2021-01-23 10:56:34 +03:00
Mikhail Glukhikh
4fd4f504d0
FIR: make componentX functions operator
2021-01-22 18:11:57 +03:00
pyos
4a76ea6ecb
JVM: regenerate objects if they have been regenerated in parent contexts
...
This is a hack to work around the fact that type mappings should not be
inherited by inlining contexts for lambdas called from anonymous
objects. As the lambda can call the inline function again, this could
produce a reference to the original object, which is remapped to a new
type in the parent context. Unfortunately, there are many redundant
`MethodRemapper`s between the lambda and the class file, so simply
editing `TypeRemapper` does not work. Hence, this hack. For now.
(Issue found by compiling IntelliJ IDEA BTW.)
2021-01-22 13:39:20 +01:00