pyos
60b254744c
JVM_IR: fix primitive comparison optimizations
...
1. the `primitive == object?.something` fusion should not apply to
`primitive.equals(object?.something)` because it can't;
2. coercions to Int are there for a reason - don't remove them;
3. better optimize `primitive == object?.something` -- the result
should be subject to if-null fusion, so it needs to have a specific
pattern that resembles safe calls.
#KT-47597 Fixed
2021-07-05 15:48:05 +03:00
sebastian.sellmair
5b5dddc2d1
[Commonizer] Restore TypeAliasCommonizer's Commutative property & TypeAliasTypeCommonizer: substitute underlying-type arguments
...
^KT-47574 The fix done here supports only one level of substituting
underlying type-arguments.
HierarchicalTypeAliasCommonizationTest.`KT-47574 - test long typealias chain`
will assert proper behaviour for nested chains.
2021-07-05 09:00:46 +00:00
sebastian.sellmair
448302d19b
[Commonizer] CommonizeNativeDistributionTest.commonize - apple platforms(): Require macos
2021-07-05 09:00:45 +00:00
sebastian.sellmair
1e801e77a2
[Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Remove unnecessary annotations and reformat file
2021-07-05 09:00:44 +00:00
sebastian.sellmair
684e51b0be
[Commonizer] Implement TypeCommonizer as AssociativeCommonizer
2021-07-05 09:00:44 +00:00
sebastian.sellmair
b29fd17d26
[Commonizer] Use AssociativeCommonizer signature to implement ClassOrTypeAliasTypeCommonizer
...
This drastically improves performance for now, since the previous
Adapter implementation was at least O(n^2). While the Adapter
implementation could have been reduced to O(n), the Signature of
StatelessCommonizer was misleading.
StatelessCommonizer will be introduced back later when other
Commonizer implementations are ready to be converted to a new
Signature.
2021-07-05 09:00:43 +00:00
sebastian.sellmair
20f55ef0b7
[Commonizer] Commonize 'const val' and 'val' properties
2021-07-05 09:00:42 +00:00
sebastian.sellmair
9794068f22
[Commonizer] typeAliasUtils: computeSuitableUnderlyingType: Consider commonized type-aliases
2021-07-05 09:00:42 +00:00
sebastian.sellmair
5ca81b01f0
[Commonizer] Improve AbstractCommonizerTest diagnostic message
2021-07-05 09:00:41 +00:00
sebastian.sellmair
d7022cb378
[Commonizer] Move ClassTypeCommonizer and TypeAliasTypeCommonizer into seperate files
2021-07-05 09:00:40 +00:00
sebastian.sellmair
8f73df0f85
[Commonizer] Implement new ClassOrTypeAliasTypeCommonizer
...
^KT-47432 Verification Pending
^KT-47434 Verification Pending
2021-07-05 09:00:39 +00:00
sebastian.sellmair
8e2780345c
[Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Un-ignore tests fore ^KT-47432 and ^KT-47434 and add additional test's
2021-07-05 09:00:39 +00:00
Pavel Kunyavskiy
fc75486611
[K/N] Debug tool for checking state at call points of unknown functions
...
After linking runtime, llvm-ir is modified to add checker function
call at all points where unknown function, which can possibly run long
is called. This function checks Native state is set, to avoid long locks
at gc.
2021-07-05 08:35:23 +00:00
Pavel Kunyavskiy
1ba04fdd21
[K/N] Introduce external calls checker compiler option
2021-07-05 08:35:23 +00:00
Pavel Kunyavskiy
271fc35082
[K/N] Minor debug info fix
2021-07-05 08:35:22 +00:00
Pavel Kunyavskiy
4c2d518cf5
[K/N] Move ClearCurrentThreadData() out of TestSupport
2021-07-05 08:35:21 +00:00
Pavel Kunyavskiy
65bebd3058
[K/N] Support AddressToSymbol using dladdr, if availible
2021-07-05 08:35:20 +00:00
Pavel Kunyavskiy
b7707d8755
[K/N] Introduce api for getting existing global by name from StaticData
2021-07-05 08:35:20 +00:00
Pavel Kunyavskiy
1db2903e4f
[K/N] Add utilities to check if thread is registered now
2021-07-05 08:35:19 +00:00
Vyacheslav Gerasimov
aff9d96e8a
Build: Update gradle enterprise and test distribution plugins
2021-07-04 18:15:36 +03:00
Dmitriy Novozhilov
6e1fce6b8b
[FIR] Fix creating scopes for enum entry initializers
...
Before we analyzed initializers of enum entry with scope for constructor
in implict type mode, so scope was untouchable. Now we analyze them
in body resolve phase, so previously we add value parameters to
constructors scope, which mess up scope of enum entry initializer
2021-07-04 13:29:03 +03:00
Dmitriy Novozhilov
1593c4859d
[FIR] Get rid of all conditional reads of FirDeclaration.resolvePhase
2021-07-04 13:29:03 +03:00
Dmitriy Novozhilov
43fe0c3bc1
[FIR] Don't initialize type of FirAnonymousObjectExpression
...
In some cases we check that some declaration (e.g. field) was
analyzed by checking type of it's body/initializer (is it implicit
or not), so if type of FirAnonymousObjectExpression is not implicit
we can skip resolve of anonymous object itself
2021-07-04 11:17:50 +03:00
Dmitriy Novozhilov
32173a408a
[FIR] Update type of getter after approximation of property type
2021-07-04 11:17:49 +03:00
Roman Artemev
d472b6c71c
[Psi2Ir] Replace custom IrProperty node with common one
2021-07-02 19:58:31 +03:00
Roman Artemev
4d5186d332
[Psi2Ir] Untangle psi2ir from frontend.java
...
Add extension method to detect and unwrap `JavaSyntheticProperty`
2021-07-02 19:58:30 +03:00
Dmitriy Novozhilov
3f5e6a79c7
Replace all throw error(...) with just error(...)
...
`throw` is not needed in this case, because `error(...)` already
raises exception (so `throw` is unreachable). Also after previous
commit compiler reports `UNREACHABLE_CODE` warning on such `throw`
2021-07-02 17:55:21 +03:00
Dmitriy Novozhilov
ae608ea67f
[FE 1.0] Always create return value for CallInstruction
...
This fixes missing `USED_AS_EXPRESSION` recordings
^KT-47527 Fixed
2021-07-02 17:55:20 +03:00
bracadabra
b2372ff0b9
Fix UTFDataFormatException on encoding long subplugin options.
...
ObjectOutputStream.writeUTF(String) has an unsigned short limit on
String length. On Projects with deep nested modules subplugin
options could produce String over this limit.
^KT-45202 Fixed
2021-07-02 16:17:54 +02:00
Simon Ogorodnik
f8ab16c823
[Build] Fix useFir project exclusion logic
2021-07-02 16:13:05 +03:00
Dmitriy Novozhilov
f7c68afb18
[FIR] Don't report EXPOSED_FUNCTION_RETURN_TYPE on property accessors
2021-07-02 15:55:12 +03:00
Dmitriy Novozhilov
3a34a2ca62
[FIR] Properly infer published effective visibility for member declarations
2021-07-02 15:55:10 +03:00
Dmitriy Novozhilov
f1bf3c0d5a
[FIR] Don't duplicate annotations from enum entry to its initializer
2021-07-02 15:55:09 +03:00
Dmitriy Novozhilov
9f547171da
[FIR] Properly calculate annotation targets for enum entries
2021-07-02 15:55:08 +03:00
Dmitriy Novozhilov
7baea7244a
[FIR] Don't report VALUE_PARAMETER_WITH_NO_TYPE_ANNOTATION on lambda parameters
2021-07-02 15:55:07 +03:00
Dmitriy Novozhilov
0ab4770f02
[FIR] Add correctly reported diagnostics to testdata
2021-07-02 15:55:05 +03:00
Dmitriy Novozhilov
1f1065d858
[FIR] Add specific checkers for each leaf expression type
2021-07-02 15:55:04 +03:00
Dmitriy Novozhilov
d3ba821371
[FIR] Add specific checkers for each leaf declaration type
2021-07-02 15:55:02 +03:00
Dmitriy Novozhilov
2446ad9510
Advance bootstrap to 1.6.0-dev-328
2021-07-02 15:46:20 +03:00
Igor Laevsky
ce6459d059
WASM: Optimize few cases where spread operator is used on an immediate array
2021-07-02 15:39:30 +03:00
Igor Laevsky
d835b3c164
WASM: Implement spread operator
2021-07-02 15:39:29 +03:00
Igor Laevsky
f5e59194b5
WASM: Fix linker issues around fake overrides
2021-07-02 15:39:28 +03:00
Igor Laevsky
74a87e2b79
WASM: Add few helper array library functions from Slava's changes
2021-07-02 15:39:26 +03:00
Ilya Matveev
dc8186cb83
[K/N][Interop] Fix throwing exceptions through bridges in opt mode
...
By default, C functions compiled to bitcode by clang have the
nounwind attribute. If such functions throws an exception, the
behaviour is undefined.
Our interop machinery can process foreign exceptions on call sites
(terminate or wrap them in Kotlin exceptions). But if the interop
bridges have the nounwind attribute, LLVM optimizations (particularly
inlining) may lead to the situation when a foreign exception is ignored by
our foreign exception handler.
This patch fixes the issue by compiling bridges with -fexceptions flag.
This flag makes clang to not set the nounwind attribute, so exceptions
can be thrown through C frames.
2021-07-02 11:51:06 +00:00
Dmitry Petrov
c132e1a39f
PSI2IR fix flaky SOE
2021-07-02 13:10:04 +03:00
Roman Golyshev
7b1052296e
Do not try to create a light class for classes in unexpected positions
...
Example of such class declaration would be `10 < class A` expression
The expression is uncompilable, but parsable. Unfortunately, the
FIR compiler does not save `class A` reference in it (because it
is not an expression, and only an expression can be a LHS or RHS of
binary expression `10 < ...`)
When we try to build light classes, we will try to find/build FIR
declaration for this class, but we won't be able to, and this will throw
an error
Adding this check should fix few
`FirKotlinHighlightingPassTestGenerated$Regression` tests
2021-07-02 04:07:26 +03:00
Dmitry Petrov
584310615c
JVM_IR KT-47499 use proper signature for 'clone' intrinsic
2021-07-01 22:10:47 +03:00
Alexander Udalov
e2f462095d
IR: move JVM-specific flexible types to backend.jvm
2021-07-01 19:35:46 +02:00
Alexander Udalov
2834c22a85
IR: add BackendContext.typeSystem and JvmIrTypeSystemContext
...
To be able to override JVM-specific behavior of IrTypeSystemContext in
JVM IR, for things like JVM flexible types.
2021-07-01 19:35:44 +02:00
Alexander Udalov
ae07127f08
JVM IR: support raw types in typeOf
2021-07-01 19:33:56 +02:00
Alexander Udalov
012c7c39af
Improve KType.toString for primitive type arguments in stdlib implementation
2021-07-01 19:33:55 +02:00
Alexander Udalov
7306256127
JVM IR: support mutability-flexible types
2021-07-01 19:33:55 +02:00
Alexander Udalov
0cb905a4b1
Support mutable collection types in typeOf
...
flexibleTypes_1_6.kt is fixed for JVM IR in a subsequent commit.
#KT-35877 Fixed
2021-07-01 19:33:55 +02:00
Alexander Udalov
6e975b3498
Support flexible types internally in typeOf
...
#KT-45066 Fixed
2021-07-01 19:33:55 +02:00
Alexander Udalov
26cdb2f928
Reformat reflection.jvm, fix inspections
2021-07-01 19:33:54 +02:00
Yahor Berdnikau
a44e82a1d9
Fix publication failed in projects which are using BOM.
...
^KT-47444 Fixed
2021-07-01 15:14:35 +00:00
Denis.Zharkov
6e763f5a61
Minor. Add review fixes
...
Didn't squash them because there are file-moving-renaming commits above
2021-07-01 17:49:40 +03:00
Denis.Zharkov
a3f64f65f2
FIR: Fix serialization of non-delegated members in FirDelegatedMemberScope
2021-07-01 17:49:39 +03:00
Denis.Zharkov
3671b14e5b
FIR: Fix compilation after rebase
2021-07-01 17:49:38 +03:00
Denis.Zharkov
44113f8501
FIR: Get rid of hacks related to previous structure of FirDelegatedScope
...
^KT-47413 Fixed
2021-07-01 17:49:36 +03:00
Denis.Zharkov
8a3a7a1ab5
FIR: Rename FirNewDelegatedMemberScope
2021-07-01 17:49:34 +03:00
Denis.Zharkov
4d28b9ea3b
FIR: Remove FirDelegatedMemberScope
2021-07-01 17:49:32 +03:00
Denis.Zharkov
a77cbb8f63
FIR: Rework FirNotImplementedOverrideChecker around delegated members reporting
2021-07-01 17:49:30 +03:00
Denis.Zharkov
a213ee0e01
FIR: Rework delegated scope
...
Now delegated members are generated just to declared scope
^KT-47413 In Progress
2021-07-01 17:49:29 +03:00
Denis.Zharkov
082dc3332e
FIR2IR: Move util methods closer to the single usage
2021-07-01 17:49:27 +03:00
Roman Artemev
9ef0909e39
Advance K/N version to make Gradle Klib IT tests work
2021-07-01 17:40:47 +03:00
Roman Artemev
7ef63fbb45
[Psi2Ir] Isolate type translator in file scope
...
Create TypeTranslator per file to avoid reusing it between files
2021-07-01 17:40:46 +03:00
Roman Artemev
ae3a2d4e71
Use DescriptorVisibilities.isPrivate instead of simple equality
2021-07-01 17:40:44 +03:00
Roman Artemev
55793d078c
[KLIB] Fix Mangler Checker to work with new signatures
2021-07-01 17:40:43 +03:00
Roman Artemev
09d30c91bf
[JS TESTS] Disable mangler checker in tests
2021-07-01 17:40:41 +03:00
Roman Artemev
a8d0e60328
[JS TESTS] Extend test frame with some features
...
- Setting up specific ABI version for module
- Disabling mangle verification
2021-07-01 17:40:40 +03:00
Roman Artemev
3403c464fe
[KLIB] Promote library ABI version
2021-07-01 17:40:39 +03:00
Roman Artemev
b8e5185b61
[KLIB] Add extra debug information for Local signatures
2021-07-01 17:40:37 +03:00
Roman Artemev
b5c28c1912
[KLIB] Introduce compatible mode for klibs.
...
Based on library ABI version linker could decide which signature mode
to be used to guarantee backward compatibility.
2021-07-01 17:40:36 +03:00
Roman Artemev
3e99951a66
[Psi2Ir] Fix IrText testdata
2021-07-01 17:40:33 +03:00
Roman Artemev
6cdac22a23
[IR] Introduce new IdSignatures
...
FileSignature, CompositeSignature, LocalSignature
They are needed to make possible reference any non-local declaration via
signature, including private signature, type parameters and so on.
- Support those new signatures in proto and klibs
- Rename `isPublic` -> `isPubliclyVisible` due to changed semantic
- Fix FIR
- clean up code
2021-07-01 17:40:31 +03:00
Roman Artemev
7139785036
[KLIB] Rename proto PublicIdSignature -> CommonIdSignature
2021-07-01 17:40:30 +03:00
Roman Artemev
0856cd82d7
[IR] Rename PublicSignature -> CommonSignature
2021-07-01 17:40:28 +03:00
Roman Artemev
5a284de2d4
add tests for private signatures
...
regenerate tests
add test for EnumEntry's argument declarations
add another test
regenerate test
fix test a bit
2021-07-01 17:40:27 +03:00
Svyatoslav Scherbina
2865d8bd45
Deprecate Obj-C 'alloc' and 'allocWithZone:' methods in Kotlin
...
Using these methods in Kotlin is usually a mistake.
2021-07-01 12:20:24 +00:00
Ilya Matveev
e5aa7e1625
[K/N] Disable some tests for noop GC
2021-07-01 10:05:02 +00:00
Alexander Shabalin
c286a9d8c6
Extract StackTrace from Exceptions
2021-07-01 07:23:47 +00:00
Roman Golyshev
bd0f48e07a
Add rendering for FirValueParameter in DECLARATION_NAME renderer
...
Without it NAME renderer renders parameters as '???'
2021-06-30 19:35:33 +03:00
Ivan Kylchik
c176d4d7b0
Rename createTempDirectory to getOrCreateTempDirectory
...
With cache this function can be used to get already created directory
by name.
2021-06-30 19:33:17 +03:00
Ivan Kylchik
88aa71b0aa
Add possibility to dump and test IR after execution of given lowering
2021-06-30 19:33:15 +03:00
Ilya Kirillov
330f15ff7d
Add uast-kotlin-idea-fir module to the list of ide modules
2021-06-30 16:38:31 +02:00
Konstantin Tskhovrebov
b45140d237
Update default K/N ios test simulator to "iPhone 12".
...
#KT-45416
2021-06-30 14:19:53 +00:00
Pavel Kunyavskiy
b2f0e0e0d3
Revert "Native: exclude tests that fail due to the KT-47405 and KT-47408"
...
This reverts commit 6ae6209031 .
2021-06-30 13:47:28 +00:00
Pavel Kunyavskiy
abf6ae70e2
[K/N] Add workaround options to arm64 targets
2021-06-30 13:47:28 +00:00
Dmitry Petrov
37b05cd9c2
JVM_IR KT-47120 treat outer name as case-insensitive for local classes
2021-06-30 14:04:22 +03:00
Andrey Zinovyev
1130344fb1
[lombok] Get field names directly from JavaClassImpl
...
Otherwise it fails with recursion on annotation types
#KT-47513 Fixed
2021-06-30 10:44:31 +03:00
Ivan Kochurkin
9b71175902
[FIR] Get rid of unnecessary creation of error expression for LightTree, other minor simplifications
2021-06-29 22:39:24 +03:00
Ivan Kochurkin
9f7a8c3948
[FIR] Implement ILLEGAL_SELECTOR
2021-06-29 22:39:23 +03:00
Ivan Kochurkin
a7276b25ae
[FIR] Add expression field to FirErrorExpression
...
It is used to report diagnostics even in erroneous code (within ILLEGAL_SELECTOR for instance).
2021-06-29 22:39:22 +03:00
Ivan Kochurkin
59257e47c9
[FIR] Implement FUNCTION_CALL_EXPECTED
2021-06-29 22:39:22 +03:00
Dmitriy Novozhilov
d048bccfa2
Build: fix detecting .iml files for kotlin-ide development
2021-06-29 21:03:31 +03:00
Dmitriy Novozhilov
5816d7ae9f
[FIR] Rename FirStatusOwner back to FirMemberDeclaration
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
f400477c70
[FIR] Remove generic parameter from FirDeclaration
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
511e564b20
[FIR] Add specific symbols for value parameters and enum entries
...
Make FirVariableSymbol a sealed class
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
62d781a70f
[FIR] Move delegateFieldSymbol from FirVariable to FirProperty
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
dc3ee6318c
[FIR] Rename type parameters of NullableMap from KEY, VALUE to K, V
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
6c8096643c
[FIR] Move danglingConstraints attribute to other attributes
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
eca77324e0
[FIR] Move declaration comparators to separate package
2021-06-29 21:03:29 +03:00
Dmitriy Novozhilov
725be466f0
[FIR] Move declaration utils to separate package
2021-06-29 21:03:29 +03:00
Dmitriy Novozhilov
10ff0975bc
[FIR] Split FirDeclarationUtil.kt to multiple files
2021-06-29 21:03:29 +03:00
Dmitriy Novozhilov
4225813d79
[FIR] Update CFG dumps according to changed order of visiting class children
2021-06-29 21:03:29 +03:00
Dmitriy Novozhilov
1324e9223f
[FIR] Make FirDeclaration an abstract class
2021-06-29 21:03:28 +03:00
Dmitriy Novozhilov
b3e5c6e079
[FIR] Add symbol to all declarations. Get rid of FirSymbolOwner
2021-06-29 21:03:28 +03:00
Dmitriy Novozhilov
39cd1c8504
[FIR] Squash AbstractFirBasedSymbol with FirBasedSymbol
2021-06-29 21:03:28 +03:00
Dmitriy Novozhilov
823cbc59b7
[FIR] Split FirAnonymousFunction to expression and declaration
2021-06-29 21:03:28 +03:00
Dmitriy Novozhilov
85b844c748
[FIR] Split FirAnonymousObject to expression and declaration
2021-06-29 21:03:27 +03:00
Victor Petukhov
ad89d43186
Prevent recursion on captured recursive type parameters of inner classes during computing bound for them
...
^KT-47459 Fixed
2021-06-29 20:53:54 +03:00
Victor Petukhov
e071281b20
Prevent recursion on erasion of raw types with interdependent type parameters
...
^KT-47480 Fixed
2021-06-29 20:53:52 +03:00
Jiaxiang Chen
0774d4d734
expose original message collector in CLIConfiguration
2021-06-29 19:01:09 +03:00
Simon Ogorodnik
54c914e3fd
[Build] Update NodeJs to 16.2.0
2021-06-29 18:35:13 +03:00
Simon Ogorodnik
021d053cfe
[Gradle, JS] Fix architecture detection for M1 in NodeJsPlatform
2021-06-29 18:35:11 +03:00
Dmitry Petrov
68c3f30aa7
JVM_IR KT-47510 indy callee parent is a package fragment, not a class
2021-06-29 17:00:31 +03:00
Konstantin Tskhovrebov
a54e758189
For XCFramework with default name register 'nameless' task 'assembleXCFramework`
...
#KT-42667
2021-06-29 13:11:14 +00:00
Ivan Gavrilovic
08c505f9ba
KT-47347: Kapt processors should not be input files for stub generation
...
This commit avoids passing kapt processors as sources for stub generation
task, and it also avoid using them as input files for stub generation.
Instead, it adds a new property that simply records if processors are
present (as going from empty to 1+ processors should re-run stubs).
Fixes #KT-47347
Test: Kapt3IT.kt
2021-06-29 15:11:29 +03:00
Aleksei.Cherepanov
d564bfd450
Fix visibility for JPS build
2021-06-29 14:36:50 +03:00
max-kammerer
71d59f89cb
Fix type
2021-06-29 12:54:43 +02:00
Andrei Klunnyi
72d188efd9
Update contributing guide
...
After Kotlin-IDE-plugin is moved to intellij repository, this commit
updates contributing.md guide with corresponding references.
Other than that brief information on current repository is provided.
2021-06-29 10:46:29 +00:00
Ilya Goncharov
b678cc3c90
[JS IR] Fast return in boolean externals lowering
...
- Put fqname when available instead of just name
2021-06-29 10:12:56 +00:00
Ilya Goncharov
b03af384af
[JS IR] Add test with exception diagnostic of boolean in externals
2021-06-29 10:12:56 +00:00
Ilya Goncharov
82f979b11f
[JS IR] Add property name to boolean in externals diagnostic
2021-06-29 10:12:55 +00:00
Ilya Goncharov
21a3494bca
[JS IR] Add test with boolean in external interface
...
[JS IR] Add possibility to safely access Boolean in external declaration
[JS IR] Add diagnostic for booleans in externals
2021-06-29 10:12:54 +00:00
Tianyu Geng
2e049c1208
FIR DFA: fix CFG with normal arg after lambda [KT-46825]
...
The fix is a bit hacky, but it's very simple. In addition, it still does
not handle the case where the receiver is a lambda function. But such
case seems to be fairly rare in practice.
2021-06-29 10:46:41 +03:00
Tianyu Geng
b78b50e1f8
FIR DFA: workaround KT-46826
2021-06-29 10:46:40 +03:00
Tianyu Geng
0ecc752813
FIR checker: report SMARTCAST_IMPOSSIBLE for local variables
2021-06-29 10:46:38 +03:00
Alexander Shabalin
092750e215
Fix race in Lazy for the new MM
2021-06-29 06:29:57 +00:00
Alexander Shabalin
455625bcee
Use FreezableAtomicReference in unhandled exception hook
2021-06-29 06:29:57 +00:00
Dmitry Gridin
fe855d09d8
fix idea compilation
2021-06-29 10:46:47 +07:00
Dmitry Gridin
274bae1d05
KtArrayAccessReference: remove redundant functions
2021-06-29 10:04:27 +07:00
Alexander Udalov
4b7fa44e80
CLI: fix resolution of Java records as single file roots
...
#KT-46764 Fixed
2021-06-29 01:22:08 +02:00
Ivan Kochurkin
e295849733
[FIR] Refactor FirSupertypesChecker: split big function on small ones
2021-06-29 02:00:11 +03:00
Ivan Kochurkin
fb9ce06ff5
[FIR] Implement DELEGATION_NOT_TO_INTERFACE
2021-06-29 02:00:11 +03:00
Ivan Kochurkin
c3a6ba52f6
[FIR] Implement CLASS_CANNOT_BE_EXTENDED_DIRECTLY
2021-06-29 02:00:10 +03:00
Ivan Kochurkin
92d7a61b4f
[FIR] Implement INCONSISTENT_TYPE_PARAMETER_VALUES, INCONSISTENT_TYPE_PARAMETER_BOUNDS
2021-06-29 02:00:09 +03:00
Ivan Kochurkin
ec20f52707
[FIR] Implement EXPANDED_TYPE_CANNOT_BE_INHERITED, PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE
...
Add `starAsModifier` to `modifierSetPosition`
2021-06-29 02:00:08 +03:00
Ivan Kochurkin
937846b62d
[FIR] Implement TYPEALIAS_SHOULD_EXPAND_TO_CLASS
2021-06-29 02:00:06 +03:00
Ivan Kochurkin
e8a790993b
[FIR] Add ConeUnsupportedDynamicType
2021-06-29 02:00:03 +03:00
Denis.Zharkov
0ec693db89
Fix parsing regression related to T!!
...
^KT-47445 Fixed
2021-06-28 21:48:13 +03:00
Dmitry Petrov
768afc5ba4
JVM_IR KT-47492 fix 'for' loop generation
2021-06-28 21:07:54 +03:00
Roman Artemev
6993b86d3b
[IR] Fix IrCapturedType equals/hashCode
...
It could lead to SOE if CT has itself as superType
- fix KT-47424
2021-06-28 20:43:14 +03:00
Dmitry Petrov
7ccefebf1c
PSI2IR flatten more levels of indirection to avoid SOE in big exprs
2021-06-28 18:18:27 +03:00
Igor Yakovlev
cd0ea7f7f7
[FIR] Add explicit types to needReplacePhase transformers methods
2021-06-28 17:21:43 +03:00
Igor Yakovlev
30c381f16d
[FIR] Fix invalid CallableId for methods in anonymous objects
2021-06-28 17:21:42 +03:00
Abduqodiri Qurbonzoda
47aa04d55d
Test fix: java6 doesn't throw on invalid AbstractMutableList.addAll index
...
If the collection of elements to be added is empty, java6 implementation
of AbstractMutableList.addAll doesn't throw on invalid index.
The failing test was introduced in 59031543e2
which fixed #KT-47211.
2021-06-28 13:58:41 +00:00
Zalim Bashorov
a908e5576d
[JS] Extract sourcemap generating related files to a separate module
...
It's required to reuse the same infrastructure in the new backend.
2021-06-28 16:04:09 +03:00
sebastian.sellmair
a63c179227
KotlinNativePlatformDependencies: Ensure 'commonizeNativeDistributionTask' is registered when 'isAllowCommonizer' is true
2021-06-28 13:00:19 +00:00
Svyatoslav Scherbina
b3980f9555
kotlin-native/samples: fix cocoapods after faulty cherry-pick 64129314
...
Move its source file to where it belongs.
2021-06-28 12:56:09 +00:00
Dmitry Petrov
560c269e05
PSI2IR KT-47450 prevent SOE when generating IR for deep expressions
2021-06-28 15:41:41 +03:00
Dmitriy Novozhilov
c4d9945782
Fix JPS build after removal of IDE plugin from repo
2021-06-28 14:32:24 +03:00
Ilya Goncharov
b76cbdaa41
[Gradle, JS] Remove redundant worksapces properties in yarn extensions
2021-06-28 13:38:04 +03:00
Ilya Goncharov
e3c291db27
[Gradle, JS] Not rewrite package.json if json was not changed
2021-06-28 13:38:03 +03:00
Ilya Goncharov
6219eb24c0
[Gradle, JS] Remove redundant test
2021-06-28 13:38:02 +03:00
Ilya Goncharov
1cc5a9493c
[Gradle, JS] RootPackageJson task with up-to-date status
2021-06-28 13:38:01 +03:00
Ilya Goncharov
f182a1c750
[Gradle, JS] Sort for tools npm dependencies
2021-06-28 13:37:58 +03:00
Ilya Goncharov
3fc2a77281
[Gradle, JS] Remove redundant caching infrastructure
2021-06-28 13:37:57 +03:00
Ilya Goncharov
4d2376ac4c
[Gradle, JS] Use package.json files instead of pre-package.json
2021-06-28 13:37:55 +03:00
Ilya Goncharov
f8bd440356
[Gradle, JS] Not force to write package.json in rootPackageJson
2021-06-28 13:37:53 +03:00
Ilya Goncharov
c4a1053aa7
[Gradle, JS] Add imported packages as workspace, not file dependencies
2021-06-28 13:37:52 +03:00
Alexander Udalov
f430d569d0
Fix warnings in js-ir/runtime/jsIntrinsics.kt
...
Suppress "UNUSED_PARAMETER" to fix compilation warnings. Also suppress
"unused" to make the file less yellow in the IDE.
Also enable `-Werror`, unless Gradle property
`kotlin.build.disable.werror` is set to true.
2021-06-28 12:19:35 +02:00
Svyatoslav Scherbina
eeffa49cd9
Native: don't generate .companion in ObjCExport if the companion is not exported
...
^KT-47462 Fixed
2021-06-28 08:19:12 +00:00
Svyatoslav Scherbina
786cb47450
Native: improve ObjCExport test for companion enum entry clash
2021-06-28 08:19:11 +00:00
Ivan Gavrilovic
929c4624cc
KT-47416: Pass Android annotationProcessorOptions to kapt
...
This commits makes sure that "static" DSL options from
`android.javaCompileOptions.annotationProcessorOptions`
are passed to KAPT when running w/o kotlinc.
A regression was introduced in 19708cfa87 .
Fixes #KT-47416
Test: Kapt3AndroidIT.testStaticDslOptionsPassedToKapt
2021-06-28 09:10:53 +02: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
Yahor Berdnikau
87dd357ec6
Add Gradle test task to run Gradle and Kotlin daemon tests.
...
These tests could not run in parallel, as they could not share
Gradle or Kotlin daemons with other running in parallel tests.
^KT-45745 In Progress
2021-06-27 21:35:54 +02:00
Andrey Zinovyev
c8fa8b0444
[lombok] Don't fail on fake overrides
...
#KT-47455 Fixes
2021-06-27 13:46:09 +03:00
Dmitriy Novozhilov
80b81934de
Advance bootstrap to 1.5.30-dev-2862
2021-06-26 18:18:43 +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
Alexander Shabalin
28b6427d3e
Make FreezableAtomicReference atomic when unfrozen for the new MM.
2021-06-25 21:18:37 +00:00
Alexander Likhachev
518e8691b7
[Gradle, JS] Remove duplicate minimal Gradle version requirement
...
Minimal Gradle version for all Kotlin plugins is now 6.1 and minimal Gradle versions for all integration tests is set to 6.1.1
2021-06-25 22:40:06 +03:00
Alexander Likhachev
e8e95e6476
[Gradle, JS] Add test for KT-47154 regression
...
#KT-47154 Fixed
2021-06-25 22:40:04 +03:00
Alexander Likhachev
26510190cc
[Gradle, JS] Include compiler type into library filter cache key
...
Previous fix could lead to unresolved symbols from main implementation in test compilation when module is compiled with both JS (IR and legacy) compilers because of single cached filter for both compileTestKotlinJsLegacy and compileTestKotlinJsIr tasks
#KT-47154 In Progress
2021-06-25 22:40:03 +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
5486fec0f9
Validate Java and Kotlin target compatibility have same value.
...
This will ensure compiled java sources and kotlin sources class files
has the same bytecode version.
^KT-45611 Fixed
^KT-43095 Fixed
2021-06-25 16:28:57 +00:00
Yahor Berdnikau
6d929a8c3b
Ensure toolchain is properly configured.
...
User specified toolchain maybe configured after initial task
configuration action will happen.
^KT-43095 In Progress
2021-06-25 16:28:56 +00:00
Yahor Berdnikau
4e556af54d
Rename KotlinJavaToolchainProvider to DefaultKotlinJavaToolchain.
...
'Provider' suffix doesn't make sense.
^KT-45611 In Progress
^KT-43095 In Progress
2021-06-25 16:28:56 +00:00
Yahor Berdnikau
af2f716f4d
Set 'jvmTarget' value on toolchain configuration.
...
Toolchain will set 'kotlinOptions.jvmTarget' value to the toolchain
jdk version, if 'jvmTarget' is not explicitly set by user.
If toolchain is not configured, 'jvmTarget' field uses default value,
which is now - "1.8".
^KT-45611 In Progress
^KT-43095 In Progress
2021-06-25 16:28:55 +00: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
48d170a858
Regenerate DiagnosisCompilerTestFE10TestdataTestGenerated
2021-06-25 18:41:15 +03: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
Ilya Goncharov
5bfdd5be5f
[Gradle, JS] SubPlugin environment to js ir link task
2021-06-25 14:15:58 +00: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
Dmitry Savvinov
4f8c854ead
Exclude stdlib-common from jvm-specific compilations and source sets
...
^KT-46936 Fixed
Note that it is the slightly hack-ish fix; the proper one would remove
the dependency from kotlin-stdlib to kotlin-stdlib-common
2021-06-25 15:17:07 +03:00
Dmitry Savvinov
fa869c2c2a
Add test on KT-46936
2021-06-25 15:17:06 +03:00
Dmitriy Novozhilov
1bce49023d
Advance bootstrap to 1.5.30-dev-2757
2021-06-25 13:25:48 +03:00
sebastian.sellmair
b2dda0769c
[Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Ignore tests for ^KT-47434
2021-06-25 09:25:11 +00:00
sebastian.sellmair
c234999c09
[Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Ignore tests for ^KT-47433
2021-06-25 09:25:10 +00:00
sebastian.sellmair
815d71a923
[Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Ignore tests for ^KT-47432
2021-06-25 09:25:10 +00:00
sebastian.sellmair
eaa0eb2851
[Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Add function parameter tests
2021-06-25 09:25:09 +00:00
sebastian.sellmair
4bcae0cc6f
[Commonizer] Add CommonizeNativeDistributionTest.commonize - unix platforms()
2021-06-25 09:25:08 +00:00
sebastian.sellmair
1adf8091b1
[Commonizer] HierarchicalClassAndTypeAliasCommonizationTest: Add tests for issues found during okio investigation
2021-06-25 09:25:07 +00:00
Abduqodiri Qurbonzoda
aabc00f53f
Throw IllegalStateException from MapBuilder iterator.remove() #KT-47419
2021-06-24 22:59:15 +00: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
Sergey Igushkin
cf2c686630
Fix kotlin-test variants for correct resolution in *DependenciesMetadata
...
Make Gradle choose the `commonVariant` when a capability-less dependency
on kotlin-test is resolved for configurations requesting the common
artifacts.
Issue #KTIJ-6098 Fixed
2021-06-24 19:49:14 +00: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
45ccec3b64
FIR IDE: Add HLAddWhenRemainingBranchesIntention
2021-06-24 18:26:20 +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
Jinseong Jeon
ee02303816
FIR IDE/UAST: resolve call from KtUnaryExpression
2021-06-24 16:38:24 +02:00
Jinseong Jeon
ed2cf9afd7
FIR IDE: handle other FIR calls for KtBinaryExpression
2021-06-24 16:38:24 +02:00
Elena Lepilkina
85ecbcb8f0
[K/N] Changed inlineThreshold after BCE for varargs
2021-06-24 12:57:57 +00:00
Yahor Berdnikau
e57ac5f67b
Fix flaky test.
...
Narrow down unexpected string, so it will not clash with other output.
In this case 'AutoCloseable' was printed when Gradle 7 was generating
api jar.
2021-06-24 14:08:24 +02: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
Pavel Punegov
6ae6209031
Native: exclude tests that fail due to the KT-47405 and KT-47408
2021-06-24 10:54:45 +00: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
Alexander Shabalin
cc71069a3a
Do not require freezing for Worker.executeAfter on experimental MM
2021-06-24 07:57:23 +00:00
Ilya Kirillov
16e9c74523
FIR IDE: fix testdata after introducing isStatic property for symbols
2021-06-23 22:22:19 +03:00
Tianyu Geng
476d1da1cf
Rename SelfTargetingIntention#allowCaretInsideElement
...
The current method makes it a bit hard to understand its purpose.
2021-06-23 22:22:18 +03:00
Tianyu Geng
abcc716ffc
Document org.jetbrains.kotlin.idea.intentions.SelfTargetingIntention#allowCaretInsideElement
...
Also update its usage so that the contract of this method is easier to
understand.
2021-06-23 22:22:17 +03:00
Tianyu Geng
5a1223e812
FIR IDE: don't add return for when expressions when converting to block
...
There doesn't seem to be a good reason why FE1.0 does this. Hence we
won't do it in FIR.
2021-06-23 22:22:15 +03:00
Tianyu Geng
55e7cc7ea3
FIR IDE: add HLConvertToBlockBodyIntention
2021-06-23 22:22:14 +03:00
Tianyu Geng
030749eaeb
FIR IDE: make KtExpressionTypeProvider work for more cases
...
Currently it doesn't work for the following
* labeled expression
* annotated expressions
* object literal expressions
2021-06-23 22:22:13 +03:00
Tianyu Geng
3aa6cb25ba
FIR IDE: Add ImportMemberIntention
2021-06-23 22:22:12 +03:00
Tianyu Geng
66d44f2471
FIR IDE: Add ImportAllMembersIntention
2021-06-23 22:22:10 +03:00
Tianyu Geng
8d69f32d04
FIR IDE: fix test infra swallowing test failure output
2021-06-23 22:22:09 +03:00
Tianyu Geng
22fbd2044c
FIR IDE: make ref shortener strictly follow range restriction
2021-06-23 22:22:08 +03:00
Tianyu Geng
726d141589
FIR IDE: Add fine-grained control to KtReferenceShortener
...
This change makes it possible to control how references to a symbol should be shortened.
2021-06-23 22:22:07 +03:00
Ilya Kirillov
8ac2a48eaf
Allow specify path of compiler extension points for ide tests
2021-06-23 20:36:20 +03:00
Dmitry Petrov
0104b1275f
JVM_IR KT-47398 handle @EnhancedNullability String subject as in 1.0
2021-06-23 20:11:24 +03:00
Dmitry Petrov
c26d71c4ef
JVM KT-47365 add box test
2021-06-23 20:11:23 +03:00
sebastian.sellmair
7535f142c0
[Commonizer] SetExtensions: isSubsetOf: Use == over identity check
...
^KT-47301
2021-06-23 13:43:46 +00:00
sebastian.sellmair
ae57641456
[Commonizer] deserializeCirTree.kt: Optimize imports
...
^KT-47301
2021-06-23 13:43:45 +00:00
sebastian.sellmair
6044c58333
[Gradle] NativeDistributionCommonizerTask: Cleanup up-to-date checker comments
...
^KT-47301
2021-06-23 13:43:44 +00:00
sebastian.sellmair
a643ce89ff
[Commonizer] Add CommonizerQueueTest.test diamond output targets()
...
^KT-47301
2021-06-23 13:43:44 +00:00
sebastian.sellmair
770efb7ecb
[Commonizer] Replace InputTargetsSelectorInterface with a simple function
...
^KT-47301
2021-06-23 13:43:43 +00:00
sebastian.sellmair
5a8b39e08d
[Gradle] GetCommonizerTargetOfSourceSet: Simplify implementation by only relying on compilations
2021-06-23 13:43:42 +00:00
sebastian.sellmair
19b99d5d91
[Gradle] Project.getCommonizerTarget(sourceSet: KotlinSourceSet): Ignore orphan source sets
...
Orphan source set's (source sets without compilation) can't break any
compilation. The decision to ignore those source sets for determining
the platform was already done for the IDE import.
In order to stay consistent, this function also ignores orphans.
2021-06-23 13:43:41 +00:00
sebastian.sellmair
97ea9c2c16
[Gradle] Rename HierarchicalNativeDistributionCommonizerTask to NativeDistributionCommonizerTask
...
^KT-47301
2021-06-23 13:43:40 +00:00
sebastian.sellmair
91259569d7
[Gradle] Remove old NativeDistributionCommonizerTask.kt
...
- Remove kotlin.mpp.enableHierarchicalCommonization gradle property:
This had to be done, since newer optimizations are not compatible
with non-hierarchical commonization
^KT-47301
2021-06-23 13:43:39 +00:00
sebastian.sellmair
73ffc0d180
[Gradle] NativeDistributionCommonizationCache: Support associative commonization
...
^KT-47301
2021-06-23 13:43:38 +00:00
sebastian.sellmair
21cef41ba5
[Commonizer] AbstractCommonizationFromSourcesTest remove assertions on commonized leaf/platform libraries
...
Those assertions are not necessary anymore, since the commonizer is not
expected to produce any new "actuals" per given expect.
The IDE is supposed to analyze leaf source sets against the original
platform libraries.
2021-06-23 13:43:37 +00:00
sebastian.sellmair
42f60d981f
[Commonizer] Implement associative commonization
...
^KT-47301 Verification Pending
2021-06-23 13:43:36 +00:00
Kirill Shmakov
5fdbcb3dd1
[K/N][debug] Update LLDB bundle to support Apple Silicon
...
This is related to KTIJ-18889
2021-06-23 15:13:05 +03:00
Nikita Bobko
5a6f07402b
Fix 'Generate FIR Checker Components and FIR/IDE Diagnostics' run configuration
2021-06-23 14:06:08 +02:00
Ilmir Usmanov
435b522cc5
Minor. Unmute test
2021-06-23 11:18:25 +02:00
pyos
537ce05bc9
JVM_IR: assume function reference adapters are tail-call
...
Meaning, they never need continuation objects. This shouldn't affect
correctness (if the assumption is valid, the continuation object
should always have been removed in the end), but the phantom
continuation sometimes left behind unused accessors (and in case of
inline function references, those accessors would refer to non-existent
functions) - see the modified test and Kotlin/kotlinx.coroutines#2769 .
2021-06-23 11:18:25 +02:00
Vasily Levchenko
635a0fb01c
[build][performance]kotlin:kotlin-build-gradle-plugin 0.0.29 -> 0.0.30
2021-06-23 09:07:29 +00:00
Andrey Uskov
92b08dfcfb
Revert "Unify the way to set compiler options using System.properties"
...
This reverts commit 28e4e775
2021-06-23 11:34:04 +03:00
Dmitry Petrov
f30fc4863c
JVM add ABI tests for non-approximated SAM types
...
Note that resulting SAM method
public final method accept(p0: java.lang.Object): void
has a signature less specific than the resulting bridge method
public synthetic bridge method accept(p0: X): void
2021-06-22 21:13:57 +03:00
Dmitry Petrov
c77884f067
Refactor SAM type handling, replace non-approximated arguments with *
2021-06-22 21:13:56 +03:00
Victor Petukhov
4aeabb6b0f
Use upper bound aware type approximator for intersection types inside sam types in contravariant positions to build proper types in terms of subtyping
2021-06-22 21:13:55 +03:00
Victor Petukhov
6a78e0a10c
Introduce type parameter's upper bound aware type approximator for intersection types
2021-06-22 21:13:54 +03:00
Victor Petukhov
750f327878
Use receivers from candidate as a fallback during completion of callable references
...
^KT-45083 Fixed
2021-06-22 21:13:53 +03:00
Nikita Bobko
fe8f7cfcae
settings.gradle: update list of FIR IDE modules & attach them only when latest platform is used
2021-06-22 18:43:51 +02:00
Andrey Uskov
28e4e77542
Unify the way to set compiler options using System.properties
...
Now compiler flags with boolean values which are controlled by system
properties could be set in similar way. The following syntax is
appropriate. For setting flag:
'-DflagName,'-DflagName=[y|Y|true|TRUE|yes|YES|on|ON]'
for unsetting flag:
'-DflagName=[n|N|false|FALSE|no|NO|off|OFF]'
2021-06-22 19:35:28 +03:00
Svyatoslav Scherbina
04e8140162
Native: emit _Nullable_result attribute when generating Objective-C header
...
^KT-47042 Fixed
2021-06-22 16:12:37 +00:00
Nikita Bobko
9bf802a188
Move some idea-frontend-fir testData from compiler to IDE repo
...
This testData isn't used here but used in IDE repo
2021-06-22 18:41:42 +03:00
Nikita Bobko
c35e0438b6
Switch disableKotlinPluginModules flag
2021-06-22 17:21:04 +03:00
sebastian.sellmair
2006f89260
KotlinTargetContainerWithNativeShortcuts: Remove macos arm based targets
...
^KT-47126 Verification Pending
2021-06-22 12:21:05 +00:00
Svyatoslav Scherbina
9b49d0cf76
Native: fix testObjCExport testdata after 53baef88
...
(was broken during rebase)
2021-06-22 12:49:09 +03:00
Svyatoslav Scherbina
53baef8892
Add more tests for Native ObjCExport virtual adapters machinery
2021-06-22 09:29:30 +00:00
Svyatoslav Scherbina
5d5628f56e
Native: apply ObjCExport virtual adapters from interfaces of supers
...
Previously they were skipped, and this was an incorrect optimization:
even if super class implements the interface too, this doesn't mean
that virtual adapters provided by that interface are inherited
by non-exported subclass that needs them;
for example, this doesn't happen when the super class is exported
(i.e. Obj-C class is not created at runtime).
Remove incorrect optimization instead of making it more sophisticated,
because it is useless anyway.
^KT-46431 Fixed
2021-06-22 09:29:29 +00:00
Alexander Shabalin
b7fbe09ef4
Fix Experimental MM tests on mingw
2021-06-22 08:58:00 +00:00
Abduqodiri Qurbonzoda
6db5fc0a23
Use teamcity kotlinLibsRepo and kotlinNativeDistDir parameters
2021-06-22 08:40:58 +00:00
Abduqodiri Qurbonzoda
013a7fe62d
Rename the project from kotlin-dokka-stdlib to kotlin-stdlib-docs
2021-06-22 08:40:57 +00:00
Abduqodiri Qurbonzoda
d8d9a2689d
Add sourcelink to generated documentation
2021-06-22 08:40:57 +00:00
Abduqodiri Qurbonzoda
6a9b9dc0a5
Print extracting info
2021-06-22 08:40:56 +00:00
Abduqodiri Qurbonzoda
40e23d8366
Use local libs from kotlin/build/repo and kotlin/kotlin-native/dist
2021-06-22 08:40:55 +00:00
Abduqodiri Qurbonzoda
5611fdcf25
Handle TeamCity build environment
2021-06-22 08:40:55 +00:00
Abduqodiri Qurbonzoda
e5b4fa83cb
Use local sources dirs
2021-06-22 08:40:54 +00:00
Abduqodiri Qurbonzoda
72b1459353
Remove dependency on dokka build configuration artifacts
2021-06-22 08:40:53 +00:00
Abduqodiri Qurbonzoda
b5be7ddc4c
Remove redundant kotlin_sources configuration
2021-06-22 08:40:52 +00:00
Abduqodiri Qurbonzoda
9777888ed4
Remove redundant use of mac and windows binaries
2021-06-22 08:40:52 +00:00
Abduqodiri Qurbonzoda
feaef467cd
Remove redundant configuration declarations
2021-06-22 08:40:51 +00:00
Abduqodiri Qurbonzoda
d5d5891476
Move kotlin-dokka-stdlib scripts to libraries/tools/
2021-06-22 08:40:50 +00:00
Nikolay Krasko
b406689035
Re-enable ":compiler:android-tests" module
2021-06-22 11:02:51 +03:00
Nikolay Krasko
d6aedc3229
Ignore more tasks if disableKotlinPluginModules explicitly set
2021-06-22 11:02:49 +03:00
Konstantin Tskhovrebov
28b8237836
Adapt XCFramework for using with groovy dsl.
2021-06-22 07:13:06 +00:00
Konstantin Tskhovrebov
c906d62c55
Add debug symbols for XCFrameworks.
2021-06-22 07:13:05 +00:00
Konstantin Tskhovrebov
297d661107
Add Apple M1 platforms to fat plist mapper.
2021-06-22 07:13:04 +00:00
Konstantin Tskhovrebov
84ae3df8b6
Add 'XCFramework' extension for creating XCFrameworks.
...
#KT-42667
2021-06-22 07:13:03 +00:00
Viacheslav Kormushkin
9fa55a6809
Fixed cocoapods error: expected ';' after module name
...
#KT-44235
2021-06-22 05:10:52 +00:00
nataliya.valtman
f6b428f271
KT-34862 use abi snapshot instead of build history files
...
Use jar snapshot instead build history file to avoid using time stamps and support remote gradle cache
2021-06-22 07:48:14 +03:00
Nikita Bobko
e5fbd0e2d8
Publish :idea-frontend-api, :idea-frontend-fir, :idea-fir-low-level-api modules artifacts
...
These artifacts are used in Kotlin plugin
2021-06-22 03:06:18 +03:00
Nikita Bobko
8b018f0a40
frontend-api-generator: remove unused module dependencies
2021-06-22 03:06:17 +03:00
Nikita Bobko
938cd955e1
Remove :idea prefix in IDE FIR modules which are going to stay in kotlin repo
...
This commit fixes not possibility to build project with `disableKotlinPluginModules`
flag on because Gradle tries to resolve `:idea` module which is disabled
2021-06-22 03:06:16 +03:00
Georgy Bronnikov
40872dd4ca
JVM_IR: fix parallel compilation
...
Non-static inline functions that return inline
classes need to be tracked when copying files for by-file lowering.
FIXED: KT-45680
2021-06-22 02:22:36 +03:00
Ilya Goncharov
594cc29dd2
[Gradle, JS] Necessary to use approach with traversing all source sets
...
Because common source sets included into JS compilation, it can be detected as JS associated compilations.
So necessary to set attribute about JS compiler attribute only (at least at the beginning) to JS only source sets (source sets which are not included into any non js compilations)
[Gradle, JS] Add test with resolving JS variant of MPP library
[Gradle, JS] Add additional filtering of JS targets
[Gradle, JS] Add test on local resolve
^KT-47163 fixed
^KT-47114 fixed
2021-06-21 21:22:35 +03:00
Jinseong Jeon
03f85bea8f
FIR checker: report VAL_REASSIGNMENT on value parameter
2021-06-21 20:58:01 +03:00
Jinseong Jeon
2486555208
FIR checker: refactor VAL_REASSIGNMENT checker
2021-06-21 20:58:00 +03:00
Jinseong Jeon
338503a4ae
FIR checker: minor cleanup in FirPropertyInitializationAnalyzer
2021-06-21 20:57:58 +03:00
Ilya Kirillov
06918769e7
FIR IDE: actualize testdata
2021-06-21 20:43:45 +03:00
Ilya Kirillov
80c6506a21
FIR IDE: return back symbol restoring to symbol testss
2021-06-21 20:43:44 +03:00
Ilya Kirillov
dbba9297ff
FIR IDE: restore InnerDeclarationsResolvePhaseTest
2021-06-21 20:43:43 +03:00
Ilya Kirillov
a9715de704
FIR IDE: fix leaking of FirJavaElementFinder in tests
2021-06-21 20:43:42 +03:00
Ilya Kirillov
61651c685c
FIR IDE: restore FirLazyDeclarationResolveTest
2021-06-21 20:43:40 +03:00
Ilya Kirillov
c70629c22a
FIR IDE: migrate LL API test to the test infrastructure from HL API
2021-06-21 20:43:39 +03:00
Dmitry Petrov
c19792e7c5
JVM_IR KT-47326 downcast field receiver on JvmField lowering
2021-06-21 19:17:54 +03:00
Alexander Shabalin
ebc4e10684
Fix GC stress test.
2021-06-21 16:07:57 +00:00
pyos
cf660cf24a
JVM_IR: expect unboxed return value from suspend default stubs
...
#KT-47206 Fixed
2021-06-21 18:53:31 +03:00
Mark Punzalan
578fcf2ebf
FIR: Render fun status flag in FirRenderer.
2021-06-21 18:45:38 +03:00
Mark Punzalan
efe3f7b87e
FIR: Do not load inline flag when deserializing properties; there is
...
no `inline` flag for serialized properties.
In order to test this, I added the changes to FirRenderer to make sure
the flag is not loaded. However, this revealed that the `inline` status
was propagated upward to the `FirProperty` during raw FIR building,
causing test failures.
I removed the upward propagation for `inline`. I also removed it for
`external` because it is incorrect: `external` on properties (used in
JS) should be separate from `external` on accessors (used in JNI
interop for JVM). The `external` flags are also serialized separately
for properties and accessors.
2021-06-21 18:45:37 +03:00
Yahor Berdnikau
030697d430
Restore removed 'kotlinPluginVersion' property.
...
And marked it as '@Deprecated'.
^KT-47317 Fixed
2021-06-21 17:38:57 +02:00
Marina Shishkina
b68c00e0e9
rrr/1.5.20-release/ayalyshev/change-notes
...
Update links in the plugin description
Update UTM for the kotlinlang link
Add change notes for 1.5.20
Co-authored-by: Anton Yalyshev <Anton.Yalyshev@jetbrains.com >
2021-06-21 18:30:05 +03:00
pyos
913ac289ed
JVM_IR: extract boolean-valued DFS on IR elements into a helper
2021-06-21 16:19:24 +03:00
pyos
ee4d9a89ea
JVM_IR: read inline fun bytecode to detect unused property references
...
I.e. optimize `$$delegatedProperties` in the same way as the old
backend. This is more reliable than trying to match bytecode.
2021-06-21 16:19:23 +03:00
pyos
bd6d96114b
JVM_IR: generate shorter bytecode for reflected property references
2021-06-21 16:19:23 +03:00
Alexander Shabalin
7079ad49bc
Add a test on attaching new threads while collecting
2021-06-21 12:26:01 +00:00
Elena Lepilkina
7c45154fc5
[K/N] Added copy array benchmark
2021-06-21 12:23:25 +00:00
Jinseong Jeon
bc09d94717
FIR UAST: running resolve API tests for both plugins
2021-06-21 13:49:47 +03:00
Jinseong Jeon
610b68c29d
FIR/UAST: commonize expressions with label
2021-06-21 13:49:46 +03:00
Jinseong Jeon
fa613a32b2
FIR/UAST: commonize safe qualified expression
2021-06-21 13:49:45 +03:00
Jinseong Jeon
2999d0bd4b
FIR/UAST: commonize double colon expressions
2021-06-21 13:49:44 +03:00
Jinseong Jeon
77e8aed995
FIR/UAST: move multi resolve utils/APIs to the base module/service
2021-06-21 13:49:42 +03:00
Jinseong Jeon
e870bf7399
FIR/UAST: commonize simple reference expression
2021-06-21 13:49:41 +03:00
Jinseong Jeon
4ec745abd7
FIR: relax simple type requirement in AbstractTypeMapper
...
The counterparts in old FE don't have such restriction, so it can
map a type that has a flexible type as a type argument to JVM type,
e.g., Stream<String..String?>
2021-06-21 13:49:40 +03:00
Jinseong Jeon
08e486d1a7
FIR/UAST: commonize dot qualified expression
2021-06-21 13:49:39 +03:00
Ilya Kirillov
8f70ef41f0
FIR IDE: consider resolve inside completion candidate checker
2021-06-21 13:43:49 +03:00
Ilya Kirillov
9d07832175
fix "FIR IDE: implement completion for variables with functional types with receivers"
2021-06-21 13:43:48 +03:00
Ilya Kirillov
0ebb9cc4a6
FIR IDE: extract completion groups to object
2021-06-21 13:43:47 +03:00
Ilya Kirillov
20f2e4f313
FIR IDE: introduce basic weighting for completion based by groups
2021-06-21 13:43:46 +03:00
Ilya Kirillov
a5edbd531b
FIR IDE: add ::class/::class.java to callable references completion
2021-06-21 13:43:45 +03:00
Ilya Kirillov
915c8b7996
FIR IDE: implement completion for variables with functional types with receivers
2021-06-21 13:43:44 +03:00
Ilya Kirillov
167917cf07
FIR IDE: ignore attributes in completion tests
2021-06-21 13:43:43 +03:00
Ilya Kirillov
72e26771d8
FIR IDE: do not require resolve bodies toc check candidates for completion
2021-06-21 13:43:41 +03:00
Ilya Kirillov
b8248f0197
FIR IDE: do not ignore parameters for extension applicability for completion
2021-06-21 13:43:40 +03:00
Ilya Kirillov
ae9ac33f0f
FIR IDE: implement completion for infix functions
2021-06-21 13:43:39 +03:00
Ilya Kirillov
2ffc7ad0a0
FIR IDE: implement completion for callable references
2021-06-21 13:43:38 +03:00
Dmitriy Novozhilov
a42e9c236a
[FIR] Fix PSI types of some diagnostics
2021-06-21 13:13:18 +03:00
Dmitriy Novozhilov
b218573bb3
[FIR] Add pretty toString to FirDiagnosticFactory
2021-06-21 13:13:17 +03:00
Dmitriy Novozhilov
3564db4f7b
[FIR] Add assertion which checks that diagnostic is reported on proper PSI element
2021-06-21 13:13:17 +03:00
Dmitriy Novozhilov
a288b8b00e
[FIR] Remove useless type parameters from classes related to diagnostics
...
Generics removed from:
- FirPsiSourceElement
- FirDiagnostic
- FirDiagnosticRenderer
- FirDiagnosticFactory
2021-06-21 13:13:17 +03:00
Dmitriy Novozhilov
386f6d9331
[FIR] Safe KClass of PSI type in diagnostic factory
2021-06-21 13:13:17 +03:00
Dmitriy Novozhilov
399b7aceef
[FIR] Fix reporting diagnostics in CLI which was broken in previous commit
...
Note: reporting properly works only for PSI
2021-06-21 13:13:17 +03:00
Dmitriy Novozhilov
d807ac2f05
[FIR] Don't inherit FIR diagnostics from FE 1.0 diagnostics
2021-06-21 13:13:17 +03:00
Dmitriy Novozhilov
3d544be655
[FIR] Add ability to specify custom position strategy for specific diagnostic
2021-06-21 13:13:17 +03:00
Dmitriy Novozhilov
9ef712c096
[FIR] Prohibit using FirDiagnosticFactory.on for creating diagnostics
...
In most cases it's better to use `FirDiagnosticReporter.reportOn`, so
`on` methods now marked as opt in
2021-06-21 13:13:16 +03:00
Andrei Klunnyi
89801a1ac7
KT-44841 Move sealed: no warning on splitting hierarchy (JPS)
...
To provide similar behavior for both Gradle and JPS projects target and
source directories are now taken into account.
Prior to this commit AbstractMoveTest.kt contained a hack allowing not
to create empty target directories. It breaks updated logic of the move
check and therefore is removed.
To commit empty target directories under 'before' to git one needs to
put something in them (git ignores dirs otherwise). Hence .gitignore-s.
^KT-44841 Fixed
2021-06-21 09:51:17 +00:00
Svyatoslav Scherbina
b961812efd
Native: fix thread state when calling ObjC completion for Kotlin suspend
2021-06-21 09:37:25 +00:00
Ilya Kirillov
87c6ab493b
FIR IDE: mute some highlighting tests
...
They may fail if they run separately
2021-06-21 04:15:37 +02:00
Ilya Kirillov
bbefc064a9
FIR IDE: fix EntityWasGarbageCollectedException for KtType
2021-06-21 03:38:25 +02:00
Ilya Kirillov
f00170eb31
FIR IDE: add missing runtime dependencies for tests
2021-06-21 02:50:11 +02:00
Ilya Kirillov
caf4eba2df
FIR IDE: do not run tests from idea-fir module in parallel
2021-06-21 02:19:23 +02:00
Ilya Kirillov
dd0a91cc15
FIR IDE: invalidate caches between lightclasses tests
2021-06-21 00:51:31 +02:00
Ilya Kirillov
c2ae434737
Remove // FIR_IDE_IGNORE directive from passing tests
2021-06-21 00:51:31 +02:00
Ilya Kirillov
822590a62b
FIR IDE: temporary disable AbstractFirLazyDeclarationResolveTest.kt
2021-06-21 00:51:31 +02:00
Ilya Kirillov
90f6d458b5
FIR IDE: fix test task name
2021-06-21 00:51:31 +02:00
Ilya Kirillov
f20dd8b673
FIR IDE: fixes after rebase
2021-06-21 00:51:30 +02:00
Ilya Kirillov
cf04be5207
FIR IDE: temp mute failing light class test
2021-06-21 00:51:30 +02:00
Ilya Kirillov
e9d1fb7c40
FIR IDE: mute completion tests failing with "Class LinkedHashMap was not found"
2021-06-21 00:51:30 +02:00
Ilya Kirillov
3e42ae03a9
Move frontend api modules out of ide modules
2021-06-20 22:07:49 +02:00
Ilya Kirillov
495a5136bb
extract frontendApiTests to separate gradle task
2021-06-20 22:07:49 +02:00
Ilya Kirillov
d5cd4955cc
FIR IDE: temporary update testdata of lazy resovle test
2021-06-20 22:07:46 +02:00
Ilya Kirillov
72b8593240
FIR IDE: do not use IJ test infrastructure in frontend-api-fir tests
2021-06-20 22:07:31 +02:00
Ilya Kirillov
606c3c136c
FIR IDE: remove dependency to IDEA from low-level-api fir impl module
2021-06-20 22:07:28 +02:00
Ilya Kirillov
0c5883cbe0
FIR IDE: do not depend on IDEA modules in frontend-api
2021-06-20 22:07:15 +02:00
Ilya Kirillov
28dbfeb845
Move KtReference interface to psi module
2021-06-20 22:07:15 +02:00
Ilya Kirillov
796baf261d
FIR IDE: move KtIconProvider out of idea-frontend-api module
2021-06-20 22:07:15 +02:00
Ilya Kirillov
75331b3448
FIR IDE: abstract low-level-api from dependency on idea
2021-06-20 22:07:11 +02:00
Ilya Kirillov
a483098303
FIR IDE: abstract DeclarationProvider
2021-06-20 22:02:17 +02:00
Ilya Kirillov
7fe2adc37e
FIR IDE: do not use helper methods unavailable in intellij-core
2021-06-20 22:02:17 +02:00
Ilya Kirillov
32919489f4
FIR IDE: separate index helper in LL API and completion
2021-06-20 22:02:17 +02:00
Jinseong Jeon
7a5d61928b
FIR/IDE: migrate FIR evaluator to idea-frontend-fir
2021-06-19 21:58:48 -07:00
Jinseong Jeon
fcdb8866d2
FIR: rewrite evaluator to use eval utils in frontend.common
2021-06-19 21:58:47 -07:00
Jinseong Jeon
477c1c8cd7
Migrate CompileTimeType and OperationsMap to frontend.common
2021-06-19 21:58:47 -07:00
Jinseong Jeon
833761ac3c
FIR IDE/UAST: add KtCompileTimeConstantProvider with evaluate API
2021-06-19 21:58:41 -07:00
Jinseong Jeon
7d157f006b
Rename CompileTimeConstantEvaluator to have Fir prefix
2021-06-19 21:35:36 -07:00
Jinseong Jeon
720104de78
Temporarily allow deprecated conversions in FIR operations map
...
Also, switch to the new copyright header
2021-06-19 21:35:35 -07:00
Jinseong Jeon
fc5d1d8cb5
FirConstKind has been renamed to ConstantValueKind ( d243319)
2021-06-19 21:35:35 -07:00
Jinseong Jeon
bb297b87bd
Avoid hard-coded operator names in CompileTimeConstantEvaluator
2021-06-19 21:35:34 -07:00
Jinseong Jeon
a969924248
FIR: generate operations map for CompileTimeConstantEvaluator
2021-06-19 21:35:34 -07:00
Jinseong Jeon
5e2525175e
Introduce fir.evaluate module with CompileTimeConstantEvaluator
2021-06-19 21:35:33 -07:00
Igor Yakovlev
ec80c21fd1
[FIR IDE] Fix lazy resolve for local declarations
2021-06-19 19:23:24 +02:00
Igor Yakovlev
c17a67ba61
[FIR IDE] Fix invalid collecting designation for local declarations
2021-06-19 19:23:24 +02:00
Igor Yakovlev
41c42a5016
[FIR IDE] Remove session scope default parameter from lazy resolve interface
2021-06-19 19:23:24 +02:00
Igor Yakovlev
52765c333d
[FIR IDE] Add test for local function lazy resolve and add phase into test data
2021-06-19 19:23:24 +02:00
Igor Yakovlev
2319a53fae
[FIR] Fixed invalid phase for values value parameter
2021-06-19 19:23:23 +02:00
Igor Yakovlev
8012429e31
[FIR IDE] Fix loop inheritance tests
2021-06-19 19:23:23 +02:00
Igor Yakovlev
3a1057eb60
[FIR IDE] Enable passing spec tests
2021-06-19 19:23:23 +02:00
Igor Yakovlev
b612e13061
[FIR IDE] Always resolve to Body in ide fir renderer
2021-06-19 19:23:23 +02:00
Igor Yakovlev
e900a1fa57
[FIR IDE] Fix local declarations resolve
2021-06-19 19:23:23 +02:00
Igor Yakovlev
4a212dc6a0
[FIR IDE] Fix unresolved supertype for typealiases
2021-06-19 19:23:23 +02:00
Igor Yakovlev
6c0bacc548
[FIR IDE] Fix invalid status for class symbols
2021-06-19 19:23:23 +02:00
Igor Yakovlev
21b1e4b072
[FIR IDE] Add lazy resolve phases tests
2021-06-19 19:23:23 +02:00
Igor Yakovlev
df1b41f05c
[FIR IDE] Rename refactoring
2021-06-19 19:23:22 +02:00
Igor Yakovlev
eded837115
[FIR IDE] Add typed lazy resolve implementation
2021-06-19 19:23:22 +02:00
Igor Yakovlev
7a0391b9b3
[FIR IDE] Move refactoring for constructor of the FileStructure
2021-06-19 19:23:22 +02:00
Igor Yakovlev
a60be78898
[FIR IDE] Remove designation collecting for local declarations
2021-06-19 19:23:22 +02:00
Igor Yakovlev
0cbb29f494
[FIR IDE] Remove typed fir designation
2021-06-19 19:23:22 +02:00
Igor Yakovlev
a4dbf0ae57
[FIR IDE] Update class modifiers requirements for resolve phase
2021-06-19 19:23:22 +02:00
Igor Yakovlev
3573f5066b
[FIR] Remove redundant println from RawFirBuilder
2021-06-19 19:23:22 +02:00
Igor Yakovlev
83382bea13
[FIR IDE] Concurrent identity cache for files
2021-06-19 19:23:21 +02:00
Igor Yakovlev
f98995f6cb
[FIR IDE] Implement lazy designated resolve for all resolve FIR phases
2021-06-19 19:23:21 +02:00
Jinseong Jeon
cda1a7edbe
FIR/UAST: commonize UAnnotationMethod
2021-06-19 11:39:46 +02:00
Jinseong Jeon
638b0beadb
FIR UAST: unify UMethod creation
2021-06-19 11:39:46 +02:00
Jinseong Jeon
5ec5b7f041
FIR/UAST: commonize constructor declarations
2021-06-19 11:39:45 +02:00
Jinseong Jeon
cbaa645dbe
FIR/UAST: commonize base UMethod
2021-06-19 11:39:45 +02:00
Jinseong Jeon
4a06ca637a
FIR/UAST: commonize anonymous UClass
2021-06-19 11:39:45 +02:00
Jinseong Jeon
3bd4cb274d
FIR/UAST: commonize invalid UClass
2021-06-19 11:39:44 +02:00
Jinseong Jeon
1749c90083
FIR/UAST: commonize base UClass (with bogus annotation abstraction)
2021-06-19 11:39:44 +02:00
Jinseong Jeon
06c20bb10e
FIR/UAST: commonize abstraction of Kotlin UClass
2021-06-19 11:39:43 +02:00
Jinseong Jeon
0c011f4e73
UAST: place method declarations together
2021-06-19 11:39:43 +02:00
Jinseong Jeon
beddf03f74
FIR/UAST: convert annotation via base converter
2021-06-19 11:39:42 +02:00
Jinseong Jeon
33ff90a6da
FIR/UAST: commonize named/vararg expressions
2021-06-19 11:39:42 +02:00
Jinseong Jeon
dcf99e9fd1
UAST: delete redundant file
...
This is rather a test input, and indeed there is testData/Suspend.kt
2021-06-19 11:39:42 +02:00
Jinseong Jeon
4e4b104488
FIR/UAST: commonize expression list
2021-06-19 11:39:41 +02:00
Jinseong Jeon
2e58b57db9
UAST: remove redundant override: expression list's evaluate()
...
The super function in `KotlinEvaluatableUElement` is almost same,
except for handling of `UnsignedErrorValueTypeConstant`.
Such handling was added later, so I assume the addition to this override
was missed. In any cases, this override is unnecessary.
2021-06-19 11:39:41 +02:00
Jinseong Jeon
31d1c002c5
FIR UAST: implement constructors/delegations
...
But, the logic is identical to the counterpart in FE1.0 UAST
Many declaration abstractions, such as (primary|secondary) constructor
methods and class, are very similar, and thus can be commonized soon
once the remaining parts (in particular, annotations) are done.
2021-06-19 11:39:40 +02:00
Nikita Bobko
8b3c6489da
Fix kotlin resources iml path
2021-06-18 17:42:23 +02:00
Nikita Bobko
306f8b7358
[imltogradle] Add "imls in same directory are not allowed" check
2021-06-18 17:42:23 +02:00
Ilya Goncharov
eed23ddbe3
[JS, Frontend] Add test with extension member in external interface
2021-06-18 17:20:57 +03:00
Ilya Goncharov
83c1a119ee
[JS, Frontend] Add option to allow extension lambdas in externals
2021-06-18 17:20:56 +03:00
Svyatoslav Scherbina
2a54f1c610
Improve exception messages for kotlin.native.concurrent.* operations
2021-06-18 13:51:21 +00:00
nataliya.valtman
6a32e7bd5a
Add typealias testcase for incremental compilation
2021-06-18 16:50:17 +03:00
Anton Bannykh
48fe46303d
JS IR: declare intrinsics for lowerings in stdlib
...
- simplifies lowered IR serialization
- removes some hacks in jsOperators.kt
- intrinsics can be directly invoked in stdlib
2021-06-18 15:26:52 +03:00
Ilya Matveev
94384ce2ca
[K/N][Runtime] Add a lock method to thread registry
2021-06-18 12:20:04 +00:00
Ilya Matveev
cece652412
[K/N][Runtime] Separate thread registering and making it 'Runnable'
...
The new GC will require threads to suspend right after registering
if Stop-The-World is requested. This patch changes the initial
thread state to kNative and adds a separate state switch right
after thread registering. This switch suspends if it is necessary.
2021-06-18 12:20:03 +00:00
Alexander Shabalin
e240b8a8ee
Add a separate aggressive GC mode
2021-06-18 12:03:02 +00:00
Igor Chevdar
1cfe1c41ef
[K/N][IR] Fixed problem with klib compilation
...
Fixes https://youtrack.jetbrains.com/issue/KT-46896
2021-06-18 16:21:24 +05:00
Igor Chevdar
421ff68cd6
[K/N][codegen] Fix for https://youtrack.jetbrains.com/issue/KT-47183
2021-06-18 15:57:45 +05:00
Yahor Berdnikau
7aa882b921
Add test for multiplatform plugin.
...
^KT-43095 In Progress
2021-06-18 10:50:26 +00:00
Yahor Berdnikau
0f1da3c412
Make GradleCompileTaskProvider compatible with configuration cache.
...
Refactor it such way that it could be used via Provider and
don't raise configuration cache errors.
^KT-45611 In Progress
^KT-43095 In Progress
2021-06-18 10:50:26 +00:00
Yahor Berdnikau
84ec4106f7
Don't set toolchain if it is not configured.
...
Before even when user did not configure toolchain, default toolchain
was still created, but with recent changes it does not make sense.
^KT-43095 In Progress
2021-06-18 10:50:25 +00:00
Yahor Berdnikau
1c9b013732
Change dsl method to 'jvmToolchain'.
...
This better reflects that applying toolchain only affects jvm
backend compilations.
^KT-43095 In Progress
2021-06-18 10:50:24 +00:00
Yahor Berdnikau
1a6bb5cd08
Allow to pass any object for 'jdkVersion'.
...
This object should be accepted by 'JavaVersion.toVersion' method.
^KT-45611 In Progress
2021-06-18 10:50:23 +00:00
Yahor Berdnikau
46d5df4991
Consider toolchain only as input for 'jdkHome' compilation option.
...
This change will limit toolchain scope only to the JVM compilations,
as Kotlin compiler itself does not care about JDK version it is running
on and should always produce same output for non-JVM backends.
For JVM backend there is one condition - 'jdkHome' should always point
to the same JDK version.
Few additional changes:
- allow to set specific JDK location even on Gradle versions 6.7+
- Fix typo in deprecation message
^KT-45611 In Progress
^KT-43095 In Progress
2021-06-18 10:50:23 +00:00
Yahor Berdnikau
1bb64ffa22
Revert "Print path to java executable Kotlin daemon was started with."
...
This reverts commit 3e69bcba47 .
2021-06-18 10:50:22 +00:00
Yahor Berdnikau
f9ec6bb66a
Revert "Optionally make java executable path contribute to the daemon id."
...
This reverts commit ac86ad252f .
2021-06-18 10:50:21 +00:00
Pavel Kunyavskiy
d7a3310042
[K/N] KT-43780: support of more convenient objects using from objC/Swift
2021-06-18 08:02:22 +00:00
Pavel Kunyavskiy
0952a95949
[K/N] reuse common code for companionObject util
2021-06-18 08:02:21 +00:00
Viacheslav Kormushkin
0b6d2cd21a
Custom name support for fat frameworks
...
#KT-30805
2021-06-18 06:28:01 +00:00
Dmitry Petrov
ce107d06d4
JVM_IR add test for KT-47300
2021-06-17 21:40:30 +03:00
Roman Golyshev
1cd75b1e82
kotlin-stdlib:jvm-minimal-for-test -> kotlin-stdlib-jvm-minimal-for-test
...
Changed after cherry-picking 8baf570ee7
to the master-for-ide branch
2021-06-17 20:19:49 +03:00
Roman Golyshev
6ea4b8997b
Add kotlin-stdlib-minimal-for-test.jar artefact to the published dependencies
...
Some compiler tests rely on this jar instead of the regular `stdlib`
2021-06-17 20:19:48 +03:00
Vyacheslav Gerasimov
73d4110c92
Build: Rollback kotlin-stdlib-jvm-minimal-for-test publication
...
Continue publishing to the internal/repo only
2021-06-17 19:43:11 +03:00
Vyacheslav Gerasimov
58f1fb644f
Build: Stop publishing jars with original classifier
...
#KTI-580
2021-06-17 19:43:10 +03:00
Vyacheslav Gerasimov
fb805028c1
Build: Add runtimeJar variant to the default java component if present
2021-06-17 19:43:09 +03:00
Vyacheslav Gerasimov
a0469a1d62
Build: Make Gradle plugin publications reuse POMs from the main one
...
#KTI-571
2021-06-17 19:43:07 +03:00
Nikolay Krasko
80677c88cb
Update gradle task in generated files
2021-06-17 18:36:10 +03:00
Nikolay Krasko
c8ae9a7090
[imltogradle] Speedup files traversing by ignoring directories
2021-06-17 18:36:09 +03:00
Nikolay Krasko
7e8168a7e6
Ignore more boostrap libraries in dependency verification
2021-06-17 18:36:08 +03:00
Nikolay Krasko
d72f1097d7
Cleanup dependency verification for 211 kotlin-ide
2021-06-17 18:36:07 +03:00
Nikolay Krasko
6139f095e7
Disable dependencies verification for kotlin-ide projects
2021-06-17 18:36:06 +03:00
Nikolay Krasko
71ee9cf1be
Fix generateIdeaGradleFiles on Windows
2021-06-17 18:36:04 +03:00
Ilya Kirillov
8c69913640
FIR IDE: temporary ignore failing intention tests
2021-06-17 17:27:00 +03:00
Mark Punzalan
97c10b0b84
FIR IDE: Change PSI element type for NO_COMPANION_OBJECT and
...
EXPRESSION_EXPECTED_PACKAGE_FOUND from KtSimpleNameExpression to
KtExpression (source can be KtDotQualifiedExpression).
2021-06-17 17:26:58 +03:00
Alexander Shabalin
91a852d3fd
Fix integer conversion on 32-bit
2021-06-17 14:16:16 +00:00
Margarita Bobova
eaed67df29
Move 1.4.x changelog to a separate file
2021-06-17 14:50:36 +03:00
Ivan Kochurkin
a0aaf42fb1
Some string and minor optimizations
2021-06-17 13:49:08 +03:00
Ivan Kochurkin
bc3c05a3bd
[FIR] Replace lists with Long in Modifier, refactor Modifier and derived classes
2021-06-17 13:49:08 +03:00
Ivan Kochurkin
6199b85eb9
[FIR] Introduce ModifierKind and optimize Modifier in lightTree
2021-06-17 13:49:08 +03:00
Ivan Kochurkin
ce4e60afd3
[FIR] Simplify FirCyclicTypeBoundsChecker and replace PersistentList with MutableList
2021-06-17 13:49:07 +03:00
Ivan Kochurkin
1e430b7b03
[FIR] Replace PersistentList with MutableList in Context, simplify DeclarationConverter
2021-06-17 13:49:07 +03:00
Ivan Kochurkin
366017d267
[FIR] Replace PersistentList with MutableList in BodyResolveContext, LocalClassesNavigation
2021-06-17 13:49:06 +03:00
Andrey Zinovyev
d360932ebc
[FIR] Fill overriddenSymbols for fake overridden IrProperty
2021-06-17 13:24:12 +03:00
Sergey Bogolepov
4f98a0e083
[Native] Introduce optInCacheableTargets
...
Create an explicit list of targets that have unstable compiler caches
in konan.properties. It allows to control all lists of cacheable targets
in a single place.
2021-06-17 09:19:44 +00:00
Roman Golyshev
108dd37242
Add possibility to use baseDir in CoroutineHelpersSourceFilesProvider
2021-06-17 02:41:32 +03:00
Nikita Nazarov
adec873118
[EE_IR] Update ignore directive
2021-06-17 02:40:04 +03:00
Alexander Shabalin
e3eec33b24
Add aggressively allocating stress test for GC
2021-06-16 21:34:05 +00:00
Alexander Shabalin
7ae59856cb
Add internal MemoryUsageInfo object
...
Currently it only provides peak RSS usage for iOS, Linux, macOS and Windows.
2021-06-16 21:34:04 +00:00
Nikita Bobko
670d66984f
Reduce Gradle configuration phase time in case when 'attachedIntellijVersion' flag is specified
...
Traversing intellij repo is long
2021-06-16 21:58:36 +03:00
Nikita Bobko
526a664077
[imltogradle] Add a bit of logging
2021-06-16 21:58:36 +03:00
Nikita Bobko
c954fa4900
Make it possible to attach community version of kotlin-ide
2021-06-16 21:58:34 +03:00
Roman Artemev
8ac5d03f02
[Test] fix module name in klib text tests
...
It failed on windows machines due to illegal '<' in path
2021-06-16 21:16:58 +03:00
Roman Artemev
56604a9654
[K/N] Promote kotlin-build-gradle-plugin version 0.0.29 -> 0.0.30
...
Missed fix
2021-06-16 21:16:57 +03:00
Roman Artemev
2c34888a57
[TEST] Add comment in klib text tests runner
2021-06-16 21:16:56 +03:00
Roman Artemev
71af11052a
[TEST] Mute tests irText klib tests
2021-06-16 21:16:55 +03:00
Roman Artemev
e82552975d
[TEST] support test muting in klib text tests runner
2021-06-16 21:16:54 +03:00
Roman Artemev
5bc884ce2b
[KLIB] Fix fakeoverride builder
...
Set proper visibility in case of cross-module internal overrides.
TODO: KT-47192
2021-06-16 21:16:53 +03:00
Roman Artemev
0cb23a6e65
[KLIB] Fix serialization of loops with control statements in condition
2021-06-16 21:16:52 +03:00
Roman Artemev
e5c6a5b80d
[IR] Clean up Fake Override builder a bit
2021-06-16 21:16:51 +03:00
Roman Artemev
1831c0a14b
[IR] Support disabling of rendering IrErrorType inner KotlinType
2021-06-16 21:16:50 +03:00
Roman Artemev
2eac442705
[IR] Support stable order in IR dump
...
That mode is need to test deserialization of klibs
2021-06-16 21:16:49 +03:00
Roman Artemev
bbcd511c44
[TEST] fix irText testData
...
- support DELEGATED_MEMBER overrides
2021-06-16 21:16:48 +03:00
Roman Artemev
cb130181a2
[Psi2Ir] Fix overridden symbols of Delegated Properties
2021-06-16 21:16:47 +03:00
Roman Artemev
32bbc3b8ad
[KLIB] Fix SimpleTypeKey in case of type abbreviation
2021-06-16 21:16:46 +03:00
Roman Artemev
2f772c7a7c
[KLIB] Add IrStatementOrigin into IrConstructorCall message
2021-06-16 21:16:45 +03:00
Roman Artemev
16ea3d9ae9
[TEST] Add IrText klib tests
2021-06-16 21:16:44 +03:00
Roman Artemev
14c91ca0de
[TEST] Set proper TARGET_BACKEND for jvm-specific irText tests
2021-06-16 21:16:43 +03:00
Roman Golyshev
b587b71b0f
FIR IDE: Move KtDeclarationAndFirDeclarationEqualityChecker.kt to nested api package
2021-06-16 15:38:57 +00:00
Roman Golyshev
c42fec5c93
FIR IDE: Refactor findSourceFirCompiledDeclaration
...
Add `FirDeclarationForCompiledElementSearcher` class to encapsulate
searching by the compiled declarations, move it to the separate file
2021-06-16 15:38:56 +00:00
Roman Golyshev
b0bac90a8b
FIR IDE: Make findNonLocalDeclarationForCompiledElement a member of FirModuleResolveState
2021-06-16 15:38:56 +00:00
Roman Golyshev
e1f985424f
FIR IDE: Move KtDeclarationAndFirDeclarationEqualityChecker to api package
2021-06-16 15:38:55 +00:00
Roman Golyshev
ad34c19f9a
FIR IDE: Add explicit assertion that module info is ModuleSourceInfo
2021-06-16 15:38:54 +00:00
Roman Golyshev
44f74888e0
FIR IDE: Add tests for resolving compiled declarations
...
Also, use correct index to find source for properties in
`FirIdeDeserializedDeclarationSourceProvider` - this bug
was revealed by the tests
2021-06-16 15:38:53 +00:00
Roman Golyshev
0fe068c6ce
FIR IDE: Find FIR declarations for compiled PSI elements separately
...
When PSI declaration comes from the library with classfiles,
its `moduleInfo` is represented by `LibrarySourceInfo` class.
In this case we have to resort to other ways of looking for
corresponding FIR declaration
It is easy to do for classes (by `classId`) and for the properties
(by `classId` of the containing class and property's name)
It is harder for callables, so we use
`KtDeclarationAndFirDeclarationEqualityChecker` to do that
2021-06-16 15:38:52 +00:00
Roman Golyshev
be51738483
FIR IDE: Move KtDeclarationAndFirDeclarationEqualityChecker to idea-fir-low-level-api module
...
It will be required to compare PSI and FIR declarations
for compiled PSI elements
2021-06-16 15:38:51 +00:00
Roman Golyshev
66047f159f
FIR IDE: Resolve declaration in withFirDeclaration only if needed
2021-06-16 15:38:51 +00:00
Roman Golyshev
9e4c5eed5f
FIR IDE: Make ModuleLibrariesSearchScope work only on .class sources
...
If this scope will accepts sources, then it will cause problems later
(when we will get libraries' sources from indices and will try to
resolve them to FIR declaration)
2021-06-16 15:38:50 +00:00
Igor Chevdar
caa852061a
[box-tests] Ignored a test for K/N
...
More info in https://youtrack.jetbrains.com/issue/KT-44571
2021-06-16 17:25:07 +05:00
Abduqodiri Qurbonzoda
59031543e2
Throw on invalid AbstractMutableList.addAll index #KT-47211
2021-06-16 11:59:46 +00:00
Nikita Nazarov
7e44cddbab
Introduce the fragment compiler backend to the debugger infrastructure
2021-06-16 13:58:18 +03:00
pyos
aa47191de4
JVM: hide ExpressionCodegen in finally block generation during inlining
2021-06-16 12:13:32 +02:00
pyos
108bd01698
JVM: refine the stack spilling around inline calls
...
Not all suspend functions need it - only those with suspension points.
2021-06-16 12:13:32 +02:00
pyos
b136acb185
JVM: move callSiteFile to InlineCallSiteInfo
2021-06-16 12:13:32 +02:00
pyos
6c1a5e1211
JVM: make inline function argument processing a bit shorter
2021-06-16 12:13:32 +02:00
pyos
392e4fba42
JVM: fix inlining of default lambdas of signature (Result) -> Any
...
They have no `invoke` bridge, and the overridden invoke expectes a boxed
`Result` as an argument.
2021-06-16 12:13:32 +02:00
pyos
a0a14d9e25
JVM: remove descriptors from SourceCompilerForInline
...
Printing the call site source on errors isn't really useful anyway - the
old backend points to a specific PsiElement, and JVM_IR wraps the
exception in FunctionCodegen (and printing the source never worked with
JVM_IR anyway).
2021-06-16 12:13:32 +02:00
pyos
32ad747632
JVM: load default lambda method nodes immediately
...
The ones that are not needed are filtered out before DefaultLambda is
even constructed anyway, and this way we need fewer lateinit vars.
2021-06-16 12:13:32 +02:00
pyos
1e953eaf01
JVM: remove contextKind from SourceCompilerForInline
...
Guess what? It's only useful for the old backend's type mapper!
2021-06-16 12:13:32 +02:00
pyos
1109348b6d
JVM: remove lookupLocation from SourceCompilerForInline
2021-06-16 12:13:32 +02:00
pyos
b6e9f64e18
JVM: remove functionDescriptor from InlineCodegen
2021-06-16 12:13:32 +02:00
pyos
d89e2d9f08
JVM: split inline intrinsics into "needed by JVM_IR" and "not"
...
or, alternatively, "suspend" and "not".
2021-06-16 12:13:32 +02:00
pyos
eb4d831d27
JVM_IR: implement typeOf<T> as a codegen intrinsic
...
rather than a fake inline function.
Also, generate more correct instructions for typeOf. Not sure how that
even worked before - `aconst(Boolean)` isn't even valid.
2021-06-16 12:13:32 +02:00
pyos
7dbf08ae1c
JVM: move loadCompiledInlineFunction out of InlineCodegen
2021-06-16 12:13:32 +02:00
pyos
8307367f90
JVM: don't thread callDefault through the inliner
...
It's only used by the old backend, and should be given to
PsiSourceCompilerForInline by PsiInlineCodegen.
2021-06-16 12:13:32 +02:00
sebastian.sellmair
6dd598c7a7
[Gradle] Enable Kotlin tooling metadata artifact by default
...
^KT-44584
2021-06-16 09:44:32 +00:00
Igor Chevdar
a1e5bef3ad
[box-tests] Ignored some tests for K/N
...
A file included twice in a source set is not supported for now
2021-06-16 14:27:14 +05:00
Iaroslav Postovalov
0ba3ddcc29
Minor. Fix a typo, change visibility of internal object
2021-06-16 10:22:44 +03:00
Svyatoslav Scherbina
e324c9b3fb
Generate initRuntimeIfNeeded() at the beginning of staticCFunction
...
#KT-44283 Fixed
2021-06-16 06:39:51 +00:00
Yaroslav Chernyshev
6e9739caec
Add regression test for MPP android source set with resources
2021-06-16 09:32:45 +03:00
Georgy Bronnikov
f0f01db66e
Temporarily mute a failing test
2021-06-16 01:48:28 +03:00
Ilya Kirillov
39e2df6916
FIR IDE: render unresolved types as qualifiers for member generator
2021-06-16 01:17:44 +03:00
Ilya Kirillov
cf7870e376
FIR IDE: implement toString for KtType
2021-06-16 01:17:43 +03:00
Ilya Kirillov
af9e6253e4
FIR IDE: add ability to specify type argument in KtClassTypeBuilder
2021-06-16 01:17:42 +03:00
Ilya Kirillov
148c90dd1e
FIR IDE: do not make KtTypeArgumentWithVariance abstract
...
As it does not require specific FIR implementation
2021-06-16 01:17:41 +03:00
Ilya Kirillov
6a9c49dd9d
FIR IDE: rename coneType parameter in KtFirType constructors to not accidentally leak it via lambdas
2021-06-16 01:17:40 +03:00
Ilya Kirillov
1d1eab6947
FIR IDE: make KtSymbolByFirBuilder to be a weak ref in KtType to avoid memory leaks
2021-06-16 01:17:39 +03:00
Ilya Kirillov
73bb2e76f2
FIR IDE: introduce KtFirDefinitelyNotNullType
2021-06-16 01:17:38 +03:00
Ilya Kirillov
8177a70ff9
FIR IDE: introduce KtCapturedType
2021-06-16 01:17:36 +03:00
Ilya Kirillov
e2cfd933f1
FIR IDE: introduce HL API for creating class types
2021-06-16 01:17:35 +03:00
Ilya Kirillov
8094a5448d
FIR IDE: render error message for KtClassErrorType
2021-06-16 01:17:34 +03:00
Ilya Kirillov
0a6c96492a
FIR IDE: simplify KtType hierarchy
...
- get rid of Kt(Non)DenotatbleType super classes as unused
- make KtErrorType to inherit KtClassType to be consistent with FIR
2021-06-16 01:17:32 +03:00
Tianyu Geng
f6078b24df
FIR IDE: AddToString quickfix
2021-06-15 20:19:53 +02:00
Tianyu Geng
1b8b5b9a79
FIR IDE: move AddToStringFix to fe-independent
2021-06-15 20:19:52 +02:00
Tianyu Geng
4bedf41f9c
FIR IDE: RemoveNulalbleFix quickfix
2021-06-15 20:19:52 +02:00
Tianyu Geng
b10de3dd2d
FIR IDE: Move RemoveNullableFix to fe-independent
2021-06-15 20:19:52 +02:00
Victor Petukhov
559bedf5ae
Continue processing not builder inference stub variables in the type checker during computing common super type
...
^KT-47148 Fixed
2021-06-15 17:40:56 +03:00
Victor Petukhov
85f4cec948
Don't ignore Java nullability annotations without target and unresolved when nullability qualifiers are extracted, with enabled type enhancement improvements
...
^KT-47276 Fixed
2021-06-15 17:28:25 +03:00
Mads Ager
ae03e2983d
[JVM_IR] Keep track of catch variable gaps.
...
This ensures that catch variables are not visible in duplicated
finally blocks generated at an exit within the catch variable
scope.
^KT-46449 Fixed
2021-06-15 15:18:59 +02:00
Elena Lepilkina
6aba6ea670
[K/N][perf] Fix separator stayed wrong after migrating from groovy
2021-06-15 11:39:25 +00:00
Victor Petukhov
9fa0cf132f
Regenerate idea fir low level api tests
2021-06-15 12:52:06 +03:00
Pavel Punegov
f9d5cc90a8
[native] Disable test that fail due to the unaligned int64 access
2021-06-15 11:51:43 +03:00
Vasily Levchenko
695339e21f
[k/n][tests][debugger] test for KT-47198.
2021-06-15 08:04:19 +00:00
Vasily Levchenko
524a9351de
[k/n][tests][debugger] modify test to conform KT-47198
2021-06-15 08:04:18 +00:00
Vasily Levchenko
81fd6126d9
[k/n][codegen][d/i] dont generate debug line information for prolog and {locals,stack}_init
...
- fixes KT-47198
2021-06-15 08:04:17 +00:00
Vasily Levchenko
bb42e601ab
[k/n][tests][lldb] add quit to each lldb tests.
2021-06-15 08:04:17 +00:00
Victor Petukhov
1b82227308
Don't do new captured type specific checks for old ones in the type checker
...
^KT-47143 Fixed
2021-06-15 10:07:20 +03:00
Nikita Bobko
02a56a3077
[imltogradle] Fix 'Configuration with name 'compileOnlyApi' not found'
2021-06-14 16:56:55 +02:00
Nikita Bobko
ce0bef6b60
Update 211 platform version for Kotlin plugin
2021-06-14 16:56:55 +02:00
Nikita Bobko
3bf7eef4d8
[imltogradle] Generate maven repos based on 'jarRepositories.xml' from Community
...
This commit minimizes difference between build.gradle.kts
files generated from ultimate & community infrastructure
2021-06-14 16:56:55 +02:00
Jinseong Jeon
ce26d54917
FIR IDE: extract PsiType conversions to KtPsiTypeProvider
2021-06-13 00:10:47 +03:00
Jinseong Jeon
0db510ad8b
FIR IDE/UAST: introduce UAST-specific version of analyse
2021-06-13 00:10:46 +03:00
Jinseong Jeon
1517fd0ca0
FIR/UAST: commonoize array access expression
2021-06-13 00:10:45 +03:00
Jinseong Jeon
ef8eddf1da
FIR UAST: add array access tests
2021-06-13 00:10:44 +03:00
Jinseong Jeon
9a539aac7d
FIR/UAST: commonize binary expression with type
2021-06-13 00:10:43 +03:00
Jinseong Jeon
b2e644b485
FIR/UAST: commonize type check expression
2021-06-13 00:10:41 +03:00
Jinseong Jeon
6e0f755b39
UAST: migrate kinds constants to the base module
2021-06-13 00:10:39 +03:00
Jinseong Jeon
47ede5bdc8
FIR IDE/UAST: get PsiType from KtTypeReference
2021-06-13 00:10:38 +03:00
Jinseong Jeon
a3710bed6a
FIR/UAST: commonize type reference expression
2021-06-13 00:10:37 +03:00
Jinseong Jeon
517fd24f14
UAST: unify implementation/creation of type reference expression
2021-06-13 00:10:36 +03:00
Jinseong Jeon
fa36098214
FIR IDE/UAST: get PsiType from KtExpression
2021-06-13 00:10:34 +03:00
Ilya Kirillov
7d7782e8ff
Fix FE1.0 intention test
2021-06-12 23:53:46 +03:00
Mark Punzalan
235f4200df
FIR IDE: Add descriptions for HLAddAccessorIntentions (copied from FE
...
1.0 implementations).
2021-06-12 23:53:45 +03:00
Mark Punzalan
9b5f754e75
FIR IDE: Enable add accessors quickfix for MUST_BE_INITIALIZED.
...
Also added diagnosticFixFactoriesFromIntentionActions() to share
quickfix-creation across multiple diagnostics with the same PSI.
2021-06-12 23:53:44 +03:00
Mark Punzalan
cd6dbd2515
FIR IDE: Assert that the action to invoke in
...
AbstractHighLevelQuickFixTest is of type QuickFixActionBase.
2021-06-12 23:53:43 +03:00
Mark Punzalan
783e5972d0
FIR IDE: Ensure all fixes provided by HLDiagnosticFixFactory are of type
...
QuickFixActionBase.
This allows us to verify in the quickfix tests that the action comes
from a diagnostic-based quickfix, and not an available intention. We
are adding APIs that wrap IntentionActions as QuickFixActionBase.
2021-06-12 23:53:42 +03:00
Mark Punzalan
43a8299f48
FIR IDE: Delete AddAccessorsIntention in favor of
...
HLAddAccessorIntentions.
2021-06-12 23:53:41 +03:00
Mark Punzalan
91e62832ee
FIR IDE: Add applicability range to HLAddAccessorIntention (copied from
...
FE 1.0's logic) and actually check the range in AbstractHLIntention.
2021-06-12 23:53:40 +03:00
Mark Punzalan
a497dd1d31
FIR IDE: Enable add accessor intentions in plugin.
2021-06-12 23:53:39 +03:00
Ilya Kirillov
4f12966d66
FIR IDE: warn about enabled Android plugin
2021-06-12 19:40:43 +03:00
Ilya Kirillov
af7766b3ac
FIR IDE: add fir icon to status bar to distinguish fir/fe10 ide
2021-06-12 19:40:42 +03:00
Jinseong Jeon
8977e7766b
FIR/UAST: commonize throw expression
2021-06-12 16:00:43 +02:00
Jinseong Jeon
c21fce6cbc
FIR/UAST: commonize parenthesized expression
2021-06-12 16:00:42 +02:00
Jinseong Jeon
c089b8ed04
FIR/UAST: commonize labeled expression
2021-06-12 16:00:41 +02:00
Jinseong Jeon
6e1b04e4c9
FIR/UAST: commonize if expression
2021-06-12 16:00:40 +02:00
Jinseong Jeon
50f750187b
FIR/UAST: commonize loop/break/continue expressions
2021-06-12 16:00:39 +02:00
Jinseong Jeon
1146f60db3
FIR/UAST: commonize block and return expressions
2021-06-12 16:00:37 +02:00
Jinseong Jeon
16b3d2110e
FIR/UAST: commonize literal expressions
2021-06-12 16:00:36 +02:00
Jinseong Jeon
6b5bddeed7
FIR/UAST: commonize KotlinEvaluatableUElement
2021-06-12 16:00:35 +02:00
Jinseong Jeon
ce10410aba
FIR UAST: refactor FE1 UAST tests
2021-06-12 16:00:34 +02:00
Jinseong Jeon
e1a99ede09
FIR UAST: introduce values tests
2021-06-12 16:00:32 +02:00
Jinseong Jeon
cf2f36fa49
UAST: utilize values test base
2021-06-12 16:00:31 +02:00
Jinseong Jeon
d17dd4a1e6
FIR/UAST: commonize KotlinUElementWithType
2021-06-12 16:00:30 +02:00
Jinseong Jeon
1025851edd
FIR UAST: introduce types tests
2021-06-12 16:00:29 +02:00
Jinseong Jeon
6afb68cec0
UAST: utilize types test base
2021-06-12 16:00:28 +02:00
Vyacheslav Gerasimov
06b4fe1613
Build: Fix kotlin-stdlib-jvm-minimal-for-test usages
...
Name changed after publishing with main artifacts for external usage
2021-06-12 04:33:32 +03:00
Steffi Stumpos
8baf570ee7
Build: Publish the new compiler test infrastructure
2021-06-12 04:33:31 +03:00
Mikhail Glukhikh
af5e2f3c93
FIR checkers: properly handle annotations with more than one argument
2021-06-11 22:03:33 +03:00
Mikhail Glukhikh
ceb527c5e4
FIR: add OptIn checkers draft + some annotation / SinceKotlin utilities
2021-06-11 22:03:32 +03:00
Mikhail Glukhikh
bd39e457a7
FIR: make ArrayMapOwner.arrayMap really protected
2021-06-11 22:03:32 +03:00
Mikhail Glukhikh
0972020324
Extract common parts from ExperimentalUsageChecker
2021-06-11 22:03:32 +03:00
Mikhail Glukhikh
f0453d2f5c
FIR: distinguish qualified access / qualified access expression checkers
2021-06-11 22:03:32 +03:00
Mads Ager
6b6ba77869
[JVM_IR] Trim the expression test string for null assertions.
...
^KT-47166 Fixed.
2021-06-11 21:54:04 +03:00
Alexander Shabalin
58adfd8488
Disable enum and object isFrozen tests on wasm
2021-06-11 18:12:15 +00:00
Roman Golyshev
3f0cc67f17
Fix converting string GLOB to regexp in TestConfigurationBuilder
...
This is required when `p1|p2|p3|...|pN` concatenation is used (see `or`
extension function above `toMatchingRegexString`)
This is a follow-up to the 6f4b6c1b5b7bc05557306179e25a79fa234aa77f
commit
2021-06-11 20:06:04 +03:00
Roman Golyshev
30f20cb835
Use more reliable paths matching in TestConfigurationBuilder
...
Without it, even the slightest difference between the pattern and
testDataPath would cause the path to be excluded, for example:
testDataPath = /some/absolute/path.txt
pattern = absolute/*
The example above didn't match, and it resulted in different
configurations when tests were launched with different testDataPaths
Now, the example above will look like this:
testDataPath = /some/absolute/path.txt
patter = */absolute/*
Now it matches correctly
2021-06-11 20:06:03 +03:00
nataliya.valtman
d42a6771b0
Update statistics that should be sent to ES
...
Next properties should be set in gradle.properties or via -D option:
systemProp.kotlin.plugin.stat.password
systemProp.kotlin.plugin.stat.user
systemProp.kotlin.plugin.stat.enabled=true
systemProp.kotlin.plugin.stat.label
systemProp.kotlin.plugin.stat.endpoint=es_endpoint/index/_doc
kotlin.build.report.verbose=true
kotlin.build.report.enable=true
2021-06-11 19:12:05 +03:00
Dmitry Petrov
bf077b893c
PSI2IR KT-47245 handle declaration statements in control structures
2021-06-11 16:42:31 +03:00
pyos
3be348f910
JVM_IR: fix parentClassId for property accessors
2021-06-11 15:03:13 +02:00
pyos
d4485bc475
JVM: remove unused methodOwner from InlineCodegen
2021-06-11 15:03:13 +02:00
pyos
ed26e97df8
JVM: refactor loading of inline functions from binaries
...
The IR path no longer does any descriptor unwrapping or old-style type
mapping.
2021-06-11 15:03:13 +02:00
pyos
7bcd738bb1
JVM: inline createInlineMethodNode into InlineCodegenForDefaultBody
...
Most of it is unused, since there we know the target function will also
need to be compiled from source.
2021-06-11 15:03:13 +02:00
pyos
4c7eb815fc
JVM: remove some FunctionDescriptors from SourceCompilerForInline
2021-06-11 15:03:13 +02:00
pyos
a24ad233ee
JVM: move PsiSourceCompilerForInline to a separate file
2021-06-11 15:03:13 +02:00
pyos
955b9260d1
JVM: move more old backend code out of InlineCodegen
2021-06-11 15:03:13 +02:00
pyos
043452fb62
JVM: make handling of captured params for default lambdas shorter
2021-06-11 15:03:13 +02:00
pyos
4cae880b44
JVM: remove unused DefaultLambda.parameterOffsetsInDefault
2021-06-11 15:03:13 +02:00
pyos
8a3af851d9
JVM: pregenerate inline lambda bodies as early as possible
...
Which in JVM_IR is immediately in `genValueAndPut`, but for the old
backend needs to be delayed until `genCallInner` for some reason.
2021-06-11 15:03:13 +02:00
pyos
90412ade8a
JVM: remove second parameter of putClosureParametersOnStack
...
Only used by the old backend.
2021-06-11 15:03:13 +02:00
pyos
d4c8a033b1
JVM: remove BaseExpressionCodegen.pushClosureOnStack
...
It's only used by the old backend
2021-06-11 15:03:13 +02:00
pyos
b6c3c9942d
JVM: move activeLambda to PsiInlineCodegen
2021-06-11 15:03:13 +02:00
pyos
7333abf50d
JVM: purge redundant val BaseExpressionCodegen.v
2021-06-11 15:03:13 +02:00
pyos
1f9db7cf25
FE: properly clear the deferred generator stack
...
Before this commit the stack wasn't cleared for read variable case.
#KT-47168 Fixed
2021-06-11 15:56:20 +03:00
Sergey Bogolepov
2f632ada42
[Native] Remove unused code
2021-06-11 12:18:15 +00:00
Sergey Bogolepov
36386de9a2
[Native] Drop explicit -fPIC flag setup
...
We don't need to explicitly set -fPIC flag everywhere
because since d82109cc92
it is set by default for all ClangArgs users.
2021-06-11 12:18:14 +00:00
Sergey Bogolepov
7550351702
[Native] Fix runtime code according to Clang 11 warnings
2021-06-11 12:17:00 +00:00
Georgy Bronnikov
91387e644f
IR: repair collectAndFilterRealOverrides
2021-06-11 15:05:45 +03:00
Georgy Bronnikov
7e6782d684
JVM_IR: simplify resolveFakeOverride call in SyntheticAccessorLowering
2021-06-11 15:05:45 +03:00
Georgy Bronnikov
fca804de14
IR: properly compute IrProperty.resolveFakeOverride()
...
Now that IrProperty has its own overriddenSymbols, we can generalize the
search for fake overrides. Also works for fake override properties
derived from Java fields.
2021-06-11 15:05:45 +03:00
Jinseong Jeon
3769fd8e07
FIR UAST: fix import resolve test
...
The `resolve` failure (or `null` return) of import directive for
`java.lang.Thread.sleep` is legitimate, since there are two static methods
in `java.lang.Thread`:
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html
hence not able to resolve to a single method.
Unless we change `UImportStatement` to be a subtype of `UMultiResolvable`,
instead of `UResolvable`, we can't properly test `resolve` API for that.
2021-06-11 14:51:07 +03:00
Yahor Berdnikau
da25d58fa7
Control cache redirector status in test via project settings.
...
Test will use project `gradle.properties` file to get current
cache redirector status, so it could be controlled from one place.
^KT-47185 Fixed
2021-06-11 11:44:36 +00:00
Yahor Berdnikau
7b1db6992e
Enable cache redirector for old tests setup.
...
^KT-47185 Fixed
2021-06-11 11:44:35 +00:00
Yahor Berdnikau
e98de36aaa
Enable cache redirector for Junit5 tests.
...
^KT-47185 In Progress
2021-06-11 11:44:34 +00:00
Yahor Berdnikau
5d0abf0e33
Lazily apply cache redirector to all project modules.
...
Mainly move it from 'afterEvaluate { .. }' block.
^KT-47185 In Progress
2021-06-11 11:44:34 +00:00
Viacheslav Kormushkin
3c0709cf4f
A new DSL for framework configuration within cocoapods block
...
#KT-46479
#KT-35723
2021-06-11 11:10:49 +00:00
Mikhail Glukhikh
5a3f84c8fa
Add forgotten test data file
2021-06-11 13:17:01 +03:00
Svyatoslav Scherbina
b13e7d1e28
Native: enable more Obj-C interop tests for new MM
2021-06-11 07:35:50 +00:00
Svyatoslav Scherbina
79d4047e86
Native: improve thread state switching for Obj-C interop
2021-06-11 07:35:49 +00:00
Svyatoslav Scherbina
85ab4f68df
Native: support reentrant mode for CalledFromNativeGuard
2021-06-11 07:35:48 +00:00
sebastian.sellmair
1bcafd3cd0
[Gradle] commonizeCInterop task: Require hierarchical commonization to be enabled
...
^KT-47133 Verification Pending
2021-06-11 07:03:24 +00:00
Roman Golyshev
d781902626
Add possibility to use baseDir in SpecHelpersSourceFilesProvider
...
In IJ infrastructure we have specific path prefix for compiler testData
2021-06-11 02:28:39 +03:00
Vladimir Dolzhenko
2c8d583d8b
Added ad-hoc KtValueArgument.stringTemplateExpression
...
Use only stub stringTemplateExpression if it is present and don't use ast nodes as it could be unbounded
#KT-47034 Fixed
2021-06-10 21:14:32 +00:00
Yahor Berdnikau
a383c1ce79
Ensure kapt tasks don't capture sources state in configuration cache.
...
Kapt tasks have captured sources state inside SourceRoots container
internal collection, that was cached by configuration cache.
This lead to the compilation errors whenever sources files
were changed (deleted or renamed), because kapt still expected
previous file state to exist.
Now SourceRoots will not create internal collection, but rather
reuse standard Gradle FileCollection methods that perform required
calculations dynamically.
^KT-46651 Fixed
2021-06-10 20:00:39 +00:00
Yahor Berdnikau
3d36e11e80
Make 'kapt.verbose' property compatible with configuration cache.
...
^KT-46651 In Progress
2021-06-10 20:00:38 +00:00
Ilya Kirillov
c4b1fa8ec0
Fix FE1.0 plugin testdata after adding // IGNORE_FIR directive
2021-06-10 19:05:33 +02:00
Ilya Kirillov
bc306a5195
FIR IDE: Regenerate quickfix tests
2021-06-10 19:05:33 +02:00
Tianyu Geng
90a0c9bb25
FIR IDE: quickfix to add override keyword
...
Also enables more tests that covers previous quickfixes
2021-06-10 19:05:33 +02:00
Alexander Likhachev
1658f4433d
[Build] Update Gradle Enterprise plugin to 3.6.2
2021-06-10 18:39:21 +03:00
Alexander Likhachev
17991c5b6e
[Build] Update common-custom-user-data-gradle-plugin to 1.4
...
Now the plugin detects IDEA via system properties using Gradle providers and shoudn't cause undeclared system property reads issue
#KT-44611 In Progress
2021-06-10 18:39:20 +03:00
Nikita Bobko
debc0d2b93
Add .idea/libraries-with-intellij-classes.xml to .gitignore
2021-06-10 17:37:50 +02:00
Vladimir Dolzhenko
1eb04d5440
Support Kotlin 1.5 / 1.6 language versions come from external sources
...
#KTIJ-15743 Fixed
Original commit: 784f77a2b98b0c9719f4919e45a193f35d7d9875
2021-06-10 13:12:36 +00:00
Dmitriy Novozhilov
1a0516e2c8
Fix codebase according to KT-47225
2021-06-10 16:01:18 +03:00
Tianyu Geng
baa3a3c81d
FIR IDE: ignore smartcast if it's unstable in HL API
2021-06-10 16:01:17 +03:00
Tianyu Geng
78401b3ae0
FIR: add helper to check if a smartcast expressioin is stable
2021-06-10 16:01:16 +03:00
Tianyu Geng
3c8693758b
FIR: handle synthetic properties with unstable smartcast
...
Synthetic properties from Java getter/setters need to be specially
handled so that candidates from such symbols are marked with unstable.
2021-06-10 16:01:14 +03:00
Tianyu Geng
ce767046eb
FIR checkers: report SMARTCAST_IMPOSSIBLE
2021-06-10 16:01:13 +03:00
Tianyu Geng
2bb7ef9747
FIR DFA: store stability in RealVariable
...
As part of this change, we also extend the usage of RealVariable in more
places during DFA. Now mutable properties, property with custom getters,
delegated properties, etc are also treatd as a `RealVariable`. In
general this is needed in order to carry out smartcast computation in
order to report `SMARTCAST_IMPOSSIBLE`. It seems to also have side
effects that improves behavior of some test files.
2021-06-10 16:01:11 +03:00
Tianyu Geng
97ea37c82f
FIR: add smartcast stability to FIR
2021-06-10 16:01:09 +03:00
Nikita Bobko
02bd17a4e2
Add compiler/fir/raw-fir/psi2fir/testData to testdata which is used by Kotlin plugin in IJ infra
2021-06-10 12:16:16 +02:00
Alexander Shabalin
cf47d95aa5
Rename SingleThreadMarkAndSweep into SameThreadMarkAndSweep
2021-06-10 09:59:38 +00:00
Alexander Shabalin
9ebba93dd9
Make SingleThreadMarkAndSweep support multiple threads
2021-06-10 09:59:37 +00:00
Alexander Shabalin
10ae9c511b
Allow filtering of gtest tests
2021-06-10 09:59:37 +00:00
Svyatoslav Scherbina
11fb8677c6
Update kotlin-native/gradlew to 6.8.3
...
to match gradlew at repo root directory
2021-06-10 09:24:15 +00:00
Sebastian Sellmair
4e7460d91f
Merge KT-MR-3320 from rra/sellmair/kt-46957-enable_linuxMips32_in_tests
2021-06-10 09:14:17 +00:00
Andrey Zinovyev
371452d49a
[FIR] Fix CANNOT_BE_IMPORTED for java static methods/variables
2021-06-10 11:28:34 +03:00
Dmitriy Dolovov
2b161581ca
K/N: Use class FQN in default toString() implementation
...
^KT-47167
2021-06-10 11:02:21 +03:00
Dmitriy Dolovov
d42ff069f6
[Native][IR] Move verbose RTTI for local classes and anonymous objects
...
^KT-45304
2021-06-10 11:02:16 +03:00
Dmitriy Dolovov
6bac016b3a
[IR] Support top-level callables in InventNamesForLocalClasses lowering
...
^KT-45304
2021-06-10 11:02:10 +03:00
Dmitriy Dolovov
9861cb0438
[IR] Commonize InventNamesForLocalClasses lowering
...
^KT-45304
2021-06-10 11:02:04 +03:00
Yaroslav Chernyshev
6f8b3f22ca
Fix adding non-directory to resources for Android source set
...
#KTIJ-17113 Fixed
2021-06-10 10:26:42 +03:00
Ilya Kirillov
e12f3ff88a
FIR IDE: fix compilation
2021-06-09 22:49:57 +03:00
Mark Punzalan
befa8aaac7
FIR IDE: Enable add initializer quickfix for MUST_BE_INITIALIZED.
2021-06-09 22:49:56 +03:00
Mark Punzalan
bb2246ebaf
FIR IDE: Add diagnosticFixFactories() API to share quickfix-creation
...
across multiple diagnostics with the same PSI.
2021-06-09 22:49:55 +03:00
Mark Punzalan
2773506f4c
FIR IDE: Don't offer AddExclExclCallFix when expression is definitely
...
null.
2021-06-09 22:49:52 +03:00
Mark Punzalan
97ea901507
FIR IDE: Add isDefinitelyNull() and isDefinitelyNotNull() to
...
KtExpressionTypeProvider.
2021-06-09 22:49:51 +03:00
Mark Punzalan
c6427d57f1
FIR IDE: Enable AddExclExclCallFix for ASSIGNMENT_TYPE_MISMATCH and
...
INITIALIZER_TYPE_MISMATCH.
2021-06-09 22:49:50 +03:00
Mark Punzalan
eddc590aaf
FIR: Rename parameters for (ASSIGNMENT|RESULT)_TYPE_MISMATCH.
2021-06-09 22:49:49 +03:00
Nikolay Krasko
b6b983aa2a
Update kotlin:kotlin-build-gradle-plugin 0.0.29 -> 0.0.30 (KTI-563)
...
Remove ultimate mentioning
2021-06-09 22:19:53 +03:00
Nikolay Krasko
ee3fe6c605
Add dependency on dist in tests of kotlin.core.descriptors.runtime
...
JvmRuntimeDescriptorLoaderTestGenerated fails without stdlib.
2021-06-09 20:05:27 +03:00
Nikolay Krasko
85bc1d6aa2
Remove org.jfrog.buildinfo:build-info-extractor-gradle
...
There were some conflicts that shouldn't be an issue anymore.
Revert: 713f6e1ed3
2021-06-09 20:05:25 +03:00
Nikolay Krasko
965eff66ce
Add information about protected branches
2021-06-09 20:05:24 +03:00
Nikita Bobko
3aebd0315f
Make it possible to run DiagnosisCompilerTestDataSpecTestGenerated from fir-low-level-api in IJ infra
2021-06-09 19:44:08 +03:00
Nikita Bobko
294ec3905b
[cleanup] Remove unused AbstractSymbolByFqNameTest
2021-06-09 19:44:06 +03:00
Andrey Uskov
446eb390ef
Update Gradle version used in project to 6.9
2021-06-09 19:06:18 +03:00
Alexander Shabalin
b1e0e43ba4
Add isFrozen test on object
2021-06-09 15:03:15 +00:00
Nikolay Krasko
48a4d7d418
Build: drop maven publication for Kotlin plugin artifacts
2021-06-09 17:43:54 +03:00
Nikolay Krasko
32f811e0ec
Build: Cleanup old platforms from the build
2021-06-09 17:43:53 +03:00
Nikolay Krasko
a4005cef19
Build: Drop ultimate, cidr and kmm from the build (KTI-563)
2021-06-09 17:43:52 +03:00
Alexander Likhachev
9a4ff6e201
[Gradle, JS] Add libraries filter caching in compile task
...
Previously any compile task was honestly reading dependency metadata from filesystem to check whether it's K/JS module even if another compile task already tested this dependency. Now the result of check is cached in build service that is cleared after build finish. It can save many rebuild time on incremental compilation of complex projects.
#KT-47154 Fixed
2021-06-09 17:25:56 +03:00
Dmitry Petrov
dbb933e6a6
JVM use instruction liveness analysis instead of DFA in DCE
2021-06-09 17:04:47 +03:00
Dmitry Petrov
3d8735c978
Minor: add excluded path to CodeConformanceTest
2021-06-09 17:04:46 +03:00
Nikita Bobko
2c92a60878
Fix obvious 'disableKotlinPluginModules' logging mistake
2021-06-09 15:44:10 +02:00
Nikita Bobko
a7894a6298
Introduce 'disableKotlinPluginModules' flag
...
We are about to drop Kotlin plugin sources from Kotlin repo
(since they are merged into intellij-commmunity repo).
Let's introduce the flag which we could use for testing
2021-06-09 15:41:37 +02:00
Tianyu Geng
32f55a2269
FIR checker: report VIRTUAL_MEMBER_HIDDEN
2021-06-09 16:27:49 +03:00
Tianyu Geng
d3dfb33f89
FIR: consolidate duplicated logic in FirOverrideChecker
2021-06-09 16:27:26 +03:00
Nikita Bobko
8bb98f8f86
[imltogradle] Do not resolve transitive dependencies in gralde if don't resolve them in JPS
...
This fixes problems of Gradle not being possible to find transitive maven artifacts
if actually we don't need them
2021-06-09 15:16:18 +02:00
Pavel Kirpichenkov
d76bb45716
[Commonizer] Add CommonizerHierarchicalIT
...
Test platform dependencies on leaf source sets
^KT-46716 Verification pending
2021-06-09 12:49:07 +00:00
Pavel Kirpichenkov
5f7576e546
[Commonizer] Use original K/N distribution libraries for leaf targets
...
^KT-46716
2021-06-09 12:49:04 +00:00
Mikhail Glukhikh
c33608e009
FIR: don't render resolved type annotations in favor of attributes
2021-06-09 15:42:43 +03:00
Mikhail Glukhikh
06379ec587
FIR: handle varargs properly during annotation serialization
2021-06-09 15:42:42 +03:00
Mikhail Glukhikh
da671eedc9
FIR: avoid CCE in constants during annotation serialization
2021-06-09 15:42:41 +03:00
Mikhail Glukhikh
3127fad23d
FIR: more precise annotation argument serialization
2021-06-09 15:42:39 +03:00
Mikhail Glukhikh
491267b4f7
FIR2IR: convert annotations on local variables
2021-06-09 15:42:38 +03:00
Mikhail Glukhikh
77dd0ad396
FIR: handle custom attributes more precise
2021-06-09 15:42:37 +03:00
Mikhail Glukhikh
4f70f47fa6
FIR2IR: convert annotations on type parameters #KT-46967 Fixed
2021-06-09 15:42:36 +03:00
Svyatoslav Scherbina
3412c0bc53
Update kotlin-native/samples to 1.5.10
2021-06-09 12:35:05 +00:00
Andrey Zinovyev
ddc9c1bd1b
[FIR] Fix extension property reference resolution
...
On type with star projection
#KT-44372 Fixed
2021-06-09 15:15:28 +03:00
Mikhail Glukhikh
2b4ea8e6e7
Add forgotten test data
2021-06-09 14:59:57 +03:00
Vasily Levchenko
89b589846b
Merge KT-MR-3224 from rrn/minamoto/kt-33364
2021-06-09 11:50:28 +00:00
Ilya Goncharov
dd9ea9f9eb
[Gradle, JS] Actualize versions of npm dependencies
...
^KT-46608 fixed
^KT-47176 fixed
2021-06-09 14:49:33 +03:00
pyos
ade8b0a7d3
JVM_IR: box bound receiver before calling the reference constructor
...
This is needed for the inliner: since the information about Kotlin type
of the bound receiver is nowhere in the output binary, the inliner will
have no clue how to box inline class values. Moving the boxing outside
the object means the inliner doesn't need to know about it; from its
point of view, the captured value has type `Any`.
2021-06-09 14:36:07 +03:00
nataliya.valtman
117c99aee6
send build stat to ES
2021-06-09 13:25:10 +03:00
Sergey Igushkin
14a7e90c69
KT-38954: Filter Android attributes during publishing
...
* Always filter out the variant name attribute: it is never requested
by consumers, while its presence makes Gradle count it as an
unmatched attribute, sometimes leading to ambiguity;
* Filter out the build type attribute: if all variants have the same
build type, then remove the build type attribute from all variants;
Otherwise, remove the build type attribute from the release variants
in order to make them compatible with all other consumer's build
types.
* Add an opt-out flat for always keeping the attribute:
"kotlin.android.buildTypeAttribute.keep" Gradle property
Issue #KT-38954 Fixed
2021-06-09 10:18:15 +00:00
sebastian.sellmair
4e508c6d9c
Update K/N version to 1.5.30-dev-1916
...
^KT-46957
2021-06-09 11:53:58 +02:00
sebastian.sellmair
f9901a5d50
[Commonizer] CommonizerIT: Enable linuxMips32 target
...
^KT-46957
2021-06-09 11:47:57 +02:00
Vasily Levchenko
79600f32d2
[codegenerator][refactor] extract method for tramboline generation
2021-06-09 11:39:57 +02:00
Vasily Levchenko
0651f7de20
[kotlin-native][tests] kt-33364 test added
2021-06-09 11:39:56 +02:00
Vasily Levchenko
bebede9e4f
[codegeneration][debug info] enchance debugger behaviour for paramterless when
...
- generates tramboline like a11b07f6c3 on -Xg-generate-when-marker=enable
- fixes issue KT-33364
2021-06-09 11:39:55 +02:00
Vladimir Dolzhenko
de76aeb9d1
Optimize SdkInfo lookup for a huge monorepo with no SdkInfo
...
DFS of SdkInfo on moduleInfo and reuse cached libraryInfo dependencies
fix traverse order
#KT-47065 Fixed
Relates to #KT-46622
2021-06-09 08:31:46 +00:00
Andrey Zinovyev
972cd9e9e7
[FIR] Fix PACKAGE_CANNOT_BE_IMPORTED diagnostic
...
Don't report it when there is a function/property with the same name as
package
2021-06-09 09:02:49 +03:00
Yahor Berdnikau
ec705d88a5
Allow to enable Gradle debug for particular builds.
...
^KT-45745 In Progress
2021-06-08 21:05:39 +02:00
Yahor Berdnikau
90238978ee
Update block to print build info on error.
...
^KT-45745 In Progress
2021-06-08 21:05:38 +02:00
Yahor Berdnikau
b0b646037e
Print build output on build result assertion failure.
...
^KT-45745 In Progress
2021-06-08 21:05:38 +02:00
Yahor Berdnikau
5b60ef7d54
Allow to enable force output for specific builds.
...
^KT-45745 In Progress
2021-06-08 21:05:38 +02:00
Yahor Berdnikau
8b17888a18
Fix typo in annotation name.
...
^KT-45745 In Progress
2021-06-08 21:05:35 +02:00
Aleksei.Cherepanov
35c067b215
Fix import for JPS build of Kotlin repo
...
Changed link of configuration on TC for getting artifacts
from "Compiler Dist (202) and Maven Artifacts"
to "Kotlin / Kotlin Public / Aggregate"
2021-06-08 22:01:31 +03:00
Denis.Zharkov
2653565f56
FIR: Support exhaustive whens on subjects of intersection type
2021-06-08 18:59:48 +03:00
Anton Lakotka
c8b9a3a6f0
Disallow unsafe reads of KPM PluginData from Compile Task
2021-06-08 15:49:05 +00:00
Anton Lakotka
52abecab43
Rename sensitive flag to isTransient and inverse logic, add file outputs
...
isTransient with default value as false makes it a bit more readable
Some Compiler Plugins can use file outputs properties to dump some data
there and gradle can support incremental build
with file outputs.
2021-06-08 15:49:05 +00:00
Anton Lakotka
70a2678bbc
Add integration test for kpm compiler plugin sensitive options
2021-06-08 15:49:04 +00:00
Anton Lakotka
c01be75f47
Reuse code in MetadataCompilationTasksConfigurator for native task
2021-06-08 15:49:03 +00:00
Anton Lakotka
28fe070a2f
Track plugin options with indices
2021-06-08 15:49:02 +00:00
Anton Lakotka
bc7ff04f1f
Store sensitive plugin options in Task inputs
2021-06-08 15:49:01 +00:00
Anton Lakotka
9e084a7256
Fix overload call of project.files in abstractVariants.kt
2021-06-08 15:49:01 +00:00
Anton Lakotka
26a2509ebb
Add basic test for Kotlin Project Model compiler plugins
2021-06-08 15:49:00 +00:00
Anton Lakotka
a0fb5c31ea
Don't configure runtimeDependencyFiles during variant instantiation
2021-06-08 15:48:59 +00:00
Anton Lakotka
5a58c1c437
[Kotlin Project Model] Add compiler plugin support
2021-06-08 15:48:58 +00:00
Nikita Bobko
16e6fe0e08
Fix compilation for some Kotlin plugin modules when IJ infra is attached to kotlin repo
...
For example it fixes compilation of `:kotlin-ide.kotlin.generators:testClasses`
This commit fixes that Gradle tries to find jars of 202 IDEA in ivy repo of 211 IDEA:
```
* What went wrong:
Execution failed for task ':kotlin-ide.kotlin.tests-common:compileTestKotlin'.
> Could not resolve all files for configuration ':kotlin-ide.kotlin.tests-common:testCompileClasspath'.
> Could not find extensions-211.6693.111.jar (kotlin.build:ideaIC:211.6693.111).
Searched in the following locations:
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/lib/extensions.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/extensions.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/intellij-core/211.6693.111/artifacts/extensions.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/plugins/ideaIC/lib/extensions.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/sources/extensions-211.6693.111.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/extensions.jar
> Could not find guava-29.0-jre-211.6693.111.jar (kotlin.build:ideaIC:211.6693.111).
Searched in the following locations:
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/lib/guava-29.0-jre.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/guava-29.0-jre.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/intellij-core/211.6693.111/artifacts/guava-29.0-jre.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/plugins/ideaIC/lib/guava-29.0-jre.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/sources/guava-29.0-jre-211.6693.111.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/guava-29.0-jre.jar
> Could not find asm-all-8.0.1-211.6693.111.jar (kotlin.build:ideaIC:211.6693.111).
Searched in the following locations:
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/lib/asm-all-8.0.1.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/asm-all-8.0.1.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/intellij-core/211.6693.111/artifacts/asm-all-8.0.1.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/plugins/ideaIC/lib/asm-all-8.0.1.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/sources/asm-all-8.0.1-211.6693.111.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/asm-all-8.0.1.jar
> Could not find streamex-0.7.2-211.6693.111.jar (kotlin.build:ideaIC:211.6693.111).
Searched in the following locations:
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/lib/streamex-0.7.2.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/streamex-0.7.2.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/intellij-core/211.6693.111/artifacts/streamex-0.7.2.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/artifacts/plugins/ideaIC/lib/streamex-0.7.2.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/sources/streamex-0.7.2-211.6693.111.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/211.6693.111/streamex-0.7.2.jar
```
2021-06-08 17:18:35 +02:00
Nikita Bobko
bf287c0b85
[imltogradle] Don't generate unnecessary tests-jar with real dependencies when a module doesn't have any source root
...
This helps to prevent "fake" circular dependencies when
module A depends on tests of module B but module B doesn't have test source roots
In particular this commit fixes when running `:kotlin-ide.kotlin.generators:testClasses` task:
```
Circular dependency between the following tasks:
:kotlin-ide.kotlin.gradle.gradle-tooling:compileTestJava
+--- :kotlin-ide.kotlin.gradle.gradle-tooling:compileTestKotlin
| \--- :kotlin-ide.kotlin.test-framework:testJar
| +--- :kotlin-ide.kotlin.test-framework:compileTestKotlin
| | +--- :kotlin-ide.kotlin.idea:testJar
| | | +--- :kotlin-ide.kotlin.idea:compileTestKotlin
| | | | \--- :kotlin-ide.kotlin.gradle.gradle-tooling:testJar
| | | | +--- :kotlin-ide.kotlin.gradle.gradle-tooling:compileTestKotlin (*)
| | | | \--- :kotlin-ide.kotlin.gradle.gradle-tooling:testClasses
| | | | \--- :kotlin-ide.kotlin.gradle.gradle-tooling:compileTestJava (*)
| | | \--- :kotlin-ide.kotlin.idea:testClasses
| | | \--- :kotlin-ide.kotlin.idea:compileTestJava
| | | +--- :kotlin-ide.kotlin.gradle.gradle-tooling:testJar (*)
| | | \--- :kotlin-ide.kotlin.idea:compileTestKotlin (*)
| | \--- :kotlin-ide.kotlin.jvm:testJar
| | +--- :kotlin-ide.kotlin.jvm:compileTestKotlin
| | | +--- :kotlin-ide.kotlin.gradle.gradle-tooling:testJar (*)
| | | +--- :kotlin-ide.kotlin.idea:testJar (*)
| | | \--- :kotlin-ide.kotlin.repl:testJar
| | | +--- :kotlin-ide.kotlin.repl:compileTestKotlin
| | | | \--- :kotlin-ide.kotlin.idea:testJar (*)
| | | \--- :kotlin-ide.kotlin.repl:testClasses
| | | \--- :kotlin-ide.kotlin.repl:compileTestJava
| | | +--- :kotlin-ide.kotlin.idea:testJar (*)
| | | \--- :kotlin-ide.kotlin.repl:compileTestKotlin (*)
| | \--- :kotlin-ide.kotlin.jvm:testClasses
| | \--- :kotlin-ide.kotlin.jvm:compileTestJava
| | +--- :kotlin-ide.kotlin.gradle.gradle-tooling:testJar (*)
| | +--- :kotlin-ide.kotlin.idea:testJar (*)
| | +--- :kotlin-ide.kotlin.jvm:compileTestKotlin (*)
| | \--- :kotlin-ide.kotlin.repl:testJar (*)
| \--- :kotlin-ide.kotlin.test-framework:testClasses
| \--- :kotlin-ide.kotlin.test-framework:compileTestJava
| +--- :kotlin-ide.kotlin.idea:testJar (*)
| +--- :kotlin-ide.kotlin.jvm:testJar (*)
| \--- :kotlin-ide.kotlin.test-framework:compileTestKotlin (*)
\--- :kotlin-ide.kotlin.test-framework:testJar (*)
```
2021-06-08 17:15:17 +02:00
Sergey Bogolepov
bcd28615a6
[Native] Add initial version of LLVM buildscript
...
Previously there was no determined way to build LLVM for Kotlin/Native.
This commits adds a Python script that allows to do so on all hosts.
2021-06-08 14:42:43 +00:00
Ilya Matveev
1530a0823f
[K/N] Use finalization task to generate report for runtime tests
...
The approach with doLast doesn't work if the test binary failed.
This patch uses a finalization task instead to ensure that we
process the XML report regardless of whether the tests pass
or fail.
2021-06-08 12:44:14 +00:00
Ilya Matveev
f08d473d3c
[K/N][Runtime tests] Support << operator for thread states
2021-06-08 12:44:13 +00:00
Elena Lepilkina
7ed22360f9
[K/N] Use in array varargs optimized implementations of set operators without bound checks
2021-06-08 11:59:56 +00:00
Elena Lepilkina
2cb3a20733
[K/N] Added functions for set/get array operatorswithout bounds check
2021-06-08 11:59:56 +00:00
Leonid Startsev
dd21326425
Create a copy of incorrectly deserialized parent's writeSelf function
...
To avoid problems during code generation when INVOKEDYNAMIC
is used instead of static
#KT-47161 Fixed
2021-06-08 11:53:47 +00:00
Vladimir Ivanov
7c7905b55c
[Native] Disable unaligned float test (not supported yet) ( #4434 )
2021-06-08 13:18:58 +03:00
Dmitriy Novozhilov
773fc25587
Fix compilation after 3572a96b
2021-06-08 12:16:03 +03:00
Sergey Bogolepov
1ae8e01b32
[Native][MIPS] Add stddef.h to platform.posix on linux
...
For some reason, ptrdiff_t is missing in platform.posix on MIPS,
yet referenced from platform.linux.__morecore. Fixed by adding parent
header.
This fix is ABI for MIPS targets breaking because some declarations move
from platform.linux to platform.posix package.
^KT-46957 Fixed
2021-06-08 09:02:49 +00:00
Mikhail Glukhikh
0e63484738
Fix OptIn marker usages in code according to new limitation
2021-06-08 11:37:35 +03:00
Mikhail Glukhikh
63bc3f9708
Forbid experimental markers on various targets #KT-45845 Fixed
...
In this commit we forbid experimental markers on:
- local variables
- value parameters
- fields, including delegate fields
- property getters
2021-06-08 11:37:34 +03:00
Mikhail Glukhikh
eb9c658c1c
OptIn: handle usages via type aliases properly
2021-06-08 11:37:33 +03:00
Mikhail Glukhikh
b4ee116de7
Experimental checkers: simplify visiting code a bit
2021-06-08 11:37:32 +03:00
Mikhail Glukhikh
702d839c66
Forbid TYPE and TYPE_PARAMETER as possible OptIn targets
2021-06-08 11:37:31 +03:00
Mikhail Glukhikh
603afe89a2
Forbid using experimental markers on override declarations
...
#KT-45844 Fixed
2021-06-08 11:37:30 +03:00
Mikhail Glukhikh
bb9efab3c4
Forbid experimental markers on getter #KT-45845 Fixed
2021-06-08 11:37:29 +03:00
Mikhail Glukhikh
0a670bf055
Report EXPERIMENTAL_API diagnostics on various implicit usages
...
#KT-32443 Fixed
#KT-22852 Fixed
2021-06-08 11:37:28 +03:00
Mikhail Glukhikh
d8d38862d9
Introduce EXPERIMENTAL_ANNOTATION_WITH_WRONG_RETENTION diagnostic
...
#KT-22941 Fixed
2021-06-08 11:37:27 +03:00
Mikhail Glukhikh
7393465696
Don't report EXPERIMENTAL_OVERRIDE_ERROR on annotated local functions
...
#KT-31728 Fixed
2021-06-08 11:37:26 +03:00
Mikhail Glukhikh
cb232725f0
FoldConstantLowering: drop unnecessary experimental annotation
2021-06-08 11:37:25 +03:00
Mikhail Glukhikh
fa307a5f75
Drop LocalCallableIdConstructor OptIn-annotation
2021-06-08 11:37:24 +03:00
Andrey Zinovyev
3572a96bb9
[FIR] Lookup in local sources in default imports based on the flag
...
Reuse ALLOW_KOTLIN_PACKAGE for that
2021-06-08 08:23:25 +00:00
Andrey Zinovyev
3eeddf7077
[FIR] Use member scope to look up function/property by name
2021-06-08 08:18:57 +00:00
Andrey Zinovyev
c507d1c938
[FIR] Implement OPERATOR_RENAMED_ON_IMPORT diagnostic
2021-06-08 08:18:56 +00:00
Andrey Zinovyev
7c669b65c3
[FIR] Implement CONFLICTING_IMPORT diagnostic
2021-06-08 08:18:55 +00:00
Andrey Zinovyev
14789cb9e5
[FIR] Implement CANNOT_BE_IMPORTED diagnostic
2021-06-08 08:18:54 +00:00
Andrey Zinovyev
bf153ab0f0
[FIR] Implement CANNOT_ALL_UNDER_IMPORT_FROM_SINGLETON diagnostic
2021-06-08 08:18:54 +00:00
Abduqodiri Qurbonzoda
fdd9287836
Get rid of platform differences in Regex.split() doc
2021-06-08 00:32:33 +00:00
Abduqodiri Qurbonzoda
0b521b5183
Get rid of platform differences in Regex.findAll() doc
2021-06-08 00:32:32 +00:00
Abduqodiri Qurbonzoda
53b6c25533
Get rid of platform differences in Grouping<T, K>.eachCount() doc
2021-06-08 00:32:31 +00:00
Abduqodiri Qurbonzoda
91d1baf3b5
Get rid of platform differences in Array.orEmpty() doc
2021-06-08 00:32:30 +00:00
Abduqodiri Qurbonzoda
cc3c33b8ae
Get rid of platform differences in Collection<T>.toTypedArray() doc
2021-06-08 00:32:29 +00:00
Abduqodiri Qurbonzoda
c64592665b
Get rid of platform differences in MutableList.sortWith() doc
2021-06-08 00:32:29 +00:00
Abduqodiri Qurbonzoda
a9946b01e6
Get rid of platform differences in MutableList.sort() doc
2021-06-08 00:32:28 +00:00
Abduqodiri Qurbonzoda
225be54c61
Get rid of platform differences in Regex.find doc
2021-06-08 00:32:27 +00:00
Abduqodiri Qurbonzoda
7fdd1154ee
Add default value for K/N actual functions #KT-46183
2021-06-08 00:32:26 +00:00
konrad.sztenderski
e338c5651b
Expose some methods and properties related to Cocoapods dependencies to access them in Apple gradle plugin
2021-06-07 21:28:07 +02:00
Dmitry Petrov
81b09ca09f
KT-46267 JVM_IR don't generate unnecessary ATHROW in lateinit var read
2021-06-07 20:02:24 +03:00
Simon Ogorodnik
d3453e98b0
FIR Tests: Add async-profiler per-pass sampling to full pipeline
2021-06-07 19:43:28 +03:00
Simon Ogorodnik
718e9c11f5
FIR Tests: Fix FirMetaModularizedTest to run properly on Windows
2021-06-07 19:43:10 +03:00
Elena Lepilkina
97a38ba0a9
[K/N] Added benchmarks for KT-46482 and KT-46425
2021-06-07 14:35:32 +00:00
Ilya Kirillov
74567f4b02
FIR IDE: restore fir ide spec tests with shorten test class name to make TC happy
...
Otherwise, TC will complain about too long fq test method names
2021-06-07 16:48:56 +03:00
Ivan Kylchik
cc169613c1
Drop result of finally block after interpretation
...
This change is needed due to using FIR as frontend for tests. In this
case finally block doesn't has coercion to unit so it's result must
be dropped manually.
2021-06-07 15:35:20 +03:00
Ivan Kylchik
61d65436f4
Fix interpreter files provider to make tests work on windows
2021-06-07 15:35:19 +03:00
Ivan Kylchik
5596e1e1e1
Properly support char and boolean arrays in interpreter
...
For now boolean array will expect proper Boolean instead of any value.
This change just unify logic of working with primitive arrays.
2021-06-07 15:35:18 +03:00
Ivan Kylchik
25989b36c5
Allow to create object in interpreter only if it is compile time
2021-06-07 15:35:16 +03:00
Ivan Kylchik
6e12cee626
Extract common checker logic into accessesTopLevelOrObjectField
2021-06-07 15:35:15 +03:00
Ivan Kylchik
49d8bd5845
Remove unnecessary property message from interpreter exceptions
2021-06-07 15:35:14 +03:00
Ivan Kylchik
e28ab45c51
Add ir interpreter tests
2021-06-07 15:35:12 +03:00
Ivan Kylchik
cc2d7340dc
Implement simple test system to check ir interpreter correctness
2021-06-07 15:35:11 +03:00
Ivan Kylchik
3b250132d0
Put all logic of working with expect/actual declarations inside Wrapper
...
For now decision of how to work with class or function is made by their
signatures.
2021-06-07 15:35:09 +03:00
Ivan Kylchik
0cc866a2fb
Support Enum class as intrinsic in ir interpreter
...
Methods of Enum class don't have bodies, so must be treated as
intrinsics
2021-06-07 15:35:08 +03:00
Ivan Kylchik
e5617ede7e
Add Throwable class into interpreter builtins map
...
Methods of Throwable class doesn't have bodies using FIR, so they must
be handled as builtins
2021-06-07 15:35:07 +03:00
Ivan Kylchik
8234c9cec1
Add toString function with nullable receiver into builtins map
...
On JVM we don't have body for this function, so we must process it as
intrinsic or builtin
2021-06-07 15:35:06 +03:00
Ivan Kylchik
7882fdf232
Simplify logic of checking that IrGetField can be interpreted
2021-06-07 15:35:04 +03:00
Ivan Kylchik
ca1932b3a5
Set proper fir type for deserialized annotation's arguments
2021-06-07 15:35:03 +03:00
Ivan Kylchik
b3fa7b25cf
Optimize Utils.kt by removing unused functions
2021-06-07 15:35:02 +03:00
Ivan Kylchik
877832ef8c
Optimize some methods of CallStack and Frame
2021-06-07 15:35:01 +03:00
Ivan Kylchik
e0438d1123
Implement better workflow of interpretation with callable reference
2021-06-07 15:34:59 +03:00
Ivan Kylchik
9a8e0f3fb3
Add new builtins methods for some interfaces into IrBuiltInsMapGenerated
...
This change allow us to skip looking for override when evaluate call
for some primitive.
2021-06-07 15:34:58 +03:00
Ivan Kylchik
b4463b948c
Rewrite unfoldValueParameters to take into account recursive calls
...
The workflow of evaluation value arguments is now like this:
1. Calculate not null arguments
2. Add them into intermediate stack
3. Calculate defaults for those parameters that have no argument
This flow allow us to avoid early addition of variable onto stack.
2021-06-07 15:34:57 +03:00
Ivan Kylchik
6411d09579
Rewrite wrap function to take into account function name
...
This is needed to understand whenever arrays must be unwrapped or not.
For now, in case of kotlin.Array.set and kotlin.Pair.<init> calls it is
considered to remain arrays as Primitive class to save their irType
info.
2021-06-07 15:34:55 +03:00
Ivan Kylchik
04b36ff19e
Make interpreted functions implicitly return Unit as result
2021-06-07 15:34:54 +03:00
Ivan Kylchik
0e8ca12499
Add callback to methods of CallInterceptor to specify default behaviour
2021-06-07 15:34:53 +03:00
Ivan Kylchik
285929ad07
Add new intercept method in CallInterceptor for proxy
2021-06-07 15:34:52 +03:00
Ivan Kylchik
25d01099d8
Add CallInterceptor interface and implement its default realization
...
CallInterceptor will handle calls, constructor calls, getting enum
entries and objects. It will make a decision for interpreter: this call
must be handled as intrinsic or it must be interpreted.
2021-06-07 15:34:50 +03:00
Ivan Kylchik
c8b268a789
Refactor entire IrInterpreter to achieve better code quality
2021-06-07 15:34:49 +03:00
Ivan Kylchik
3294af5e49
Get correct irClass from class reference in case of reified parameter
2021-06-07 15:34:47 +03:00
Ivan Kylchik
fe99b235d3
Implement more precise control flow in ir interpreter
...
"More precise" in terms of the number of passing tests.
In this case ControlStructures test block was used.
2021-06-07 15:34:46 +03:00
Ivan Kylchik
c3ad319c13
Implement correct processing for receivers of IrFunctionReference
2021-06-07 15:34:44 +03:00
Ivan Kylchik
a73173e480
Fix interpretation of arguments with default value
2021-06-07 15:34:43 +03:00
Ivan Kylchik
38f4e6e8bf
Implement interpretation of assert method
2021-06-07 15:34:42 +03:00
Ivan Kylchik
8617809528
Rename expression value parameter to declaration
2021-06-07 15:34:40 +03:00
Alexander Udalov
e6254b51e1
Rewrite generator for IrBuiltInsMapGenerated
...
Similarly to 742fef9042 with OperationsMapGenerated, use optimized
`when` over strings instead of lambdas because lambdas lead to a lot of
bytecode.
The change in `IrConst.toPrimitive` is needed because for operations
like `Byte.plus(Int)` the IrConst instance would have the IR type for
kotlin.Byte, but the actual runtime value of type Int
(java.lang.Integer), which would lead to CCE from
`interpretBinaryFunction`. Previously it didn't fail because of
unchecked cast before calling the lambda, which allowed a value of
runtime type java.lang.Integer to sneak through to the lambda parameter
and be "unboxed" to the correct type via the `(... as Number).toByte()`
conversion which backend generates.
The main benefit of this change is that it reduces the size of the
proguarded compiler jar by ~0.69%.
2021-06-07 15:34:39 +03:00
Ivan Kylchik
ac7a1c7762
Add new intrinsic handler for sourceLocation function
2021-06-07 15:34:38 +03:00
Ivan Kylchik
7fe776fe10
Simplify work with stack by adding additional newFrame method
2021-06-07 15:34:37 +03:00
Ivan Kylchik
d578aa0ec5
Pass irFile in interpreter method in IrConstTransformer
2021-06-07 15:34:35 +03:00
Ivan Kylchik
ec16c40bf4
Save right entry point for expression
2021-06-07 15:34:34 +03:00
Ivan Kylchik
9d9ab498aa
Remove typeArguments field in State interface
2021-06-07 15:34:33 +03:00
Ivan Kylchik
a10d88924f
Simplify getIrFunctionByIrCall method in KFunctionState
...
Removed check of invoke symbols equality. Without this check it is
possible to store init functions in KFunctionState
2021-06-07 15:34:32 +03:00
Ivan Kylchik
3d1d86e9cb
Change call method of KProperty1Proxy to invoke corresponding accessors
2021-06-07 15:34:30 +03:00
Ivan Kylchik
64d5cea337
Implement getter and setter for KPropertyProxy
2021-06-07 15:34:29 +03:00
Ivan Kylchik
f89b75e387
Implement interpretation of KParameter interface
2021-06-07 15:34:28 +03:00
Ivan Kylchik
a4edddaa6e
Extract all reflection state classes into separate files
2021-06-07 15:34:26 +03:00
Ivan Kylchik
aa321f2333
Move ReflectionState.kt into separate package "reflection"
2021-06-07 15:34:25 +03:00
Ivan Kylchik
5a95e5b45f
Implement interpretation for KType and KTypeParameter
2021-06-07 15:34:24 +03:00
Ivan Kylchik
88b5b5f702
Implement interpretation of KVisibility class
...
For now it is interpreted as Wrapper, but maybe further it will be
converted to Common
2021-06-07 15:34:23 +03:00
Ivan Kylchik
40bf4fafc9
Implement basic interpretation of IrClassReference
2021-06-07 15:34:22 +03:00
Ivan Kylchik
002804941f
Replace Lambda state with KFunctionState
2021-06-07 15:34:21 +03:00
Ivan Kylchik
749200d518
Fix constructor call checker
...
Forget to check constructor for availability of compile time annotation
2021-06-07 15:34:19 +03:00
Ivan Kylchik
41ea1525d1
Implement basic interpretation for KProperty
2021-06-07 15:34:18 +03:00
Ivan Kylchik
c3d0438405
Allow to interpret property reference
2021-06-07 15:34:16 +03:00
Ivan Kylchik
ac858f760a
Forbid vararg flattening in place there array was expected
2021-06-07 15:34:15 +03:00
Ivan Kylchik
8b2706aaee
Change interpretConstructor method to be able to init object single time
2021-06-07 15:34:13 +03:00
Ivan Kylchik
903e883809
Add additional type arguments to stack from super types
2021-06-07 15:34:12 +03:00
Ivan Kylchik
a9d686b9f9
Add outer object to stack when interpreting constructor of inner class
2021-06-07 15:34:11 +03:00
Ivan Kylchik
b570d3f7fd
Fix interpreter error related to recreating Unit object
2021-06-07 15:34:09 +03:00
Ivan Kylchik
b98f680d65
Fix interpreter error related to incorrect work of get value for objects
2021-06-07 15:34:08 +03:00
Ivan Kylchik
d931e2eead
Implement simple proxy for non interface structures like kotlin.Pair
2021-06-07 15:34:07 +03:00
Ivan Kylchik
1e5096294e
Implement proxy for custom interfaces
2021-06-07 15:34:06 +03:00
Ivan Kylchik
96a090f2ab
Implement LambdaProxy class
2021-06-07 15:34:04 +03:00
Ivan Kylchik
1d0acedc48
Rewrite Complex class as interface
...
This change allow ExceptionState to be both: State and Throwable
2021-06-07 15:34:03 +03:00
Ivan Kylchik
6808151af7
Remove method getOriginal from Complex class
...
Common class no longer contains Common super classes,
all fields are now inside one single object.
2021-06-07 15:34:02 +03:00
Ivan Kylchik
4c75576414
Implement basic proxy for Common state
...
For now proxy works only for Any class methods and only for Common
state.
2021-06-07 15:34:01 +03:00
Ivan Kylchik
3c0c8d97cc
Add possibility to interpret spread operator on unsigned arrays
2021-06-07 15:33:59 +03:00
Ivan Kylchik
ca231ccc53
Rethrow InterpreterTimeOutError as UserException
2021-06-07 15:33:58 +03:00
Ivan Kylchik
c23e8517b3
Fix type arguments saving for arrays
2021-06-07 15:33:57 +03:00
Ivan Kylchik
7ecf4b17b6
Change evaluation function for arrayOf
...
For now it will get only elements variable from stack instead of all
2021-06-07 15:33:56 +03:00
Ivan Kylchik
4010eb11bd
Implement method to calculate EQEQ ir builtin function
2021-06-07 15:33:54 +03:00
Ivan Kylchik
9b1f11b22b
Extend compile time checker to check constructors body
2021-06-07 15:33:53 +03:00
Ivan Kylchik
cc0bbac354
Support isSubtypeOf check for functional type
2021-06-07 15:33:52 +03:00
Ivan Kylchik
c1aa39065f
Add handler for setters in getIrFunction method
2021-06-07 15:33:49 +03:00
Ivan Kylchik
6a483a8464
Add simple handler for StackOverflowError in ir interpreter
2021-06-07 15:33:48 +03:00
Ivan Kylchik
f3d7dc5f22
Rewrite exceptions handler in ir interpreter
...
For now there are 2 types of exceptions:
1. UserExceptions - express user and jvm like exceptions
2. InterpreterError - thrown only if something is wrong with interpreter
2021-06-07 15:33:47 +03:00
Ivan Kylchik
c3b0c9c6b2
Support multiple nested try blocks
2021-06-07 15:33:46 +03:00
Ivan Kylchik
ad6ba0cf11
Support lateinit var interpretation
2021-06-07 15:33:45 +03:00
Ivan Kylchik
b45df06680
Forbid to interpret non const top level properties
2021-06-07 15:33:43 +03:00
Ivan Kylchik
393ad9ae9b
Fix compile time checker for get and set field expressions
2021-06-07 15:33:42 +03:00
Ivan Kylchik
a084dabdde
Return Unit value from block if statements count is equal to zero
2021-06-07 15:33:41 +03:00
Ivan Kylchik
13ab7eafca
Move out compile time function checker logic to EvaluationMode.kt
2021-06-07 15:33:40 +03:00
Ivan Kylchik
84e6e1e305
Add WITH_ANNOTATIONS evaluation mode
...
This mode means that function can be executed if it has
CompileTimeCalculation annotation. FULL mode for now will mean deep
check without annotation help
2021-06-07 15:33:39 +03:00
Ivan Kylchik
1151c6177b
Move IrCompileTimeChecker to separate checker package
2021-06-07 15:33:37 +03:00
Ivan Kylchik
47ed6789d2
Fix interpreting of java static members such as Boolean.TRUE
2021-06-07 15:33:36 +03:00
Denis.Zharkov
592256976e
FIR: Fix inference of builder-inference function from expect type
...
Previously, such calls were being completed with FULL mode and incorrect
INFERENCE_NO_INFORMATION_FOR_PARAMETER has been reported
2021-06-07 15:25:57 +03:00
Denis.Zharkov
18e93b50d9
FIR: Fix loading read-only collection Java types with incorrect variance
2021-06-07 15:25:56 +03:00
Denis.Zharkov
5ade831665
FIR: Fix INFERENCE_NO_INFORMATION_FOR_PARAMETER on type alias with generic expansion
...
^KT-46996 Fixed
2021-06-07 15:25:55 +03:00
Denis.Zharkov
d76db0e011
FIR: Mute backend tests relevant to new INFERENCE_NO_INFORMATION_FOR_PARAMETER
...
See KT-46967 and KT-46996
2021-06-07 15:25:53 +03:00
Denis.Zharkov
d932d5b0a5
FIR: Support adding expect type to calls in foo() as R position
...
See https://kotlinlang.org/docs/whatsnew12.html#support-for-foo-as-a-shorthand-for-this-foo
2021-06-07 15:25:51 +03:00
Denis.Zharkov
6136526a3a
FIR: Avoid reporting inference errors from DelegatedPropertyConstraintPosition
...
All necessary diagnostics have already been reported through the checkers
2021-06-07 15:25:50 +03:00
Denis.Zharkov
43f3fe1ebe
FIR: Avoid missing errors during delegation resolution
...
Merge inference errors from delegation partially resolved calls to the main system
2021-06-07 15:25:49 +03:00
Denis.Zharkov
0aca3a3737
FIR: Adjust test data after introduction of INFERENCE_NO_INFORMATION_FOR_PARAMETER
...
See previous commits for details
2021-06-07 15:25:47 +03:00
Denis.Zharkov
c420957eac
FIR: Report INFERENCE_NO_INFORMATION_FOR_PARAMETER diagnostic
2021-06-07 15:25:45 +03:00
Pavel Punegov
6e901e3785
Filter out JRE installations on MacOS
...
java_home tool shows also JRE installations located at
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" path.
They should not be used as there are no javac and other tools there.
2021-06-07 11:03:08 +00:00
Anton Yalyshev
9b8ae8ce4f
1.5.20-RC Change-notes correction.
2021-06-07 13:51:46 +03:00
Anton Yalyshev
503700d60b
Add change notes for 1.5.20-RC
2021-06-07 13:51:44 +03:00
sebastian.sellmair
70924f6c15
[Commonizer] Link ticket ^KT-47100 in HierarchicalPropertyCommonizationTest
2021-06-07 09:07:43 +00:00
sebastian.sellmair
ffcd57cb31
[Commonizer] TypeCommonizer: Support commonizing typeAlias and their underlying types
2021-06-07 09:07:43 +00:00
sebastian.sellmair
92093bbabd
[Commonizer] HierarchicalPropertyCommonizationTest.test differently typeAliased property - *
2021-06-07 09:07:42 +00:00
sebastian.sellmair
0cf1618960
[Commonizer] Implement CirNodeRelationship over CommonizerCondition
2021-06-07 09:07:41 +00:00
sebastian.sellmair
8272564ca0
[Commonizer] Prototype: Commonize TypeAliases with Classes
...
^KT-45992 Fixed
^KT-46061 Fixed
2021-06-07 09:07:40 +00:00
sebastian.sellmair
b394dde339
[Commonizer] Implement HierarchicalClassAndTypeAliasCommonizationTest
...
^KT-45992
^KT-46061
2021-06-07 09:07:39 +00:00
pyos
d5200e3688
JVM_IR: box returned Result if overriding Any?
...
This is only relevant with MangleClassMembersReturningInlineClasses
disabled, as otherwise returning Result causes name mangling and thus
bridges.
2021-06-07 09:57:42 +02:00
pyos
0bd8d16fe2
JVM_IR: fix Result types in continuations & remove more codegen hacks
...
#KT-47129 Fixed
2021-06-07 09:57:42 +02:00
Pavel Punegov
e8490f950a
Chose archive name depending on the version of the compiler
2021-06-06 14:44:34 +00:00
Pavel Punegov
ca3150163d
Use old archive naming in the NativePlatformLibsIT test
2021-06-06 14:44:33 +00:00
Ilya Muradyan
8be5f009f1
[REPL] Fix completion for function arguments
2021-06-06 09:00:52 +03:00
Nikolay Krasko
0bc34f0ff9
Add information about 211.6693.111 Community idea to verification
2021-06-04 21:39:33 +03:00
Nikolay Krasko
17f042a4a3
Add information about 211.6693.111 Ultimate idea to verification
2021-06-04 21:39:32 +03:00
Nikolay Krasko
2401c37795
Fix double registration of NodeJSPlugin tasks
...
Can be reproduced when both ``intellijVersionForIde` and `installIntellijUltimate` are enabled
2021-06-04 21:39:31 +03:00
Nikolay Krasko
07be073e7f
Minor: regenerate verification-metadata.xml
2021-06-04 21:39:30 +03:00
Dmitry Petrov
7fd033adae
JVM_IR KT-47073 use type parameter upper bound for default value
2021-06-04 20:54:01 +03:00
Svyatoslav Scherbina
e4b723fe4a
Native: enable some of ObjCExport tests with new GC
2021-06-04 16:58:27 +00:00
Svyatoslav Scherbina
fa36ccedeb
Native: improve ObjCExport thread state switching
2021-06-04 16:58:26 +00:00
Svyatoslav Scherbina
388538be60
Native: minor exception handling refactoring
...
Move parts of exception handling implementation from IrToBitcode
to CodeGenerator, to allow using filteringExceptionHandler in ObjCExport.
2021-06-04 16:58:25 +00:00
Nikolay Krasko
2801704ad3
Temporary remove DiagnosisCompilerTestDataSpecTestGenerated.java tests
...
Buildserver fails because of too long path names
2021-06-04 18:25:45 +03:00
Nikolay Krasko
478b1f65fb
Fix builds: ideaIC might be absent in the build
2021-06-04 15:15:13 +03:00
Ilya Kirillov
febc4986d1
FIR IDE: mute spec testdata based test failing in FIR IDE
2021-06-04 13:16:18 +02:00
Ilya Kirillov
d474ff2b03
FIR IDE: generate tests based on compiler spec tests for ide
2021-06-04 13:16:18 +02:00
Ilya Kirillov
335a2d7b71
FIR IDE: add tests based on compiler spec tests for ide
2021-06-04 13:16:17 +02:00
Ilya Kirillov
a8a31231f7
Get rid of duplicated file names in spec tests
...
Otherwise, corresponding IDE tests would fail on creation duplicated
files in the same directory
2021-06-04 13:16:17 +02:00
Victor Petukhov
2d3ed4b7da
Update FIR test data
2021-06-04 13:25:10 +03:00
Alexander Gorshenev
f5d656ec4f
[Native] Revert klib printer change
2021-06-04 02:36:54 +03:00
Ivan Kochurkin
c4c2fbb5a0
[FIR] Implement RECURSIVE_TYPEALIAS_EXPANSION, CYCLIC_INHERITANCE_HIERARCHY diagnostics, fix stackoverlow exception in case if typealias points to type with type arguments
2021-06-03 20:41:58 +03:00
Mark Punzalan
d1531f9cdd
FIR: Choose a resolved candidate for augmented assignment when both
...
assign and operator candidates are unsuccessful.
2021-06-03 20:18:04 +03:00
Mark Punzalan
32bb64a225
FIR: Report UNSAFE_OPERATOR_CALL for augmented assignments (was
...
reporting UNSAFE_CALL).
2021-06-03 20:18:03 +03:00
Mark Punzalan
ef923d4cfe
FIR IDE: Enable ReplaceInfixOrOperatorCallFix for
...
UNSAFE_IMPLICIT_INVOKE_CALL.
2021-06-03 20:18:02 +03:00
Mark Punzalan
6de1000818
FIR: Report UNSAFE_INFIX_CALL for all infix-style calls, even if the
...
candidate is not an infix function.
This mirrors FE 1.0 (see
`AbstractTracingStrategy.reportUnsafeCallOnBinaryExpression()`) and
allows consistent handling for quickfixes on infix calls.
2021-06-03 20:18:01 +03:00
Mark Punzalan
ca7649edbb
FIR IDE: Enable ReplaceInfixOrOperatorCallFix for UNSAFE_CALL,
...
UNSAFE_INFIX_CALL, UNSAFE_OPERATOR_CALL.
2021-06-03 20:17:59 +03:00
Mark Punzalan
5a7f4ffc99
FIR IDE: Enable tests for ReplaceInfixOrOperatorCallFix.
2021-06-03 20:17:58 +03:00
Mark Punzalan
afeeec3091
IDE: Move ReplaceInfixOrOperatorCallFix to idea-frontend-independent.
2021-06-03 20:17:57 +03:00
Mark Punzalan
5a6d543fba
IDE: Don't do any resolution in ReplaceInfixOrOperatorCallFix.invoke().
2021-06-03 20:17:56 +03:00
Mark Punzalan
06adb405e1
IDE: Remove duplicate quickfix message in resources.
2021-06-03 20:17:54 +03:00
Ilya Kirillov
e5f6e4e1e8
FIR IDE: do not fail on FirDeclarationOrigin.ImportedFromObject for symbol
2021-06-03 19:39:16 +03:00
Ilya Kirillov
be99f24278
FIR IDE: fix uast import test after fixing import references
2021-06-03 19:39:15 +03:00
Ilya Kirillov
ae7a6dc742
FIR IDE: remove error handling from function completion
2021-06-03 19:39:13 +03:00
Ilya Kirillov
a1fcc34bbc
FIR IDE: choose better name for completion helpers
2021-06-03 19:39:12 +03:00
Ilya Kirillov
2e57361457
FIR IDE: add type arguments and -> symbol to when conditions completion
2021-06-03 19:39:11 +03:00
Ilya Kirillov
fa2f2c34cb
FIR IDE: fix flaky completion test
2021-06-03 19:39:09 +03:00
Ilya Kirillov
108176d0b6
FIR IDE: enable passing completion tests
2021-06-03 19:39:08 +03:00
Ilya Kirillov
88129c3354
FIR IDE: implement completion inside string templates
2021-06-03 19:39:07 +03:00
Ilya Kirillov
59b22fadad
FIR IDE: add tests for completion where clause
2021-06-03 19:39:06 +03:00
Ilya Kirillov
edbfff71e9
FIR IDE: fix shortenings for enums
2021-06-03 19:39:05 +03:00
Ilya Kirillov
0da488058d
FIR IDE: add tests for completion in sealed when
2021-06-03 19:39:03 +03:00
Ilya Kirillov
9af0885e82
FIR IDE: implement completion in sealed when
2021-06-03 19:39:02 +03:00
Ilya Kirillov
4bdf46e0a4
FIR IDE: fix icon for enum entry
2021-06-03 19:39:01 +03:00
Ilya Kirillov
1e1ce3067f
FIR IDE: implement basic classifier name contributor
2021-06-03 19:39:00 +03:00
Ilya Kirillov
58d5907041
FIR IDE: do not complete after where constraint type param with qualifier
2021-06-03 19:38:59 +03:00
Ilya Kirillov
ff369b1917
IDE/FIR IDE: fix not showed following type parameters in completion
2021-06-03 19:38:57 +03:00
Ilya Kirillov
0f13359229
FIR IDE: implement completion in where clause
2021-06-03 19:38:56 +03:00
Ilya Kirillov
5b5bbdd113
FIR IDE: add receiver parameter for callable lookup elements in completion
2021-06-03 19:38:55 +03:00
Ilya Kirillov
aef071691f
FIR IDE: refactor: separate lookup element factories into different files
2021-06-03 19:38:54 +03:00
Ilya Kirillov
62e4b53d03
FIR IDE: fix not added import for functions
2021-06-03 19:38:52 +03:00
Ilya Kirillov
0534d3fb98
fix after rebase
2021-06-03 19:38:51 +03:00
Ilya Kirillov
a926a1f534
FIR IDE: handle . after package name in completion tests
2021-06-03 19:38:50 +03:00
Ilya Kirillov
4785f36d8d
FIR IDE: implement completion for packages
2021-06-03 19:38:49 +03:00
Ilya Kirillov
943ae108f5
FIR IDE: introduce import statement completion
2021-06-03 19:38:48 +03:00
Ilya Kirillov
c998d0f026
FIR: make FirStaticScope to be name aware
2021-06-03 19:38:47 +03:00
Ilya Kirillov
b81ef157b2
FIR IDE: fix reference resolve in import statement
2021-06-03 19:38:45 +03:00
Ilya Kirillov
55621b7aad
FIR IDE: do not complete callables for classifier without companion
2021-06-03 19:38:44 +03:00
Ilya Kirillov
365bc5712b
FIR IDE: do not add internal packages to completion
2021-06-03 19:38:42 +03:00
Ilya Kirillov
48b69b4f3f
FIR IDE: add test for super keyword completion with qualifier
2021-06-03 19:38:41 +03:00
Ilya Kirillov
0a6243fc67
FIR IDE: implement super qualifier completion
2021-06-03 19:38:40 +03:00
Ilya Kirillov
7d351ca6b1
FIR IDE: add possibility to have different testdata for fir & fe10 keyword tests
2021-06-03 19:38:39 +03:00
Ilya Kirillov
c81a9c9d18
FIR IDE: mute test which fails as we have no decalration name completion
2021-06-03 19:38:37 +03:00
Ilya Kirillov
0739f6974f
FIR IDE: fix completion of type arguments without closing >
2021-06-03 19:38:36 +03:00
Ilya Kirillov
d510f0809a
FIR IDE: do not break formatting of reference shortenner
2021-06-03 19:38:35 +03:00
Ilya Kirillov
11e77d464d
FIR IDE: add completion with package receiver
2021-06-03 19:38:34 +03:00
Ilya Kirillov
e77783a0e5
FIR IDE: add packages name completion
2021-06-03 19:38:32 +03:00
Ilya Kirillov
df93dc91d1
FIR IDE: fix package reference resolve
2021-06-03 19:38:31 +03:00
Ilya Kirillov
d76ec9db50
FIR IDE: add completion for annotations
2021-06-03 19:38:30 +03:00
Ilya Kirillov
6b450e6fdf
FIR: make FirOnlyClassifiersScope/FirOnlyCallablesScope to be name aware
2021-06-03 19:38:29 +03:00
Ilya Kirillov
fcc5af99f3
FIR IDE: enable passing keyword tests
2021-06-03 19:38:27 +03:00
Ilya Kirillov
f7cf80b8e9
FIR IDE: render short names as for completion lookup element types
2021-06-03 19:38:26 +03:00
Ilya Kirillov
a718a2c2d8
FIR IDE: fix completion of top level type aliases
2021-06-03 19:38:25 +03:00
Ilya Kirillov
bcf7116955
FIR IDE: add type completion with dot
2021-06-03 19:38:24 +03:00
Ilya Kirillov
e03916e7fb
FIR IDE: add index helper to FirBasicCompletionContext
2021-06-03 19:38:22 +03:00
Ilya Kirillov
6c9831f7d4
FIR IDE: separate callable and type completion
2021-06-03 19:38:21 +03:00
Ilya Kirillov
e7288b3293
FIR IDE: extract FirCallableCompletionContributor
2021-06-03 19:38:20 +03:00
Ilya Kirillov
8dda232ae3
FIR IDE: move CompletionVisibilityChecker/ExtensionApplicabilityChecker to dedicated package
2021-06-03 19:38:19 +03:00
Ilya Kirillov
a437cd9d86
FIR IDE: do not capture KtAnalysisSession receiver for CompletionVisibilityChecker/ExtensionApplicabilityChecker
2021-06-03 19:38:18 +03:00
Ilya Kirillov
3df075061c
FIR IDE: extract classifier completion separate completion provider
2021-06-03 19:38:17 +03:00
Victor Petukhov
1e5998e0ba
Add constraints between two different stub variables instead of creating constraint error due to T1 isn't subtype of T2
...
^KT-44241 Fixed
2021-06-03 19:18:09 +03:00
Nikita Bobko
071ae301b4
Add possibility to use baseDir in AdditionalDiagnosticsSourceFilesProvider
...
In IJ infrastructure we have specific path prefix for compiler testData
2021-06-03 19:05:47 +03:00
Jinseong Jeon
10f19c8f4a
FIR UAST: invalidate caches between tests
2021-06-03 17:56:16 +02:00
Jinseong Jeon
37d8e6ddc3
FIR UAST: relocate render/log test data
2021-06-03 17:56:16 +02:00
Jinseong Jeon
80b94a43b0
FIR/UAST: split KotlinUIdentifier into a separate file
2021-06-03 17:56:16 +02:00
Jinseong Jeon
68766024b3
FIR/UAST: commonize Identifier implementations
2021-06-03 17:56:16 +02:00
Jinseong Jeon
6af930f6df
FIR UAST: convert LeafPsiElement to UIdentifier
2021-06-03 17:56:16 +02:00
Jinseong Jeon
83256ef3bd
FIR UAST: introduce identifiers and refNames tests
2021-06-03 17:56:16 +02:00
Jinseong Jeon
c37123603c
UAST: utilize identifier test base
2021-06-03 17:56:16 +02:00
Ivan Kochurkin
da15f0ffe8
[FIR] Consider fullyExpandedType instead of original type in isSubtypeForTypeMismatch, consider lookupTag in isError method
2021-06-03 18:24:36 +03:00
Ivan Kochurkin
0b0a96a1d3
[FIR] Fix processing of nested type arguments, extract extractTypeRefAndSourceFromTypeArgument method to FirHelpers and use it from FirClassVarianceChecker and FirConflictingProjectionChecker
2021-06-03 18:24:35 +03:00
Ivan Kochurkin
f081a6b4fa
[FIR] Implement REDUNDANT_PROJECTION diagnostics, rename FirConflictingProjectionChecker -> FirProjectionRelationChecker, fix tests
2021-06-03 18:24:34 +03:00
Ivan Kochurkin
03e577bf98
[FIR] Implement CONFLICTING_PROJECTION_IN_TYPEALIAS_EXPANSION diagnostics, fix tests
2021-06-03 18:24:32 +03:00
Ivan Kochurkin
ca970f0a8b
[FIR] Add ConeKotlinTypeConflictingProjection, return it from substituteArgument instead of ConeStarProjection in appropriate cases, remove plus operator from ProjectionKind
2021-06-03 18:24:30 +03:00
Ivan Kochurkin
b85846c0c0
[FIR] Fix location for CONFLICTING_PROJECTION diagnostics, extend conflictingProjection.kt with test sample
2021-06-03 18:24:29 +03:00
Ilya Goncharov
ce78457eaa
[Gradle, JS] Use replace by just string, not regexp in webpack config
...
^KT-43379 fixed
2021-06-03 17:55:05 +03:00
Ilya Goncharov
8c38c4a8e7
[Gradle, JS] Add dependency from packageJson task on included build's rootPackageJson
2021-06-03 17:55:04 +03:00
Victor Petukhov
19c07e048a
Don't check suitability of a builder inference call if unrestricted builder inference is enabled
...
^KT-42139 Fixed
2021-06-03 17:28:40 +03:00
Dmitry Savvinov
f8fbbc01b6
Don't append 'is a module' suffix to ModuleDescriptor debug text
2021-06-03 17:22:00 +03:00
Dmitry Savvinov
708fead1cc
Add debug strings to frontend scopes-related structures
...
Such as:
- PackageFragmentProviders, and, in particular,
CompositePackageFragmentProviders
- JavaPackageFragments
- Scopes produced by those providers
The rationale is that a lot of frontend-facing bugs (like red code) are
easily recognizeable in resolution. But at that point you just see a
bunch of scopes, without meaningful toStrings, you don't know who has
produced them, and what's exactly wrong.
With this commit it should make debugging slightly easier: now at least
you'll be able to see that "this scope is a scope of package fragment
for foo.bar of module baz" and decide whether the declaration should or
should not have been resolved from such scope.
2021-06-03 17:21:59 +03:00
Alexander Dudinsky
a51c65ed60
Update test data for MultiModuleHighlightingTest.testLanguageVersionsViaFacets
...
Add `Resolved to error element` markers
2021-06-03 16:42:24 +03:00
Nikita Bobko
e4205e5aa7
Pack 'compiler/testData/diagnostics/helpers' into kotlin-compiler-testdata-for-ide
...
This testdata is required for AbstractDiagnosisCompilerTestDataTest in FIR IDE in IJ infrastructure
2021-06-03 15:34:46 +02:00
Mikhail Glukhikh
2bf0e6744d
FIR2IR: optimize coerceToUnitIfNeeded in implicit cast inserter
2021-06-03 16:14:42 +03:00
Mikhail Glukhikh
13d91837be
FIR: cache functional type symbols in type resolver
2021-06-03 16:14:42 +03:00
Mikhail Glukhikh
1294c8de53
FIR: don't get class symbol if it's unnecessary (Java type conversion)
2021-06-03 16:14:41 +03:00
Nikita Bobko
3c7b07b90f
Include tests-compiler-utils into kotlin-compiler-tests-for-ide artifact
...
It fixes:
```
java.lang.NoClassDefFoundError: org/jetbrains/kotlin/fir/FirCfgConsistencyChecker
at org.jetbrains.kotlin.test.frontend.fir.handlers.FirCfgConsistencyHandler.processModule(FirCfgConsistencyHandler.kt:15)
at org.jetbrains.kotlin.test.frontend.fir.handlers.FirCfgConsistencyHandler.processModule(FirCfgConsistencyHandler.kt:13)
at org.jetbrains.kotlin.test.TestRunnerKt.processModule(TestRunner.kt:236)
at org.jetbrains.kotlin.test.TestRunnerKt.hackyProcess(TestRunner.kt:231)
at org.jetbrains.kotlin.test.TestRunnerKt.access$hackyProcess(TestRunner.kt:1)
```
while running `DiagnosisCompilerTestFE10TestdataTestGenerated.Tests#testBinaryCallsOnNullableValues` (and probably other tests) in new infrastructure
2021-06-03 15:04:10 +02:00
Dmitry Petrov
107e71acb0
Minor: fix Android tests
2021-06-03 13:05:23 +03:00
pyos
4128d27510
JVM_IR: do not use invokedynamic for inline fun references
2021-06-03 13:05:23 +03:00
Mads Ager
5d53d34d85
Fix regression test for KT-46962.
2021-06-03 13:05:23 +03:00
Victor Petukhov
124a14c8df
Use separate constraint position during call substitution as part of inferring postponed type variables
...
^KT-47052 Fixed
^KT-47082 Fixed
2021-06-03 12:37:17 +03:00
Ilmir Usmanov
7a2ecc58d4
Minor. Regenerate tests
2021-06-03 12:35:26 +03:00
pyos
d5d3d9f112
Add regression tests for KT-46890 and other stuff
2021-06-03 12:35:25 +03:00
pyos
ada4c48eba
JVM_IR: correctly (?) unbox Result when needed
...
and don't unbox when not needed.
#KT-46890 Fixed
2021-06-03 12:35:24 +03:00
pyos
288451db4d
JVM_IR: remove an unnecessary hack from BridgeLowering
...
Correct IR is more important than whether some inaccessible members
precisely match what was generated by the old backend.
2021-06-03 12:35:23 +03:00
Dmitriy Novozhilov
6f54e9fd5c
Revert "FIR: add smartcast stability to FIR"
...
This reverts commit 96bd2c54
2021-06-03 09:54:02 +03:00
Dmitriy Novozhilov
0497f60af3
Revert "FIR DFA: store stability in RealVariable"
...
This reverts commit 62f7e8f7
2021-06-03 09:53:57 +03:00
Dmitriy Novozhilov
796f8e6bce
Revert "FIR checkers: report SMARTCAST_IMPOSSIBLE"
...
This reverts commit 84334b08
2021-06-03 09:48:50 +03:00
Ilya Kirillov
20d1a84002
FIR/FIR IDE: fix FirFailingTestSuppressor for IDE
...
We need to have IdeTestIgnoreHandler executed after FirFailingTestSuppressor,
otherwise IdeTestIgnoreHandler will suppress exceptions
and FirFailingTestSuppressor will throw error
saying that file .fir.fail exists but test passes
2021-06-03 00:19:52 +03:00
Ilya Kirillov
948d9390d6
FIR: "//TODO make thread safe" comment from FirBuiltinSymbolProvider
2021-06-03 00:09:03 +03:00
Ilya Kirillov
f361312e45
FIR: use FirCachesFactory in BuiltInsPackageFragment.tryGetSyntheticFunctionalInterface
2021-06-03 00:09:02 +03:00
Ilya Kirillov
ba2315430b
FIR: get rid of lateinit var in FirBuiltinSymbolProvider for thread safety
2021-06-03 00:09:01 +03:00
Ilya Kirillov
863156679d
FIR: use FirCachesFactory in BuiltInsPackageFragment.getClassLikeSymbolByFqName
2021-06-03 00:09:00 +03:00
Dmitry Petrov
7a43c2de79
JVM remove dead code during constant condition elimination
...
This avoids an extra call to 'analyze', which is rather costly.
Update debugger testData: Constant condition
elimination now performs DCE more consistently.
2021-06-03 00:08:27 +03:00
Dmitry Petrov
1fd94d1bc2
JVM Minor: cleanup RedundantNullCheckMethodTransformer
2021-06-03 00:08:25 +03:00
Mads Ager
0b5ec5535c
[JVM_IR] Add String.plus(Any) to intrinsics list.
...
This filters it out for use in SAM wrapper generation with
invoke-dynamic.
The intrinsic is not actually used for code generation so
it is added to the list of intrinsics that should have been
lowered away before codegen.
^KT-45779 Fixed
2021-06-03 00:04:47 +03:00
Alexander Udalov
c1021623e8
Do not use ClassLoader.getResourceAsStream in reflection
...
Use ClassLoader.getResource + openStream instead, to workaround an issue
in URLClassLoader.
Also set useCaches to false because kotlin-reflect only reads builtins
metadata once per class loader, and doesn't need it to be cached. Using
caches here might also lead to the problem of closed input streams when
protobuf is read in parallel. The test doesn't check exactly this,
though (it seems to succeed even if cached connections are used).
Note that BuiltInsResourceLoader has a JDK 9+ specialization at
libraries/reflect/api/src/java9, but that implementation does not need
any changes because it uses Module.getResourceAsStream which is not
affected by this issue in URLClassLoader.
#KT-18277 Fixed
2021-06-02 22:54:16 +02:00
Vasily Levchenko
a0503aa2d7
[kotlin-native][test][debugger] exclude non constant part of stack trace from gold values
...
(cherry picked from commit ac072d3cc0aea0d311062f58fb5382cac6912deb)
2021-06-02 18:36:59 +00:00
Nikita Bobko
ea24da117b
Publish compiler testdata which is required for Kotlin plugin
2021-06-02 21:30:03 +03:00
Sergey Shanshin
71c9e62d64
Added support serialization of local classes in IR backend
...
Resolves Kotlin/kotlinx.serialization#1427
2021-06-02 16:43:31 +00:00
Pavel Punegov
ac0dc94800
Since 1.5.30-dev-1466 a new archive naming schema was introduced
...
Support both names in NativeCompilerDownloader
2021-06-02 18:30:52 +03:00
Pavel Punegov
789799ac17
Revert simpleOsName in HostManager
...
Support old naming in simpleOsName.
Introduce new platformName method for the new archive naming.
2021-06-02 18:30:52 +03:00
Leonid Startsev
1f837134bb
Support for @EncodeDefault annotation
2021-06-02 13:43:39 +00:00
Alexander Dudinsky
e6e3c9b236
Use master name for tests with snapshot version Kotlin Gradle Plugin
2021-06-02 15:23:31 +03:00
Roman Artemev
5f65b46dfc
[JS IR] Unmute fixed tests
2021-06-02 13:42:35 +03:00
Roman Artemev
a36135baf1
[JS IR] Fix reflection generation
2021-06-02 13:42:35 +03:00
Roman Artemev
974779e91b
[JS IR] Support function reference to array inline constructor
2021-06-02 13:42:34 +03:00
Tianyu Geng
84334b087c
FIR checkers: report SMARTCAST_IMPOSSIBLE
2021-06-02 13:19:12 +03:00
Tianyu Geng
62f7e8f71f
FIR DFA: store stability in RealVariable
...
As part of this change, we also extend the usage of RealVariable in more
places during DFA. Now mutable properties, property with custom getters,
delegated properties, etc are also treatd as a `RealVariable`. In
general this is needed in order to carry out smartcast computation in
order to report `SMARTCAST_IMPOSSIBLE`. It seems to also have side
effects that improves behavior of some test files.
2021-06-02 13:19:12 +03:00
Tianyu Geng
96bd2c54f0
FIR: add smartcast stability to FIR
2021-06-02 13:19:12 +03:00
Tianyu Geng
931a637bdd
FIR: use isReal() and isSynthetic() helper consistently
2021-06-02 13:19:11 +03:00
Vladimir Ivanov
2165cc8f0d
[Native] Fix test data for testObjCExportNoGeneric ( #4424 )
2021-06-02 11:13:07 +03:00
Vladimir Ivanov
e06a60bda5
[Native] Clean up nested comment when exporting kdoc to objc header ( #4410 )
...
* [Native] Clean up nested comment when exporting kdoc to objc header
* [kdoc-export] Add test witg nested comment block
* Remove redundant assert
Co-authored-by: Vladimir Ivanov <vladimir.d.ivanov@jetbrains.com >
2021-06-02 10:18:32 +03:00
Alexander Udalov
61d5595790
Remove dependency of ir.serialization.common on frontend
2021-06-01 20:28:23 +02:00
Alexander Udalov
dfea915f92
Remove dependency of frontend on compiler.common.jvm
...
Looks like it was added accidentally in 564d382b9d; common frontend
shouldn't depend on JVM-specific modules.
Since then, it has been accidentally used in two places in
ir.serialization.common to refer to JVM specifics, and that should be
abstracted away in the future.
2021-06-01 20:28:23 +02:00
Alexander Udalov
81ce1da352
Move PsiSourceElement to psi
2021-06-01 20:28:23 +02:00
Alexander Udalov
bcf47ddc94
Move optional annotation utilities to module 'resolution'
...
To avoid depending on a heavy module 'frontend' in parts of the compiler
where checking for optional annotations is needed, such as in
'ir.serialization.common'.
2021-06-01 20:28:22 +02:00
Alexander Udalov
e790fa8ac9
Remove dependency of serialization on frontend
...
Move ApplicationExtensionDescriptor and ProjectExtensionDescriptor to
:compiler:util.
2021-06-01 20:28:22 +02:00
Alexander Udalov
8b3769b88e
Remove dependency of ir.serialization.common on ir.backend.common
2021-06-01 20:28:22 +02:00
Alexander Udalov
a3ad03d1ad
Slightly refactor module dependencies of backend.js/serialization.js
...
The comment in serialization.js/build.gradle.kts is not needed because
such dependency cannot be introduced accidentally, since Gradle does not
support cycles in module dependencies.
2021-06-01 20:28:22 +02:00
Leonid Startsev
b43e5a5e7d
fixup! Fix tests and review notes
2021-06-01 16:41:56 +00:00
Leonid Startsev
6a5cf00d7a
Optimize serializer instantiation: use Companion.serializer() when possible
...
Add test for sealed hierarchy
2021-06-01 16:41:55 +00:00
Leonid Startsev
b61277df97
Support annotations in constructor signatures of special serializers
2021-06-01 16:41:55 +00:00
Leonid Startsev
229085f3d1
Support default parameter values in @SerialInfo annotations
...
#KT-46739 Fixed
Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1461
2021-06-01 16:41:54 +00:00
Mads Ager
f846dd8ea2
[JVM_IR] Avoid using special names in static inline class replacements.
...
Fixes KT-46952
2021-06-01 16:22:14 +02:00
Aleksei.Cherepanov
b1ab597616
Fix FIR tests after ee45aa6b
2021-06-01 15:59:17 +03:00
Pavel Punegov
3293a888ca
[native] Archive naming: use $os-$arch convention
2021-06-01 10:20:05 +00:00
Pavel Punegov
48ef739525
[native] Rename Apple MacOS targets in simpleOsName
...
Use Arm64 suffix for Apple Arm arch and X64 for Intel X86_64
2021-06-01 10:20:04 +00:00
Alexander Shabalin
825b77cc82
Remove unused ostream
2021-06-01 07:01:11 +00:00
Mikhael Bogdanov
b72aa76415
Support class type parameters annotation checking
2021-06-01 06:33:51 +02:00
Mikhael Bogdanov
a8186d19d6
Support annotations on class type parameters
...
#KT-43714
2021-06-01 06:33:50 +02:00
Dmitry Petrov
9091ca7b51
JVM_IR KT-46864 handle "unused" LDC instructions properly
2021-05-31 21:12:35 +03:00
Andrey Uskov
be097244d4
fixup synchronizations
2021-05-31 20:23:54 +03:00
Aleksei.Cherepanov
b0d721c9d0
Fix synchronization in translation-result map
...
#KT-27660 Fixed
2021-05-31 20:23:53 +03:00
Aleksei.Cherepanov
290d424111
Fix synchronization in source-to-classes table
2021-05-31 20:23:52 +03:00
Aleksei.Cherepanov
ee45aa6b08
Fixed closing of cache storage
...
#KTIJ-7680 Fixed
#KT-45843 Fixed
2021-05-31 20:23:51 +03:00
Mads Ager
886ce055f5
[JVM_IR] Do not use invoke-dynamic for targeting inline-only methods.
...
Fixes https://youtrack.jetbrains.com/issue/KT-46962
2021-05-31 18:11:50 +03:00
pyos
5c2753b5d1
JVM_IR: use substituted return type in function reference invoke
...
#KT-46982 Fixed
2021-05-31 16:01:22 +03:00
Vasily Levchenko
84c10079e4
[kotlin-native][tests] kt-42208 test added.
2021-05-31 11:45:32 +00:00
Vasily Levchenko
1ff6dc1275
[kotlin][tests][compiler/testData/debug/stepping] kt-42208 test added.
2021-05-31 11:45:31 +00:00
Vasily Levchenko
ecbae02f17
[IR][provisional function expression] another line information provider added for func_expression -> function_reference conversion
2021-05-31 11:45:31 +00:00
Dmitriy Novozhilov
c6a2d85c87
[Build] Remove incorrect dependency
...
`intellijDep()` includes jars with JUnit3 and JUnit4. JUnit5 runner
which is used in compiler tests sees old junit on classpath and checks
if this version can be ran using Vintage test engine. Looks like recent
changes in platform changed order of this jars on classpath, so now
jar with JUnit3 is closer than JUnit4 (and they have same classes inside),
so version checker from JUnit5 observes JUnit3 and fails with error
of incompatible versions. Since old JUnits are not needed at all in those
modules now only required jars from intellijDep are included
2021-05-31 14:03:37 +03:00
Dmitriy Novozhilov
6121d156a1
[Build] Add workarounds for JPS build
...
Compilation of `:kotlin-gradle-statistics:test` is broken in gradle
too, so this module is removed from JPS to allow build project with
"Rebuild project" action
Dependency on `:kotlin-uast-base` changed to `implementation` because
project import assumes `shadow` dependency as _Provided_ instead of
_Compile_ in module structure which leads to problem that this
dependency is missing during build (this is bug inside JPS itself)
2021-05-31 14:03:37 +03:00
Abduqodiri Qurbonzoda
d934c97bf5
Equivalize isLowerCase and isUpperCase behavior in all platforms #KT-46184
2021-05-31 13:42:46 +03:00
Yahor Berdnikau
0b10f255d7
Update 'kotlinOptions.jdkHome' deprecation message.
...
Also mention java toolchains approach.
^KT-43095 Fixed
2021-05-31 10:22:50 +00:00
Yahor Berdnikau
c5e6215d27
Set UsesKotlinJavaToolchain interface to extend Task interface.
...
Limit use-case of UsesKotlinJavaToolchain interface to only Gradle tasks
and allow to query all tasks using
'taskContainer.withType(UsesKotlinJavaToolchain.class)'.
^KT-43095 In Progress
2021-05-31 10:22:50 +00:00
Yahor Berdnikau
4c943e7cd1
Allow to configure non-default JDK using toolchain via extension.
...
Add method into "kotlin" extension to set toolchain for all tasks.
This will also set toolchain for java compile tasks. Also user may
set toolchain via "java" extension and it will be applied to Kotlin
tasks as well.
^KT-43092 In Progress
2021-05-31 10:22:49 +00:00
Yahor Berdnikau
8e1c420c9f
Allow to set non-default JDK for tasks via java toolchain.
...
Has to split jdk/toolchain setters, because, when toolchain setter is
in the 'UsesKotlinJavaToolchain', Groovy fails to create meta class
on <Gradle 6.7 with ClassNotFoundException.
^KT-43092 In Progress
2021-05-31 10:22:48 +00:00
Ilya Matveev
de5dcfcbd8
[K/N][Runtime] Support suspending mutators in the new MM
2021-05-31 09:48:46 +00:00
Alexander Likhachev
94a94a557d
[Gradle, JS] Add test for KT-47045
2021-05-31 11:43:18 +03:00
Alexander Likhachev
89f8c5a651
[Gradle, JS] Prevent adding unintended implicit dependencies
...
The way JS compilations are mapped to task requirements were changed from `compilation` objects to compilations's `disambiguatedName` in order to support Gradle configuration cache. This may lead to implicitly adding unwanted dependencies in multi-module projects since compilation's `disambiguatedName` is unique within a module, not within a whole multi-module project.
#KT-47045 Fixed
2021-05-31 11:43:18 +03:00
Andrey Zinovyev
78e20c1098
[KAPT] Keep original expressions in annotations vararg
...
#KT-29929 Fixed
2021-05-31 08:08:37 +00:00
Dmitriy Dolovov
e927764aaf
[IR][Native] Fix invalid IR return statement generation
...
^KT-46836
2021-05-29 19:31:13 +00:00
Victor Petukhov
15b6a3c88c
Temporary don't fail fir tests if a test passes but *.fir.fail exists (needs for DiagnosisCompilerTestFE10TestdataTestGenerated)
2021-05-29 11:30:55 +03:00
Nikita Bobko
3e892d3184
'idea-fir-fe10-binding' move fir tests into subpackage 'org.jetbrains.kotlin.idea.fir'
...
In intellij infrastructure we run tests by matching package pattern.
So in order to be able run FIR tests we need to place them into unique package
2021-05-29 00:11:28 +03:00
Nikita Bobko
65972fa64c
'idea-frontend-fir' move fir tests into subpackage 'org.jetbrains.kotlin.idea.fir'
...
In intellij infrastructure we run tests by matching package pattern.
So in order to be able run FIR tests we need to place them into unique package
2021-05-29 00:11:27 +03:00
Nikita Bobko
1ba6845b59
'idea-fir' move fir tests into subpackage 'org.jetbrains.kotlin.idea.fir'
...
In intellij infrastructure we run tests by matching package pattern.
So in order to be able run FIR tests we need to place them into unique package
2021-05-29 00:11:26 +03:00
Alexander Udalov
e7275a7cb0
Revert "Enable JVM IR for stdlib/reflect/test libraries"
...
This reverts commit 15e978dbd3 .
Together with the previous revert, this led to multiple failures in
Gradle integration tests:
ConfigurationCacheIT.testIncrementalKaptProject
ConfigurationCacheForAndroidIT.testAndroidKaptProject
KotlinAndroid34GradleIT.testParcelize
KotlinAndroid34GradleIT.testAndroidExtensionsManyVariants
KotlinAndroid36GradleIT.testAndroidWithNewMppApp
KotlinAndroid36GradleIT.testParcelize
KotlinAndroid36GradleIT.testAndroidIcepickProject
2021-05-28 21:36:24 +02:00
Alexander Udalov
e0cc6d44a7
Revert "Remove obsolete kotlin.build.useIR flag"
...
This reverts commit 91e47f1fd7 .
2021-05-28 21:35:57 +02:00
Victor Petukhov
67d48d0150
Fix failing test
2021-05-28 21:38:27 +03:00
Alexander Udalov
96f0b53761
IR: get overridden directly from IrProperty when resolving fake override
...
The previous way of getting them either via getter or setter failed on
Java properties which only have a backing field. Now that IrProperty has
overriddenSymbols (after 53c1de172f ), it makes sense to use it directly
instead. Use it only in SyntheticAccessorLowering though to avoid
breaking Kotlin/Native (see KT-47019).
#KT-46900 Fixed
2021-05-28 17:24:20 +02:00
Mark Punzalan
af35892007
FIR IDE: Enable RemoveUselessIsCheckFix and
...
RemoveUselessIsCheckFixForWhen.
2021-05-28 18:21:32 +03:00
Mark Punzalan
639b7537da
FIR IDE: Enable RemoveUselessCastFix.
2021-05-28 18:21:31 +03:00
Pavel Kirpichenkov
f5a53c82c5
Don't write type arguments of types replaced with Any to metadata
...
Anonymous types are not approximated by frontend for private declarations.
Class IDs for such types are replaced by StringTable before being written
to metadata. JVM string table mangles such types and keeps them generic
for reflection. For other purposes the types are replaced with `Any`.
Type arguments of the replaced type should be ignored in the latter case.
Otherwise decompiled text builder crashes on an attempt to restore `Any`
type with non-zero number of type arguments.
The code pretending to replace a type with its first supertype was dropped
from ApproximatingStringTable for two reasons:
- the first type from `getAllSuperClassifiers` is the original type itself
which doens't provide a ClassId for anonymous type, so it was a noop
- tracking potential type arguments of the first anonymous type's supertype
would be a complication with almost no practical value (types in decompiled
text would be slightly closer to the real type of a private declaration).
^KT-46393 Fixed
2021-05-28 14:42:47 +00:00
sebastian.sellmair
fefc6f9b53
[Gradle] :kotlin-test-js-runner: Update nodejs to 16.2.0
...
^KT-45302
2021-05-28 14:27:36 +00:00
sebastian.sellmair
d3b1ee42be
[Gradle] Test project 'commonizeHierarchically': Use new 'macos' target shortcut
...
^KT-45302
2021-05-28 14:27:36 +00:00
sebastian.sellmair
cc571a876a
[Gradle] Implement AppleSiliconIT
...
^KT-45302
2021-05-28 14:27:35 +00:00
sebastian.sellmair
242d79ded6
[Gradle] :kotlin-gradle-plugin-integration-tests: Include Commonizer tests into 'native' tests
...
^KT-45302
2021-05-28 14:27:34 +00:00
sebastian.sellmair
b9018e8888
[Gradle] :kotlin-gradle-plugin-integration-tests: Add 'includeTestsWithPattern' util function
...
^KT-45302
2021-05-28 14:27:33 +00:00
sebastian.sellmair
5dcaaf47cb
[Gradle] Support for Apple Silicon targets
...
^KT-45302 Verification Pending
2021-05-28 14:27:32 +00:00
Alexander Udalov
91e47f1fd7
Remove obsolete kotlin.build.useIR flag
2021-05-28 15:41:57 +02:00
Alexander Udalov
15e978dbd3
Enable JVM IR for stdlib/reflect/test libraries
2021-05-28 15:41:56 +02:00
Alexander Udalov
1dfcec3a93
Build: add temporary option to suppress jdkHome warning
2021-05-28 15:41:17 +02:00
Victor Petukhov
aaffd73feb
Take into account FE exceptions built as FromFrontendHandler to proper mute corresponding tests for DiagnosisCompilerTestFE10TestdataTestGenerated
2021-05-28 15:48:59 +03:00
Victor Petukhov
54b9f39b3a
Update tests after rebase
2021-05-28 15:36:24 +03:00
Victor Petukhov
f4788b479c
Fix incorrect builder inference usage
2021-05-28 15:36:23 +03:00
Victor Petukhov
76c15e4444
Don't update null recorded type prematurely in ResolvedAtomCompleter
2021-05-28 15:36:23 +03:00
Victor Petukhov
bd7fb56a24
Fix builder inference tests
2021-05-28 15:36:23 +03:00
Victor Petukhov
4a767c597e
Don't report the same diagnsotics several times
2021-05-28 15:36:23 +03:00
Victor Petukhov
e942052eb6
Substitute stub type variables in local variable descriptors
2021-05-28 15:36:22 +03:00
Victor Petukhov
758eb8f851
Fix builder inference tests
2021-05-28 15:36:22 +03:00
Victor Petukhov
be22078bd1
Return empty NotFixedToInferredTypesSubstitutor if the current substitutor is empty
2021-05-28 15:36:22 +03:00
Victor Petukhov
d8c68aacdd
Split setting substitutor descriptor for entire resolved call into two parts: setting resulting substitutor and setting substitutor for resolved call's types
2021-05-28 15:36:22 +03:00
Victor Petukhov
fd5169186e
Update test for the builder inference and add new ones
2021-05-28 15:36:21 +03:00
Victor Petukhov
31ed1ad5d9
Use recorded into descriptor inferred callable reference input/output types, to prevent leaking raw type parameter's types of reflectionCandidateType into the back-end
2021-05-28 15:36:21 +03:00
Victor Petukhov
84bd580f92
Complete block expressions to substitute stub type variables into last callable references there
2021-05-28 15:36:21 +03:00
Victor Petukhov
472ab09511
Do stub types substitution for property initializer's type
2021-05-28 15:36:20 +03:00
Victor Petukhov
ac222fdb41
Update type for both version of expression: parenthesis and not
2021-05-28 15:36:20 +03:00
Victor Petukhov
c0ad1c9b18
Do substitution of stub types inside smartcast types to further write it into trace and prevent dealing with that in the back-end
2021-05-28 15:36:20 +03:00
Victor Petukhov
26cbb020db
Use resulting descriptor for old callable references to substitute stub type variables
2021-05-28 15:36:20 +03:00
Victor Petukhov
3ff22b67f7
Substitute type arguments of old callable references as well
2021-05-28 15:36:20 +03:00
Victor Petukhov
d5be258291
Do substitution for receivers of old (by passing though OI) callable references properly, with avoiding premature returning from the method
2021-05-28 15:36:19 +03:00
Victor Petukhov
9fd1cbd2e7
Inject stub type variables of a different builder inference call properly
2021-05-28 15:36:19 +03:00
Victor Petukhov
d486f7e188
Don't report TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE if unrestricted build inference was enabled
2021-05-28 15:36:19 +03:00
Victor Petukhov
0c427555cf
Support definitely not null stub types and proper subtyping on them
2021-05-28 15:36:19 +03:00
Victor Petukhov
0f317b01b4
Rename language feature StableBuilderInference to UnrestrictedBuilderInference
2021-05-28 15:36:19 +03:00
Victor Petukhov
0b37b2be6a
Add addtional tests for builder inference
2021-05-28 15:36:19 +03:00
Victor Petukhov
ecde5414dc
Reuse error type constructor for stub types
2021-05-28 15:36:18 +03:00
Victor Petukhov
ee927a15a9
Compute nullability for stub types properly
2021-05-28 15:36:18 +03:00
Victor Petukhov
afbda75581
Set member scope for builder inference stub types equivalent to Any
2021-05-28 15:36:18 +03:00
Victor Petukhov
6356b9d501
Put removing builder inference restrictions under the compiler flag
2021-05-28 15:36:17 +03:00
Victor Petukhov
5a11450d77
Split stub types into stub type for subtyping and for builder inference and use them in the proper way
2021-05-28 15:36:17 +03:00
Victor Petukhov
703a353d2e
Determine empty constraint system for a builder inference call by presense of not fixed type variables
2021-05-28 15:36:17 +03:00
Victor Petukhov
c5faf532f5
Allow builder inference calls with labeled lambda
...
^KT-24993 Fixed
2021-05-28 15:36:16 +03:00
Victor Petukhov
90066d7e50
Add expected type constraints in a builder inference call
2021-05-28 15:36:16 +03:00
Victor Petukhov
7da47dcde8
Add type variables into common system of a builder inference call properly
2021-05-28 15:36:15 +03:00
Victor Petukhov
ac7b459f2a
Do subtyping with stub types properly
...
1) Return stub type if we are calculating super type between two same stub types
2) Return nullable Any if those stub types are different
2021-05-28 15:36:15 +03:00
Victor Petukhov
5d0461c722
Remove restrictions for builder inference internal calls
2021-05-28 15:36:14 +03:00
Victor Petukhov
26b8e86fe1
Render stub types properly
2021-05-28 15:36:14 +03:00
Nikita Bobko
af12b2fdf0
[imltogradle] Replace "Exported transitive dependency" with original module name reference
2021-05-28 14:03:07 +02:00
Nikita Bobko
6a7770573c
[imltogradle] Support attaching 211 IDEA
2021-05-28 14:03:07 +02:00
Roman Artemev
8a856e440e
[KLIB] Fix linker diagnostic message
2021-05-28 13:37:30 +03:00
Roman Artemev
720edfa6aa
[IR] Fix branch offests
...
Seems logic that right bound of branch is result's right bound,
not condition's.
2021-05-28 13:23:52 +03:00
Andrey Zinovyev
ebf6ce133b
[FIR] Fix kotlin version check in annotations
...
@RequireKotlin has more than one string parameter, so you need to check
'version' only
2021-05-28 12:24:58 +03:00
Elena Lepilkina
3a22761d02
[K/N] Fix MutationCheck calls for inlined property accessors
2021-05-28 06:45:53 +00:00
Elena Lepilkina
b6f35ac44d
[K/N] Fix inlining of property setters by replacing ReturnsInsertion lowering
2021-05-28 06:45:52 +00:00
Yahor Berdnikau
3387615d4a
Fix test requires more later Gradle version.
2021-05-27 18:12:02 +00:00
Yahor Berdnikau
cdb04f9cd7
Add 'kgpSimpleTests' task.
...
This task run all JUnit5 tests with annotated with '@SimpleKGPTests`
annotation and also will be used in CI configuration.
^KT-45745 In Progress
2021-05-27 18:12:02 +00:00
Alexander Shabalin
af1f57007a
https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2
2021-05-27 17:18:55 +00:00
Nikolay Krasko
0b1884c994
Print memory consumption in the failure for GradleDaemonMemoryIT test
2021-05-27 20:13:10 +03:00
Nikolay Krasko
166f0a597b
Run tests only for unique gradle versions
2021-05-27 20:13:09 +03:00
Nikolay Krasko
b5f71bacaf
Never spam to log during the normal test execution in Gradle tests
2021-05-27 20:13:08 +03:00
Nikolay Krasko
9d1a6ebb18
Minor: narrow extracting functions scope
2021-05-27 20:13:07 +03:00
Mark Punzalan
d12a24418e
FIR IDE: Remove multiple nested params in RemoveUselessElvisFix and
...
RemoveUselessCastFix.
2021-05-27 19:32:03 +03:00
Mark Punzalan
a778cc673e
FIR IDE: Enable RemoveUselessElvisFix.
2021-05-27 19:32:01 +03:00
Ilya Goncharov
157046153f
[Gradle, JS] Add test with dynamic webpack.config.d
2021-05-27 19:18:13 +03:00
Hung Nguyen
01c14a709a
KotlinCompile: Add kotlin.incremental.useClasspathSnapshot flag
...
We are planning to improve incremental Kotlin compile with a new
approach using classpath snapshot (see
https://youtrack.jetbrains.com/issue/KT-45777 for more details).
The estimated steps will be as follows:
[x] Add a flag for the new approach, disabled by default
[ ] Add tests for the new approach, and update them as we go
[ ] Add computation of classpath snapshot using artifact transforms
[ ] Add computation of classpath snapshot changes
[ ] Ensure incremental compile is fully functional with the new approach
[ ] Measure performance + optimize: Repeat until we see evidence that
the new approach is clearly better than the current approach
[ ] Advertise the flag, and later on enable it by default
This commit is the first step. Although it's simple, it allows further
changes to be made safely without impacting the current approach.
Bug: KT-45777
Test: N/A (will be added in a subsequent change)
2021-05-27 19:05:26 +03:00
Nikita Bobko
1abf3a39d4
Fix kotlin-compiler-tests-for-ide. tests jars should be published
2021-05-27 17:23:46 +02:00
Nikita Bobko
2d015da1ea
Make it possible to depend on the rest of :prepare:ide-plugin-dependencies modules
...
Those modules used as "aggregate" modules. kotlin-ide modules depend on them in coop-dev
2021-05-27 16:32:14 +02:00
Sergey Shanshin
961ee92c15
Fix bytecode for serializable enums in generated tests
2021-05-27 15:35:12 +03:00
Alexander Shabalin
e0c7cda1cf
Adjust test expectations for the new MM
2021-05-27 11:39:56 +00:00
Ilya Goncharov
f2a067eda0
[Gradle, JS] In KotlinWebpack configDirectory as getter not lazy
...
It is useful to dynamically creating config directory during build execution
^KT-46976 fixed
2021-05-27 14:07:04 +03:00
Viacheslav Kormushkin
3709616baa
Fixed failing cocoapods integration test
2021-05-27 10:47:45 +00:00
pyos
34878d17eb
JVM: be more careful when removing unused constants
...
1. if an argument of a `pop` cannot be removed, then all other potential
arguments of that `pop` can't be removed either, and the same applies
to other `pop`s that touch them;
2. the same is true for primitive conversions, but this is even trickier
to implement correctly, so I simply did the same thing as with
boxing operators: replace the conversion itself with a `pop` and keep
the argument as-is.
Somehow this actually removes *more* redundant primitive type conversions
than the old code in a couple bytecode text tests, so I've patched them
to kind of use the value, forcing the instructions to stay.
#KT-46921 Fixed
2021-05-27 12:24:22 +02:00
pyos
2f60ce21a0
JVM: remove CHECKCAST handling from PopBackwardPropagationTransformer
...
Redundant CHECKCASTs should've been removed by a previous pass.
2021-05-27 12:24:22 +02:00
pyos
535934dc28
JVM: do not remove NOPs in PopBackwardPropagationTransformer
...
There is a pass that removes NOPs and runs afterwards anyway.
2021-05-27 12:24:22 +02:00
Aleksei.Cherepanov
5f4be07225
[JPS] Fix JS incremental compilation
...
Disable Idea JPS build mechanism for marking all sources of common output if one of them is dirty
Add source-to-outputs map for correctly removing Kotlin/JS outputs
#KT-45763 Fixed
#KT-44351 Fixed
2021-05-27 13:00:56 +03:00
Andrey Zinovyev
c2389a94fa
[FIR] Resolve annotations in when expressions
2021-05-27 12:41:16 +03:00
Sergey Bogolepov
b541721a79
Deprecate Architecture.bitness property
...
There is no such thing as "bitness" of CPU achitecture.
Something more appropriate and correct (e.g. ABI) should be
introduced instead.
2021-05-27 10:09:25 +03:00
Sergey Bogolepov
bed42e9ab2
Revert "Drop useless bitness property from Architecture"
...
As it turn outs, `Architecture.bitness` leaks to public Gradle API and
we need to deprecate it gracefully.
This reverts commit 79bf2a1f .
2021-05-27 10:09:24 +03:00
sebastian.sellmair
14eca72913
Implement 'CommonizerTarget.fileName' and limit fileName length
...
^KT-46856 Fixed
2021-05-27 06:48:34 +00:00
sebastian.sellmair
0749443f7e
Implement CommonizerIT.test KT-46856 filename too long - all native targets configured
...
Covers ^KT-46856
2021-05-27 06:48:33 +00:00
Abduqodiri Qurbonzoda
54994a289f
Support all digit chars on JS and Native #KT-46002
2021-05-27 06:56:52 +03:00
Anton Lakotka
8481f4a9d2
Set kotlin-project-model as api dependency for kotlin-gradle-plugin-api
...
LanguageSettingsBuilder depends on LanguageSetting interface from KPM
which forces api dependency scope
^KT-46517 Fixed
2021-05-26 18:11:39 +00:00
Anton Lakotka
3e2b8a8898
Test Gradle buildSrc with kotlin-gradle-plugin-api dependency
...
For ^KT-46517
2021-05-26 18:11:39 +00:00
Anton Bannykh
b3bb033fe4
JS IR: fix plain module reference
2021-05-26 17:53:21 +03:00
Dmitriy Novozhilov
b63770bc7b
Add workaround for KT-46902
2021-05-26 17:53:20 +03:00
Dmitriy Novozhilov
89e52cb780
Add workaround for KT-46900
2021-05-26 17:53:19 +03:00
Dmitriy Novozhilov
8eca31e867
Advance bootstrap to 1.5.30-dev-1023
2021-05-26 17:53:17 +03:00
pyos
d37ceb47be
JVM_IR: use correct dispatch receiver type in more references
...
#KT-46902 Fixed
2021-05-26 15:23:19 +02:00
Sergey Shanshin
16dbafced1
Add .serializer() to enum companion and object with custom serializer
...
Fixes Kotlin/kotlinx.serialization#1386
2021-05-26 16:07:59 +03:00
Igor Chevdar
f431b4b171
[K/N][codegen] Escape analysis: increased a bit the number of iterations
...
This helps the algorithm to converge in more situations and increases
the number of stack allocated objects
2021-05-26 17:48:20 +05:00
Igor Chevdar
29584edcdd
[K/N][codegen] Escape analysis: handled nulls more optimally
...
Helps with https://youtrack.jetbrains.com/issue/KT-44148
2021-05-26 17:46:22 +05:00
Igor Chevdar
426ac1281d
[K/N][codegen] Removed square graph swelling during escape analysis
...
Helps with https://youtrack.jetbrains.com/issue/KT-44148
2021-05-26 17:46:15 +05:00
Konstantin Tskhovrebov
2129a762a5
Change assemble AppleFrameworkTask name to using framework name prefix
...
#KT-46892
2021-05-26 14:59:30 +03:00
Elena Lepilkina
a006f35df3
[K/N][build] Removed extra konanVersion variable as far as it's now same as kotlinVersion
2021-05-26 11:49:49 +00:00
Tianyu Geng
61475c48e2
FIR: fix VALUE_ARGUMENTS position strategy
2021-05-26 14:46:18 +03:00
Margarita Bobova
3bd6bf1432
Add changelog for 1.5.10
2021-05-26 13:51:48 +03:00
Margarita Bobova
e31173ca73
Add changelog for 1.5.0
2021-05-26 13:51:06 +03:00
pyos
33ddeffcfd
JVM_IR: box inline class values returned by suspend inline lambdas
...
The call site inside the inline function expects them to return a boxed
value, like FunctionN.invoke would.
#KT-46915 Fixed
2021-05-26 08:33:55 +02:00
pyos
117fad2018
JVM: refactor inline ExpressionLambda initialization
2021-05-26 08:33:55 +02:00
Mads Ager
d023966054
[JVM] Fix various undefined locals issues.
...
CoroutineTransformermethodVisitor attempts to extend the ranges
of local variables in various situations. Probably in an attempt
to give a better debugging experience. However, all of these
range extensions lead to invalid local variable tables where
something is in the local variable table where nothing is in the
corresponding slot.
The code that extends variables to the next suspension point
instead of ending them when they are no longer live has issues
with loops. When resuming and reentering the loop, the locals
table will mention a local that we did not spill and which
is therefore not restored when resuming.
The code that extends local variable table entries if there
are no suspension points between two entries doesn't work
for code such as:
```
var s: String
if (suspendHere() == "OK") {
s = "OK"
} else {
s = "FAIL"
}
```
If the local variable ranges are collapsed into one, one of
the branches will have the local defined in the local variable
table before the slot is initialized.
2021-05-26 08:33:34 +02:00
Nikita Bobko
14ed660f4f
[cleanup] Remove unused AbstractFirMultiModuleResolveTest
2021-05-25 23:53:08 +03:00
Anton Lakotka
5d9915e133
Don't copy extendsFrom configs for resolvableMetadataConfiguration
...
Gradle's detached configurations doesn't respect extends from relation
to other configurations due to gradle bug.
In fact extendsFrom isn't required for resolvableMetadataConfiguration
business logic. It is enough to include all originalDependencies to
freshly created detached configuration.
^KT-46417 Fixed
2021-05-25 23:31:23 +03:00
sebastian.sellmair
e8bd8a938f
Implement HierarchicalMppIT.testNativeLeafTestSourceSetsKt46417 to cover ^KT-46417
2021-05-25 23:31:22 +03:00
Ilya Goncharov
c62a965180
[IR] Not try Null constant in fold constant
...
^KT-46859 fixed
2021-05-25 22:29:58 +03:00
Ilya Kirillov
b18d4af37b
fix fe1.0 plugin testdata
2021-05-25 20:39:37 +03:00
Mark Punzalan
2c18406632
IDE: Add test for message of VAL_OR_VAR_ON_*_PARAMETER diagnostic.
...
Also fall back to getting parameter descriptor if property descriptor
not found for `val/var` parameters.
^KTIJ-13030 Fixed
2021-05-25 20:39:36 +03:00
Mark Punzalan
23605e08be
FIR IDE: Enable RemoveValVarFromParameterFix for
...
VAL_OR_VAR_ON_*_PARAMETER.
2021-05-25 20:39:35 +03:00
Mark Punzalan
af99ad0736
FIR checker: Report VAL_OR_VAR_ON_*_PARAMETER.
2021-05-25 20:39:34 +03:00
Tianyu Geng
71c5c9f6c5
FIR IDE: add quickfix to change function return type
2021-05-25 20:39:32 +03:00
Stanislav Erokhin
b5994fa3a9
Remove the Kotlin online event link
2021-05-25 19:19:26 +02:00
Andrey Zinovyev
ae079d9bdd
[FIR] Move unsigned types constructor evaluation from intrinsics
2021-05-25 19:23:31 +03:00
Andrey Zinovyev
64b45e6d1b
Add comments to skipped FIR tests
2021-05-25 19:23:30 +03:00
Andrey Zinovyev
dce8bd4e62
[FIR] Support constructor call of unsigned in checker
2021-05-25 19:23:29 +03:00
Andrey Zinovyev
7f2eaab02b
[FIR] Support for constructor calls of unsigned types in constants
2021-05-25 19:23:27 +03:00
Dmitriy Novozhilov
f9eba6e842
[FIR] Fix determining dependencies for modular jdk in CLI
2021-05-25 15:08:47 +03:00
teamcityserver
d530344eda
Merge branch 'push/zharkov-fixes-4'
2021-05-25 14:57:51 +03:00
Jinseong Jeon
5effbce363
UAST: cleanup plugin file to have only plugin definition
2021-05-25 13:09:57 +02:00
Jinseong Jeon
8b93727f64
UAST: split KotlinConverter into a separate file
2021-05-25 13:09:57 +02:00
Jinseong Jeon
0395294933
UAST: split KotlinUastResolveProviderService into a separate file
2021-05-25 13:09:57 +02:00
Jinseong Jeon
f16f9a13fd
FIR/UAST: enforce the existence of BaseKotlinUastResolveProviderService
2021-05-25 13:09:57 +02:00
Jinseong Jeon
240f86b109
FIR UAST: use analyseWithCustomToken in lieu of analyse
2021-05-25 13:09:57 +02:00
Jinseong Jeon
741fdee59e
FIR/UAST: commonize UnknownKotlinExpression
2021-05-25 13:09:57 +02:00
Jinseong Jeon
15a4649675
FIR/UAST: commonize UImportStatement
2021-05-25 13:09:57 +02:00
Jinseong Jeon
3c3b5aa4ac
FIR/UAST: commonize abstract UElement and UExpression
2021-05-25 13:09:57 +02:00
Jinseong Jeon
a54a807dc9
FIR/UAST base: clarify what module we should not depend on
...
This should be part of commit bbe5cf0a
2021-05-25 13:09:57 +02:00
Denis.Zharkov
dac9d7b17a
FIR: Mark a pack of tests (53) as FIR_IDENTICAL
2021-05-25 13:28:29 +03:00
Denis.Zharkov
ddbdfafa79
Remove OI/NI attributes from test data
2021-05-25 13:28:27 +03:00
Denis.Zharkov
2ecba6ac39
Remove WITH_NEW_INFERENCE directive from all tests
...
This directive anyway does not make test run twice with OI, and with NI
It only once run the test with specific settings (// LANGUAGE)
and ignores irrelevant (OI or NI tags)
2021-05-25 13:28:26 +03:00
Denis.Zharkov
d4586cefb4
FIR: Properly deserialize upper bounds of classes type parameters
...
^KT-46661 Fixed
2021-05-25 13:28:25 +03:00
Alexander Shabalin
858e3584a9
Disable escape analysis with the new MM
2021-05-25 10:06:40 +00:00
Ivan Gavrilovic
4f64431f10
KT-46820: Kotlin gradle plugin - prevent multiple threads from registering task
...
... as that is not supported by the underlying mechanism.
Build service that holds info about the incremnetal compilation
may be instantiated only during execution, and multiple tasks may
try to do that. Because the container which holds info about all
build services is not thread-safe, this change adds synchronization.
Fixes #KT-46820
2021-05-25 12:49:07 +03:00
Mikhail Glukhikh
1b7425f428
FIR mangler: handle situation with invisible type in f/o signature
...
Before this commit, FIR mangler effectively dropped f/o parameter with
invisible type from this module. It could lead to signature clashes.
Now we insert classId in mangler string instead.
This fixes FIR bootstrap.
2021-05-25 11:38:48 +03:00
Denis.Zharkov
924678a00d
FIR: Mark a pack of tests (53) as FIR_IDENTICAL
2021-05-25 10:25:05 +03:00
Denis.Zharkov
26002a040f
Remove OI/NI attributes from test data
2021-05-25 10:25:05 +03:00
Denis.Zharkov
fe1d540c95
Remove WITH_NEW_INFERENCE directive from all tests
...
This directive anyway does not make test run twice with OI, and with NI
It only once run the test with specific settings (// LANGUAGE)
and ignores irrelevant (OI or NI tags)
2021-05-25 10:25:04 +03:00
Denis.Zharkov
accd48de8c
FIR: Properly deserialize upper bounds of classes type parameters
...
^KT-46661 Fixed
2021-05-25 10:25:04 +03:00
Ivan Kochurkin
cf531dbbe6
[FIR] Implement TYPE_VARIANCE_CONFLICT, TYPE_VARIANCE_CONFLICT_IN_EXPANDED_TYPE diagnostics, fix tests
2021-05-25 00:07:33 +03:00
Ivan Kochurkin
ef53f0e0b3
[FIR] Render diagnostics parameters instead of full text in debug messages (closer to old tests)
2021-05-25 00:07:32 +03:00
Ivan Kochurkin
6de97e17fe
[FIR] Fix max parameters count in diagnostics from 3 to 4
2021-05-25 00:07:30 +03:00
Elena Lepilkina
7f591bcfd4
[K/N] Changed llvmInlineThreshold for new form of bitcode
2021-05-24 15:46:21 +00:00
Elena Lepilkina
2320eb8b44
[K/N] Replace invokes with combination of calls and branch instructions
2021-05-24 15:46:20 +00:00
Nikita Bobko
0be5602363
Move ':plugins:lombok:lombok-ide-plugin' module under 'attachedIntellijVersion' the flag
2021-05-24 17:02:46 +02:00
Dmitriy Dolovov
9ab764e9fd
[Native] Disable debug mode in KonanLocalTest (-g)
2021-05-24 13:23:51 +00:00
nataliya.valtman
1db09d78b3
KT-46833: print correct message when history files are unavailable
2021-05-24 13:51:43 +03:00
Ilya Muradyan
23faacd21b
[Scripting] Expose scripting-dependencies as API of Maven resolver
2021-05-22 04:10:39 +03:00
Ilya Muradyan
0e7d690923
[Scripting] Change compile to implementation in Maven resolver
2021-05-22 00:38:46 +03:00
Ilya Muradyan
bead0e3412
[Scripting] Fix Maven resolver dependencies
2021-05-22 00:38:44 +03:00
Dmitry Petrov
261b42f5c5
JVM_IR KT-46822 don't generate too deep StringBuilder.append trees
2021-05-21 22:28:54 +03:00
Dmitry Petrov
ba00709e4d
JVM_IR KT-46839 lower varargs for *arrayOf function references
2021-05-21 22:06:52 +03:00
Alexander Udalov
6ca7b39f6a
Psi2ir: do not load abbreviated types with not found classifier
...
This is not an ideal fix of the problem since the fact that
AbbreviatedType's classifier should be a TypeAliasDescriptor is a
reasonable assumption that might fail somewhere else, later in the
pipeline.
Previous attempts to fix this issue that were unsuccessful:
1) Do not load abbreviations for such types in deserialization at all.
Unfortunately, it broke quite a few things like reflection and
decompiler, where types frequently refer to symbols not reachable
from the point where they're requested, yet we have the FQ name of
the typealias, which is enough to render the abbreviation properly in
both these use cases.
2) Load classifiers for unresolved abbreviations as
MockTypeAliasDescriptor instead of MockClassDescriptor in
NotFoundClasses. Technically this was a revert of
e19c1b5364 . But this failed because we
don't have enough information about such typealias to correctly set
its `expandedType`/`underlyingType` (just using nullable Any as
before that commit is not good enough). We only know its underlying
class (from one usage of such typealias), and even supporting that
would involve a major refactoring of TypeDeserializer which is
painful.
#KT-45308 Fixed
2021-05-21 19:36:30 +02:00
Alexander Udalov
ceec451f3f
Minor, slightly refactor TypeDeserializer.typeConstructor
2021-05-21 19:36:30 +02:00
Dmitriy Dolovov
ab6f577964
[Native] Support suspend functions as supertypes (remove debug code)
...
^KT-46777
2021-05-21 17:31:46 +00:00
Hung Nguyen
c0977dd638
Build report: Print task name instead of TaskRecord@hashCode
...
Previously when kotlin.build.report.enable=true, the build report
contained lines such as:
org.jetbrains.kotlin.gradle.report.TaskRecord@2db49688 was skipped
This commit prints the task name instead of TaskRecord@hashCode so that
it is more readable, like this:
Task ':app:compileDebugKotlin' was skipped
Bug: N/A (Clean up)
Test: Existing tests + manually checked the build report output
2021-05-21 19:35:25 +03:00
Dmitriy Novozhilov
478a512b24
[FIR] Expand type of const val in FirConstPropertyChecker
2021-05-21 17:38:26 +03:00
Vasily Levchenko
669985f853
[debug][stacktrace][mac] more tracing for stacktrace debugging
2021-05-21 11:52:08 +00:00
Dmitriy Dolovov
0be542fd33
[Native] Always enable assertions in KonanLocalTest
2021-05-21 14:37:30 +03:00
Dmitriy Novozhilov
a1ae108ce5
[FIR] Properly generate IDE diagnostics from multiple diagnostics lists
2021-05-21 14:18:58 +03:00
Dmitriy Novozhilov
09e3629d5d
[FIR] Move common checkers container from :entrypoint to :checkers module
2021-05-21 14:18:57 +03:00
Dmitriy Novozhilov
a9838131ad
[FIR] Move jvm specific checkers to checkers.jvm module
2021-05-21 14:18:56 +03:00
Dmitriy Novozhilov
f3c58a1df7
[FIR] Add separate diagnostic list for JVM specific diagnostics
2021-05-21 14:18:55 +03:00
Dmitriy Novozhilov
7f18d147c1
[FIR] Introduce new module for jvm specific checkers
2021-05-21 14:18:54 +03:00
Dmitriy Novozhilov
9825babc23
[FIR] Move model classes of diagnostics generation DSL to separate package
2021-05-21 14:18:52 +03:00
Denis.Zharkov
f0c85e0935
FIR: Add comments to freshly muted tests
2021-05-21 13:53:55 +03:00
Andrey Zinovyev
617d99faac
[FIR] Don't keep ref to whole class proto
...
Store module name only
2021-05-21 12:49:59 +03:00
Andrey Zinovyev
a121061df7
[FIR] Get module name for deserialized fir2ir classes
2021-05-21 12:49:58 +03:00
Svyatoslav Scherbina
dc8934ab22
Native: fix crash in custom LLVM diagnostics handler
...
48a684c0 added custom LLVM diagnostic handler, using JvmCallbacks machinery,
thus triggered a bug in the latter: callbacks are cached and outlive the compilation session,
but rely on memory that is reclaimed at the end of the compilation session.
So during a subsequent compilation in the same process (e.g. when the compiler runs in the
Gradle daemon process), LLVM might call the callback which accesses the reclaimed memory,
which in turn causes the crash.
Fix this by forcing JvmCallbacks to allocate memory that doesn't "expire" at the end of the compilation session.
2021-05-21 07:34:34 +00:00
Elena Lepilkina
573191251e
[K/N] Remove redundant update of debug info
2021-05-21 06:55:07 +00:00
Alexander Shabalin
73533e4b19
Make NoOp GC support multiple mutators
2021-05-21 06:31:09 +00:00
Ilya Kirillov
792ac6ab63
FIR IDE: update resolve call testdata after adding targetFunction to KtFunctionalTypeVariableCall
2021-05-21 00:04:48 +02:00
Ilya Kirillov
c72b2caf3e
Fix wrapWithSafeLetCall quickfix testdata
2021-05-21 00:01:20 +02:00
Ilya Kirillov
be4632c2fe
FIR: add missing ArgumentTypeMismatch.isMismatchDueToNullability after rebase
2021-05-20 21:05:41 +02:00
Ilya Kirillov
acda71cc90
FIR IDE: restore test generator after rebase
2021-05-20 20:33:01 +02:00
Tianyu Geng
e1b542314a
FIR IDE: quickfix for WrapWithSafeLetCall
...
There is some behavior change regarding the new WrapWithSafeLetCall quickfix
1. it now works correctly on binary expressions by wrapping it with `()`
2. it now looks for a nullable position upward and do the modification there,
if possible. For example, consider the following code
```
fun bar(s: String): String = s
fun test(s: String?) {
bar(bar(bar(<caret>s)))
}
```
After applying this fix, FE1.0 yields
```
bar(bar(s?.let { bar(it) }))
```
while the new implementation yields
```
s?.let { bar(bar(bar(it))) }
```
This behavior aligns with FE1.0 if `bar` accepts nullable values.
2021-05-20 20:33:00 +02:00
Tianyu Geng
0eaab6d8a2
FIR: extract common logic from KotlinNameSuggester and share
2021-05-20 20:33:00 +02:00
Tianyu Geng
00ffa69cb3
FIR: add receiver expression to UNSAFE_CALL diagnostic and its variances
2021-05-20 20:32:59 +02:00
Tianyu Geng
9106ae4f5f
FIR: store in ARGUMENT_TYPE_MISMATCH whether it's due to nullability
2021-05-20 20:32:59 +02:00
Tianyu Geng
cceb7197a5
FIR: allow nullable types in diagnostic parameters
2021-05-20 20:32:59 +02:00
Tianyu Geng
594fbbb4ef
FIR: Allow 4 parameters for diagnostics
2021-05-20 20:32:58 +02:00
Mark Punzalan
d2b8204fdc
FIR/FIR IDE: Use entire FirVariableAssignment when reporting UNSAFE_CALL
...
(e.g., `nullable.a = b`), and use positioning strategies to locate the
dot in the LHS expression.
Without it, only the callee reference is reported on, which makes the
highlighting of the error and application of quickfixes incorrect in the
IDE.
Also fixed issue with annotated and/or labeled expressions on LHS of
assignment (e.g., `(@Ann label@ i) = 34`).
2021-05-20 20:32:58 +02:00
Mark Punzalan
1d9247ae0f
FIR IDE: Offer AddExclExclCallFix for nullable types with an
...
`iterator()` function that does NOT have `operator` modifier.
This is different from FE1.0. Adding `!!` will then surface the error
that `operator` modifier needs to be added (with corresponding fix).
2021-05-20 20:32:58 +02:00
Mark Punzalan
9e01a608b2
FIR IDE: Add ability in test infra to have a "before" file different in
...
FIR vs FE1.0, and made file naming convention more consistent.
2021-05-20 20:32:57 +02:00
Mark Punzalan
efa3bf9c69
FIR IDE: Consolidate tests for AddExclExclFix in one directory.
...
I found these tests only _after_ the previous changes, so I needed to
merge and/or remove redundant tests.
2021-05-20 20:32:57 +02:00
Mark Punzalan
db82797f58
FIR IDE: Enable AddExclExclCallFix for UNSAFE_CALL,
...
UNSAFE_OPERATOR_CALL, UNSAFE_INFIX_CALL, ITERATOR_ON_NULLABLE,
ARGUMENT_TYPE_MISMATCH, RETURN_TYPE_MISMATCH.
TODO: Don't offer fix when target is known to be null (from data flow
analysis).
2021-05-20 20:32:56 +02:00
Mark Punzalan
71a8d9c0bb
FIR quickfix: Enable addExclExclCall tests for FIR, move typeMismatch
...
tests for addExclExclCall to addExclExclCall directory.
2021-05-20 20:32:56 +02:00
Mark Punzalan
85cbea70bf
IDE: Don't do any resolution in AddExclExclExclFix (i.e., in
...
isAvailable and in invoke) by moving computation of element to modify
to before instantiation (i.e., to the factories or equivalent).
This lets us to move it to idea-frontend-independent and re-use it FIR.
2021-05-20 20:32:56 +02:00
Mark Punzalan
c472c9facd
IDE: Don't add this!! in AddExclExclCallFix for nullable member
...
access in extension function.
^KTIJ-10052 Fixed
2021-05-20 20:32:55 +02:00
Dmitry Petrov
c0fbdb1535
JVM_IR KT-46840 don't generate special function references with indy
2021-05-20 21:13:17 +03:00
Dmitriy Novozhilov
3fc7e0ed03
[FIR] Remove COMPARE_WITH_LIGHT_TREE from default directives of fir diagnostic tests
2021-05-20 20:20:40 +03:00
Nikita Bobko
f7aabf03f8
Fix kotlin-native compilation
...
This commit fixes:
```
org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException:
Could not find method intellijDep() for arguments [] on object of type
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler
```
2021-05-20 17:02:00 +02:00
Viacheslav Kormushkin
d10910e553
Added support of custom Xcode configurations to cocoapods plugin
...
#KT-42023
2021-05-20 17:36:08 +03:00
Denis.Zharkov
a801eccf66
FIR: Report ARGUMENT_TYPE_MISMATCH instead of TYPE_MISMATCH for arguments
2021-05-20 17:24:51 +03:00
Denis.Zharkov
db500fab94
FIR: Avoid reporting redundant TYPE_MISMATCH (for assignments)
2021-05-20 17:24:50 +03:00
Denis.Zharkov
36c9418d55
FIR: Convert couple of methods to block-body
2021-05-20 17:24:49 +03:00
Denis.Zharkov
7c05c6420a
FIR: Update test data (incorrect NEW_INFERENCE_ERROR with self types)
...
^KT-46661 Relates
2021-05-20 17:24:48 +03:00
Denis.Zharkov
4433dffbd3
FIR: Mute test that should be disabled since 1.6
2021-05-20 17:24:47 +03:00
Denis.Zharkov
8f41badf74
Minor. Regenerate tests
2021-05-20 17:24:46 +03:00
Denis.Zharkov
c3646b11ac
FIR: Fix inference when unit value should be cast to Any
2021-05-20 17:24:44 +03:00
Denis.Zharkov
d3fc22fc6a
FIR: Mute suspicious test relevant to safe-call and increment
...
See KT-46658
2021-05-20 17:24:43 +03:00
Denis.Zharkov
c4862fb124
FIR: Unwrap type aliases in type arguments
2021-05-20 17:24:42 +03:00
Denis.Zharkov
4f08e1550d
FIR: Update test data (overload resolution by lambda return type)
2021-05-20 17:24:41 +03:00
Denis.Zharkov
be68dd5c11
FIR: Update test data (suspicious UPPER_BOUND_VIOLATED)
2021-05-20 17:24:40 +03:00
Denis.Zharkov
9265377d51
FIR: Update test data (SAM conversions)
...
See KT-46372
2021-05-20 17:24:39 +03:00
Denis.Zharkov
601500fd99
FIR: Update test data (extension function type -> function type)
...
See KT-46371
2021-05-20 17:24:38 +03:00
Denis.Zharkov
e46199d28b
FIR: Update test data (nested type aliases)
...
It's not consistent with FE 1.0, but behavior
for nested type alias is undefined, yet.
2021-05-20 17:24:37 +03:00
Denis.Zharkov
da3233c47d
FIR: Update test data (NEW_INFERENCE_ERROR)
...
Though these diagnostics look correct (the calls or constraint
systems indeed contain errors), more precise diagnostic kinds should be
chosen later.
2021-05-20 17:24:36 +03:00
Denis.Zharkov
010a0c6cdc
FIR: Update test data (delegate inference)
...
Changed data looks correct
2021-05-20 17:24:35 +03:00
Denis.Zharkov
7c5c744e87
FIR: Update test data (suspicious diagnostic on return statement)
...
There should be errors, but different: cannot infer parameter type
^KT-46422 Relates
2021-05-20 17:24:34 +03:00
Denis.Zharkov
00821bbc63
FIR: Update test data (repeated diagnostics)
...
They are a bit redundant, but it needs additional work to be done
to avoid them
2021-05-20 17:24:33 +03:00
Denis.Zharkov
dbc0ebd861
FIR: Update test data
...
changed INAPPLICABLE_CANDIDATE -> ARGUMENT_TYPE_MISMATCH
2021-05-20 17:24:32 +03:00
Denis.Zharkov
b94335dd1c
FIR: Update diagnostics test data
...
Green code correctly became red
2021-05-20 17:24:30 +03:00
Denis.Zharkov
829f80179c
FIR: Update rendered tree in test data
2021-05-20 17:24:29 +03:00
Denis.Zharkov
faa5e46396
FIR: Fix inference case with flexible captured types
...
Previsously, errors have been ignored because we ignored errors raised
from the completion phase
See the comment above the createConstraintPartForLowerBoundAndFlexibleTypeVariable
2021-05-20 17:24:28 +03:00
Denis.Zharkov
c758069d7c
FIR: Rework reporting COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH
...
Previously, it was reported via additional check on successful calls
But now it's contained within FirErrorNamedReference
2021-05-20 17:24:27 +03:00
Denis.Zharkov
c46d049394
FIR: Implement more precise reporting diagnostics from new inference
2021-05-20 17:24:26 +03:00
Denis.Zharkov
c67ae8a0a3
FIR: Replicate coercion-to-unit behavior from FE 1.0
2021-05-20 17:24:25 +03:00
Denis.Zharkov
dac5c31993
Minor. Simplify ConstraintSystemUtilContext::createArgumentConstraintPosition
2021-05-20 17:24:23 +03:00
Denis.Zharkov
9c7982673b
FIR: Support substitution of inner class constructor capturing outer type parameters
2021-05-20 17:24:22 +03:00
Denis.Zharkov
91806c0a68
FIR: Refine diagnostics in case argument type mismatch on lambda
...
Report ArgumentTypeMismatch instead of imprecise NEW_INFERENCE_ERROR
2021-05-20 17:24:21 +03:00
Denis.Zharkov
2b806e717d
FIR: Avoid adding new constraints when system already has contradictions
2021-05-20 17:24:20 +03:00
Denis.Zharkov
571c16be52
FIR: Fix computing dispatch receiver for property-delegation operators
2021-05-20 17:24:19 +03:00
Denis.Zharkov
35c754c27c
FIR-DFA: Ignore FinallyBlockExitNode when computing return arguments
2021-05-20 17:24:17 +03:00
Denis.Zharkov
d0a0739d10
FIR: Mute builder-inference related tests
...
They started failing once we began reporting diagnostics from completion
^KT-46421 Relates
2021-05-20 17:24:16 +03:00
Denis.Zharkov
78ec4b5248
FIR: Mute property-delegation-inference related tests
...
They started failing once we began reporting diagnostics from completion
The main reason is that we resolve `delegate()` call
from `delegate().getValue()` in the independent context, while in FE 1.0
it's being resolved within the same system as getValue
^KT-46420 Relates
2021-05-20 17:24:15 +03:00
Denis.Zharkov
cd401b5b8a
FIR: Update integer literal-related tests
...
They started failing once we began reporting diagnostics from completion
^KT-46419 Relates
2021-05-20 17:24:14 +03:00
Denis.Zharkov
42d387925d
FIR: Refine makesSenseToBeDefinitelyNotNull
...
Make it work just the same as the analogue from FE 1.0
This change is necessary since many tests start failing after
we began reporting diagnostics after call completion
2021-05-20 17:24:12 +03:00
Denis.Zharkov
a700fdc312
FIR: Report diagnostics introduced during call completion
2021-05-20 17:24:10 +03:00
Nikita Bobko
09321e5e41
Implement ide-iml-to-gradle-generator
...
This module is used to generate build.gradle.kts files
of Kotlin IDE plugin
2021-05-20 16:09:14 +02:00
Nikita Bobko
61bf6bc447
Remove ':idea:idea-jps-common' from 'compiler-components-for-jps' artifact
...
It seems that it was added by mistake 'compiler-components-for-jps' artifact is used in IDE.
And in IDE we have our own jps-common module
2021-05-20 16:05:38 +02:00
Nikita Bobko
0fc31bc9c7
Disable IDE modules if 'attachedIntellijVersion' flag is specified
2021-05-20 16:05:37 +02:00
Nikita Bobko
897dafc7f3
GenerateTests: extract IDE part into separate module
...
It's refactoring-preparation commit. In later commits I will add possibility
to disable IDE modules with flags in gradle build (first step towards
removing IDE modules from kotlin repo). Thus, we need to extract IDE tests
generator in separate module for being possible to disable it with flags
2021-05-20 16:05:37 +02:00
Nikita Bobko
ac6c810d25
Make it possible to attach platforms with different versions to kotlin repo
2021-05-20 16:05:37 +02:00
Nikita Bobko
cc34f65392
[cleanup] Remove unused variable
2021-05-20 16:05:37 +02:00
Nikita Bobko
1fa4874426
Create 'installIdeArtifacts' task
...
This task is used for cooperative compilation with intellij.
See 'Install compiler-for-ide jars' run configuration in
intellij/kotlin-ide/intellij-kotlin repo
2021-05-20 16:05:37 +02:00
Nikita Bobko
8dec62de2b
[kotlin + intellij combined] Add one more artifact url
...
This commit fixes:
```
* What went wrong:
Execution failed for task ':kotlin-ide.intellij.platform.testExtensions:compileKotlin'.
> Could not resolve all files for configuration ':kotlin-ide.intellij.platform.testExtensions:compileClasspath'.
> Could not find intellij-core-analysis-deprecated-202.7660.26.jar (kotlin.build:ideaIC:202.7660.26).
Searched in the following locations:
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/202.7660.26/artifacts/lib/intellij-core-analysis-deprecated.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/202.7660.26/artifacts/intellij-core-analysis-deprecated.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/202.7660.26/artifacts/plugins/ideaIC/lib/intellij-core-analysis-deprecated.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/sources/intellij-core-analysis-deprecated-202.7660.26.jar
file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/202.7660.26/intellij-core-analysis-deprecated.jar
```
2021-05-20 16:05:37 +02:00
Nikita Bobko
54f7633738
build.gradle.kts: exclude :kotlin-ide from allprojects
...
We don't need to setup compiler args and JDK version for kotlin-ide modules.
Generated build.gradle.kts will do it themselves
2021-05-20 16:05:37 +02:00
Nikita Bobko
6d125e0880
Initial implementation of kotlin + intellij combined repo
2021-05-20 16:05:36 +02:00
Nikita Bobko
cedafedfb0
Add kotlin-ide/ to .gitignore
2021-05-20 16:05:36 +02:00
Alexander Udalov
e0b0df01da
Rename fields in KotlinIr.proto according to protobuf style guide
...
Field names should use snake_case, and names of repeated fields should
use the singular form: https://developers.google.com/protocol-buffers/docs/style#message_and_field_names
2021-05-20 15:59:42 +02:00
Alexander Udalov
8dee36d420
Tests: do not add transitive dependencies in multi-module tests
...
Prefer to have all module dependencies, including dependencies on
stdlib/reflect, declared explicitly. This allows to have tests on
situations like the one in KT-45308: three modules A<-B<-C, where C
doesn't depend on A, which was compiling correctly with the old JVM
backend before 1.5, but started to fail with JVM IR in 1.5.
Also simplify the code a bit, remove duplicated logic.
2021-05-20 15:58:05 +02:00
Alexander Shabalin
eac3f507b6
Make Kotlin_initRuntimeIfNeeded switch to native state
2021-05-20 13:48:49 +00:00
Ilya Goncharov
f40110eb83
[JS IR] Fixes after rebase
2021-05-20 16:37:52 +03:00
Ilya Goncharov
d65cbdf44d
[JS IR] Fixes in tests
...
- Compilation of tests
- add arguments to extra help
2021-05-20 16:37:50 +03:00
Ilya Goncharov
b76f5547e4
[JS IR] Remove unnecessary overrides in IrNamer
2021-05-20 16:37:48 +03:00
Ilya Goncharov
0921235637
[JS IR] Remove redundant file after rebase
2021-05-20 16:37:47 +03:00
Ilya Goncharov
18cb8a1b9b
[JS IR] Add flag with writing base class to metadata
2021-05-20 16:37:45 +03:00
Ilya Goncharov
228c6879f5
[JS IR] Add per-module output module name
2021-05-20 16:37:44 +03:00
Ilya Goncharov
4d7f7fc50f
[Gradle, JS] Use jsOutputName as module name
2021-05-20 16:37:43 +03:00
Ilya Goncharov
eaf25b517d
[JS IR] Use module name instead of output file wo extension
2021-05-20 16:37:41 +03:00
Ilya Goncharov
0e00186ca1
[JS IR] Fix compilation after rebase
2021-05-20 16:37:39 +03:00
Anton Bannykh
0182c09318
[JS IR] fix name clashes for imported external declarations
2021-05-20 16:37:38 +03:00
Anton Bannykh
6e40c814c8
[JS IR] add a flag which prepends a custom prefix to the per-module .js files
2021-05-20 16:37:37 +03:00
Anton Bannykh
7bd9462ffb
[JS IR] save the desired JS output file name in the klib.
...
This is only usedful for code splitting. The output .js file name
is provided by the build system during the module compilation.
It is desirable to keep the .js output file names same as in old BE,
but calculating those name during the klib -> js phase is tricky.
Thus the desired names are saved in the klib, and used later on.
2021-05-20 16:37:35 +03:00
Anton Bannykh
6633a9edc0
[JS IR] add a flag which enable safe property access
...
If an accessor is not available at runtime we fall back
to the property access.
This is useful in cases when JS objects are casted to Kotlin
classes implicitly. This pattern did work in the old BE, which
lead to a significant amount of code which doesn't work anymore.
2021-05-20 16:37:34 +03:00
Anton Bannykh
8b18818bcc
[JS IR] add base class to the $metadata$.interfaces list
...
This is needed for better compatibility with the old BE.
Some code in Space relies on the $metadata$ format.
2021-05-20 16:37:32 +03:00
Steven Schäfer
984e912f8d
JVM IR: Do not unbox Results in suspend lambda invoke methods (KT-46813)
2021-05-20 14:40:00 +02:00
Dmitriy Novozhilov
ff3f3d2f9b
[FIR] Properly setup search scope for IC symbol provider
2021-05-20 14:21:49 +03:00
Dmitriy Novozhilov
6e4cc49f1d
[FIR] Cleanup IC provider creation in FirSessionFactory
2021-05-20 14:21:47 +03:00
Dmitriy Novozhilov
6d38a236c1
[FIR] Extract FIR related part of KotlinToJVMBytecodeCompiler to separate file
2021-05-20 14:21:46 +03:00
Jinseong Jeon
f0f1e2d945
FIR checker: report CAPTURED_VAL_INITIALIZATION
2021-05-20 13:59:13 +03:00
Andrey Zinovyev
d38effcbbe
Use camel-case in FirFunctionCallOrigin
...
Also componentCall is operator call
2021-05-20 13:46:35 +03:00
Andrey Zinovyev
419aa65381
[FIR] Fix more tests because of modifier usage in resolution
2021-05-20 13:46:34 +03:00
Andrey Zinovyev
07a8ae7e71
[FIR] Mark more calls origin as OPERATOR
2021-05-20 13:46:32 +03:00
Andrey Zinovyev
0a45b3a50b
[FIR] Set Function call origin to assign operators' functions
2021-05-20 13:46:31 +03:00
Andrey Zinovyev
cd22255ab7
[FIR] Set Function call origin in light tree too
...
Plus actualize some tests
2021-05-20 13:46:30 +03:00
Andrey Zinovyev
e021e25d6c
[FIR] Resolve operator calls to operator functions only
2021-05-20 13:46:29 +03:00
Andrey Zinovyev
b1c8669b43
[FIR] Resolve infix calls to infix functions only
...
Implements INFIX_MODIFIER_REQUIRED diagnostics
2021-05-20 13:46:27 +03:00
Hung Nguyen
df14deb5a0
Organize integration tests for incremental Kotlin compile
...
Refactor common code into new abstract class
IncrementalCompilationBaseIT to make the code cleaner and easier to
evolve.
Also add a few missing key scenarios for ABI and non-ABI changes in
Kotlin files, and make it consistent with the test for changes in Java
files.
Bug: KT-45777
Test: Updating them
2021-05-20 12:59:07 +03:00
Mikhail Glukhikh
f3c9bd16ee
Fix FIR IDE overrideImplement/androidxNotNull test
2021-05-20 12:22:23 +03:00
Mikhail Glukhikh
eac6da62d6
Fix FIR IDE highlighting tests
2021-05-20 12:22:22 +03:00
Mikhail Glukhikh
6dd41b617a
FIR: position INAPPLICABLE_FILE_TARGET on file use-site (when possible)
2021-05-20 12:22:22 +03:00
Mikhail Glukhikh
6572010eed
Introduce use-site annotation target checks for FIR
2021-05-20 12:22:22 +03:00
Mikhail Glukhikh
9a13ec9b76
FIR: report WRONG_ANNOTATION_TARGET on types
2021-05-20 12:22:22 +03:00
Mikhail Glukhikh
2a33a6927c
FIR: report WRONG_ANNOTATION_TARGET(_WITH_USE_SITE_TARGET) on declarations
2021-05-20 12:22:21 +03:00
Mikhail Glukhikh
95f2c52659
FirAnnotationHelpers: use KotlinTarget instead of AnnotationTarget
2021-05-20 12:22:21 +03:00
Mikhail Glukhikh
7675ea3c23
Move AnnotationTargetLists & KotlinTarget to common compiler code
2021-05-20 12:22:21 +03:00
Mikhail Glukhikh
d11092ae3c
FIR: support WRONG_ANNOTATION_TARGET on expressions
2021-05-20 12:22:21 +03:00
Mikhail Glukhikh
92ab600081
FIR: add check of SOURCE retention for EXPRESSION-targeted annotation
2021-05-20 12:22:21 +03:00
Mikhail Glukhikh
4b00a43b22
FIR: add ANNOTATION_ON_SUPERCLASS diagnostic
2021-05-20 12:22:20 +03:00
Mikhail Glukhikh
0d6bc7e7b2
FIR: report ANNOTATION_CLASS_CONSTRUCTOR_CALL diagnostic
2021-05-20 12:22:20 +03:00
Mikhail Glukhikh
3663884db2
FIR: support CONDITION_TYPE_MISMATCH diagnostic
...
We report CONDITION_TYPE_MISMATCH on
- loop conditions
- when branch conditions
- binary logic arguments
2021-05-20 12:22:20 +03:00
Mikhail Glukhikh
e85d97b894
FIR: introduce separate THROWABLE_TYPE_MISMATCH
2021-05-20 12:22:20 +03:00
Mikhail Glukhikh
f0ce311fc6
Drop unused ConeTypeMismatchError
2021-05-20 12:22:19 +03:00
Toshiaki Kameyama
b9a4b60b93
Unnecessary local variable: highlight with INFORMATION level when initializer has any multi-line blocks ( #3359 )
...
#KT-26752 Fixed
2021-05-20 11:12:41 +02:00
Andrey Zinovyev
e82857996f
[lombok] Resolve to absolute path when import from maven
...
#KT-46723 Fixed
2021-05-20 11:57:07 +03:00
Pavel Kunyavskiy
2680111125
[K/N] Fix order of lowerings to enable when on enum optimisation
...
EnumWhenLowering searches for pattern, which is destroyed by
BuiltinOperatorLowering, so first one should happen before second.
2021-05-20 08:34:15 +00:00
Pavel Kunyavskiy
43b91589a1
[K/N] Create lowering for optimising when, with lowered enums support
2021-05-20 08:34:14 +00:00
Pavel Kunyavskiy
1dd6dcdeef
[K/N] Store ordinal value in lowered enum
2021-05-20 08:34:13 +00:00
Pavel Kunyavskiy
8a418161f6
[K/N] Support pre-creating for objects with only constant properties
2021-05-20 08:29:23 +00:00
Pavel Kunyavskiy
e4ecb3745b
[K/N] Debug util for checking if object is global constant
2021-05-20 08:29:22 +00:00
Ilya Goncharov
5d36264660
Add Node.js 14.17.0 with verification metadata
2021-05-19 21:22:32 +03:00
Ilya Goncharov
f0044516d1
[Gradle, JS] Update Node.js version on latest stable (14.17.0)
...
^KT-46693 fixed
2021-05-19 21:22:31 +03:00
Igor Yakovlev
b0df70dbfe
[ULC] Fix delegate field type resolve
...
Fixed #KT-46519
2021-05-19 20:49:55 +03:00
Alexander Shabalin
a02cecec20
Disable interop_cleaners_leak
2021-05-19 15:51:05 +00:00
Ilya Muradyan
9412fe094b
[REPL] Copy findLabelAndCall to scripting-ide-services to fix problems with embeddable artifact
2021-05-19 18:32:50 +03:00
Ilya Muradyan
7caadd87a2
[Scripting] Get rid of unneeded dependencies in Maven resolver
2021-05-19 18:32:48 +03:00
Alexander Udalov
2fe498149e
Psi2ir: add file name to exception when generating synthetic declarations
2021-05-19 17:12:12 +02:00
Alexander Udalov
6581d222cd
Fix accidental usage of ASM from jdk.internal in jvm-debugger
...
Similarly to ee6586fe4f .
2021-05-19 17:11:08 +02:00
Dmitriy Novozhilov
99cdb86145
[FIR] Move createSessionWithDependencies to FirSessionFactory
2021-05-19 16:29:20 +03:00
Dmitriy Novozhilov
2ee54c2201
[FIR] Remove way to create FirSession using Module
...
The problem is that Module may not contain some default dependencies in
classpath roots, so it's incorrect to take them from it
2021-05-19 16:29:19 +03:00
pyos
b2ef854aa1
JVM_IR: support @JvmStatic transformations in LateinitLowering
...
#KT-46759 Fixed
2021-05-19 16:23:01 +03:00
pyos
f1f13b6e97
JVM_IR: do not evaluate receiver of static calls if it is pure
...
#KT-46802 Fixed
2021-05-19 16:22:59 +03:00
Dmitriy Dolovov
ae1590d3cf
[Native] Support multiple suspend lambdas as class supertypes
...
Drop the backend check. Eveything else is already fixed in
3b3318ab06
^KT-46775
2021-05-19 16:09:47 +03:00
Dmitriy Dolovov
896929cb21
[Native] Support suspend functions as supertypes
...
^KT-46777
2021-05-19 16:09:38 +03:00
Ilmir Usmanov
9fe503eeb3
Minor. Add regression test
...
#KT-45685 Fixed
2021-05-19 12:45:26 +02:00
Andrey Uskov
41dd6250d4
Implemented collecting use-old-backend flag from Gradle
...
#KT-46689 Fixed
2021-05-19 13:25:26 +03:00
Alexander Shabalin
3388ca2536
Support ObjC blocks in the new MM
2021-05-19 07:31:12 +00:00
Alexander Shabalin
94076300ec
Implement a bit more of GC object interface
2021-05-19 07:29:27 +00:00
Jinseong Jeon
a3105da32e
FIR checker: more specific type for CONFLICTIONG_PROJECTION
2021-05-19 01:04:21 +03:00
Jinseong Jeon
8d474c0e7e
FIR checker: more specific type for containing class in diagnostics
...
about abstract members in non-abstract class
2021-05-19 01:04:20 +03:00
Jinseong Jeon
864ab2cadd
FIR checker: clearer parameter names in diagnostics
2021-05-19 01:04:19 +03:00
Dmitriy Novozhilov
e08df2c530
[Test] Add diagnostics and codegen tests with hmpp module structure
2021-05-19 00:52:31 +03:00
Dmitriy Novozhilov
73a63359df
[Test] Add new directive for specifying target platform for module
2021-05-19 00:52:28 +03:00
Dmitriy Novozhilov
06b2efe65f
[Test] Introduce new syntax for dependsOn dependencies
2021-05-19 00:52:27 +03:00
Dmitriy Novozhilov
47e258ef6e
[Test] Enable reporting errors from fronted to testdata of codegen tests
2021-05-19 00:52:25 +03:00
Dmitriy Novozhilov
df60e7368a
[Test] Fix syntax errors in few boxInline tests
2021-05-19 00:52:24 +03:00
Dmitriy Novozhilov
27f0d938c9
[Test] Add wrapping of failures from different parts of test pipeline
2021-05-19 00:52:22 +03:00
Dmitriy Novozhilov
6aca0bb374
[Test] Add ability to disable DEBUG_INFO diagnostics except explicitly defined
2021-05-19 00:52:21 +03:00
Dmitriy Novozhilov
d44782f49f
[Test] Allow to enable/disable all diagnostics with specific severity
2021-05-19 00:52:19 +03:00
Yahor Berdnikau
7fc23a1647
Deprecate 'kotlin.parallel.tasks.in.project' build property.
...
Default value will use Gradle parallel execution option value.
^KT-46401 Fixed
2021-05-18 21:02:02 +00:00
Dmitry Petrov
851980e36f
JVM_IR KT-45103 optimize direct invoke for lambdas and callable refs
2021-05-18 22:20:12 +03:00
pyos
bfb1a06f3d
FIR: resolve conflicts between overloads with platform integer types
2021-05-18 22:11:33 +03:00
Victor Petukhov
a27d428573
Regenerate tests
2021-05-18 21:26:10 +03:00
Dmitriy Novozhilov
38fe917141
[FIR] Change order of IC symbol provider and dependency symbol provider
...
This is semantically incorrect, but current behavior leads to problems
in FIR bootstrap due to incorrect setup of IC provider. So this ordering
change is a workaround for now
2021-05-18 20:56:07 +03:00
Dmitriy Novozhilov
7d5fa2830d
[FIR] Properly create source search scope in FIR CLI compiler
2021-05-18 20:56:05 +03:00
Dmitriy Novozhilov
dbccd4d459
[FIR] Properly acquire module data in FirSignatureEnhancement
2021-05-18 20:56:04 +03:00
Steven Schäfer
bf7db84451
Parcelize: Handle class hierarchies of Parcelers (KT-46567)
2021-05-18 18:52:15 +02:00
Andrey Zinovyev
709c127f1b
[IR] Distinguish super calls from other calls
...
Otherwise super call and virtual call to the same method get the same
map key in case of Fir2Ir IR generation
2021-05-18 19:32:23 +03:00
Steven Schäfer
60bc0f4baf
IR: Lower shared variables in enum entries (KT-46605)
2021-05-18 16:55:38 +02:00
Victor Petukhov
b78c645fb0
Report warnings by enhanced base types
2021-05-18 17:52:39 +03:00
Victor Petukhov
2239404085
Extract type preparation during type checking to a separate component
2021-05-18 17:52:23 +03:00
Victor Petukhov
cba221c18a
Add test for enhancement in usages of annotated type parameter
2021-05-18 17:52:21 +03:00
Victor Petukhov
fd6475c804
Update tests
2021-05-18 17:52:19 +03:00
Victor Petukhov
8602d1fcf0
Merge foreign annotation tests for sources and binaries into single directory
2021-05-18 17:52:16 +03:00
Victor Petukhov
df2c95e444
[Jspecify] Use bounds of type parameters for warnings reporting as well
2021-05-18 17:52:14 +03:00
Victor Petukhov
0c4cba549d
[Jspecify] Use arguments of enhancement of type instead of arguments of base type during getting enhancement of type deeply
2021-05-18 17:52:12 +03:00
Victor Petukhov
21dada4d2d
[Jspecify] Use enhancement of type with enhancement if possible during substitution
2021-05-18 17:52:10 +03:00
Victor Petukhov
12f6146bdf
[Jspecify] Substitute enhancement of type instead of type itself directly
2021-05-18 17:52:09 +03:00
Victor Petukhov
2479655708
[Jspecify] Do preserving flexibility when adding equality constraints by taking into account type with enhancement
2021-05-18 17:52:07 +03:00
Victor Petukhov
937e82db46
[Jspecify] Report warnings on violated bounds of method type parameters
2021-05-18 17:52:06 +03:00
Victor Petukhov
0d6764efc5
Process raw types during erasion properly
...
^KT-46670 Fixed
^KT-46476 Fixed
2021-05-18 17:38:52 +03:00
Svyatoslav Scherbina
570d860217
Native: deprecate SymbolName annotation
2021-05-18 17:29:00 +03:00
Igor Chevdar
3b3318ab06
[K/N][codegen] Refactored interface calls
...
Removed old impl for debug builds
Fixes https://youtrack.jetbrains.com/issue/KT-44547 as a side effect
2021-05-18 18:58:14 +05:00
Alexander Likhachev
3df45f9651
[Build] Bump kotlin-build-gradle-plugin version to 0.0.29
2021-05-18 16:37:36 +03:00
Alexander Likhachev
8a3a60caae
[Build] Bump kotlinx-benchmark version to 0.3.1
...
kotlinx-benchmark Gradle plugin 0.3.1 now reads system property `idea.active` in compatible with configuration cache way
#KT-44611 In Progress
2021-05-18 16:37:36 +03:00
Alexander Likhachev
cf00bc8243
[Build] Remove outdated IDEA sync detection
2021-05-18 16:37:35 +03:00
Alexander Likhachev
b6670f5cc8
[Build] Replace build scan config script with plugin
...
See 129e82c556/common-custom-user-data-gradle-plugin
2021-05-18 16:37:35 +03:00
Alexander Likhachev
8ddbf542f3
[Gradle] Declare IDEA-related system properties reads
...
#KT-44611 In Progress
2021-05-18 16:37:34 +03:00
Alexander Likhachev
091b2129e7
[Build] Make GE build scan configuration compatible with conf cache
...
#KT-44611 In Progress
2021-05-18 16:37:34 +03:00
Alexander Likhachev
ca2051e1d4
[Build] Disable custom normalization when conf cache is enabled
...
Custom input normalizations currently isn't supported by Gracle configuration cache
#KT-44611 In Progress
2021-05-18 16:37:34 +03:00
Alexander Likhachev
cc183e96a4
[Build] Fix configuration cache undeclared system property read issues
...
#KT-44611 In Progress
2021-05-18 16:37:29 +03:00
Andrei Klunnyi
f0a6d9f33f
VFS: reset KOTLIN_IS_COMPILED_FILE_ATTRIBUTE
...
This commit resets mentioned file attribute from Kotlin binary files.
It finalizes the fix 929b6dd9 - users might have mistakenly set 'false'
value left on their file systems.
2021-05-18 15:34:26 +03:00
Vladimir Ivanov
5a0f113e6d
[cinterop] Fix type annotation for struct containing anonymous union … ( #4289 )
2021-05-18 14:34:56 +03:00
Vladimir Dolzhenko
b01478746c
Cache all module dependencies to avoid O(n^2) calc complexity
...
Quite noticeable when there is a big module that has 100+ libraries and many modules depends on it
#KT-46622 Fixed
2021-05-18 09:20:18 +00:00
Andrey Zinovyev
82b7f589ad
Add missing base-compiler-plugins-ide-support dependencies
2021-05-18 11:49:04 +03:00
pyos
21f2b3fa2b
JVM: expect a continuation parameter in default suspend references
2021-05-18 10:48:31 +02:00
pyos
7eedcf75f9
Add tests for default inline suspend lambdas
...
Broken on JVM and JVM_IR
2021-05-18 10:48:31 +02:00
pyos
57c934987c
JVM_IR: try to load mangled invoke from default lambdas
...
Old compiler versions still won't be able to load default lambdas
generated by JVM_IR, but this way we avoid incorrect behavior of
function references taking inline class types that unbox to Any.
#KT-46601 Fixed
2021-05-18 10:48:31 +02:00
pyos
34ac232a82
Add a test for KT-46601
2021-05-18 10:48:31 +02:00
pyos
c32ccbb39a
JVM: move descriptors from DefaultLambda to PsiDefaultLambda
...
Also, produce more correct results in IrDefaultLambda's
`invokeMethodParameters` and `invokeMethodReturnType`. This affects
whether the inliner inserts inline class boxings/unboxings around lambda
calls; while this doesn't matter now due to KT-46601, it would if the
naming was fixed.
2021-05-18 10:48:31 +02:00
pyos
7c168d663a
JVM: move PSI-based LambdaInfo to PsiInlineCodegen
2021-05-18 10:48:31 +02:00
pyos
493b4e6c27
JVM: rearrange some LambdaInfo stuff
2021-05-18 10:48:31 +02:00
pyos
14e1417ea8
JVM: expect consistent signatures from LambdaInfo
2021-05-18 10:48:31 +02:00
Yahor Berdnikau
aae5cc5574
Update AGP versions to the latest stable one.
...
Kotlin Gradle Plugin should run against the latest stable one versions.
2021-05-18 10:37:41 +03:00
Ivan Kochurkin
73fb851864
[FIR] Commit incorrect test data that should be restored after fix of https://youtrack.jetbrains.com/issue/KT-41794
2021-05-17 22:33:19 +03:00
Ivan Kochurkin
c3b8f3e859
[FIR] Add lValueTypeRef to FirVariableAssignment, fix tests with ASSIGNMENT_TYPE_MISMATCH
2021-05-17 22:33:18 +03:00
Ivan Kochurkin
e57108d4e8
[FIR] Implement ASSIGNMENT_TYPE_MISMATCH, RESULT_TYPE_MISMATCH diagnostics, fix tests
2021-05-17 22:33:16 +03:00
Ilya Kirillov
aa70c952eb
FIR IDE: fix SOE on opening project
...
Kotlin library may contain cycles which causes SOE in FirModuleInfoBasedModuleData.dependencies
2021-05-17 20:56:57 +02:00
Ilya Chernikov
d365d7c784
Fix IR compilation for empty script
...
#KT-46646 fixed
2021-05-17 20:15:14 +03:00
Dmitry Petrov
3a0e3798ec
JVM_IR KT-46597 fix receiver type for inlined callable reference
...
Receiver type is used by SyntheticAccessorLowering to determine class in
which a synthetic accessor should be generated.
2021-05-17 20:12:58 +03:00
Konstantin Tskhovrebov
80ce3a5cf8
Delete umbrella Apple framework tasks and register concrete tasks.
...
#KT-46680
2021-05-17 19:45:02 +03:00
Ilya Muradyan
55a9f1a910
[Scripting] Make AetherResolveSession internal and do related refactorings
2021-05-17 18:22:29 +03:00
Ilya Muradyan
a0cc88ab5a
[Scripting] Add transitive support for Maven Resolver
2021-05-17 18:22:28 +03:00
Ilya Muradyan
b77a822822
[Scripting] Add authorization for Maven Resolver
2021-05-17 18:22:26 +03:00
Ilya Muradyan
78c65ab802
[Scripting] Bump up Maven resolver JARs version
2021-05-17 18:22:25 +03:00
Yahor Berdnikau
800e382ba9
Warn on using 'jdkHome' option in Gradle builds.
...
User should instead use KotlinJavaToolchain that will take care of
tracking major java version and provide nicer API.
Gradle will still pass jdkHome value to the compiler, but it should
be changed in Kotlin 1.6 release.
^KT-45611 Fixed
2021-05-17 16:57:01 +03:00
Ilya Goncharov
74d1812461
[JS IR] Review remarks
...
- Move origin to common place
- Add comments and todo about solution
- Remove MODULE directive from tests
- Add test with in-place using of js function
2021-05-17 16:51:22 +03:00
Ilya Goncharov
507516e44d
[JS IR] Add tests with reified generic and with KType on DCE to leave class
2021-05-17 16:51:20 +03:00
Ilya Goncharov
f0b3ee0e35
[JS IR] Add test with class reference using from js
2021-05-17 16:51:19 +03:00
Ilya Goncharov
137532bfa6
[JS IR] Use separate origin for class reference to preserve constructors
2021-05-17 16:51:17 +03:00
Leonid Startsev
796d2fd210
Respect explicit api mode state when generating actual declarations
...
#KT-44067 Fixed
2021-05-17 12:40:49 +00:00
Leonid Startsev
8cd704b6db
Exclude public API symbols in explicit mode from unused symbol inspection
...
#KT-41659 Fixed
2021-05-17 12:40:48 +00:00
Leonid Startsev
19dece01f6
Add support of explicit API mode to 'Make public' intention
...
#KT-41902 Fixed
Do not check languageVersionSettings for fake elements
because this leads to an exception
2021-05-17 12:40:47 +00:00
Igor Yakovlev
d34c23914a
[FIR IDE] Fix invalid designation collecting for local classes
2021-05-14 23:06:04 +03:00
Igor Yakovlev
207bad5d5f
[FIR IDE] Implementation of KtUserType resolve
2021-05-14 23:06:03 +03:00
Igor Yakovlev
a5f701bac7
[FIR IDE] OnAir resolve for annotations with file site
2021-05-14 23:06:02 +03:00
Igor Yakovlev
dedcaf1eab
[FIR IDE] Fixed annotation application completion
2021-05-14 23:06:00 +03:00
Igor Yakovlev
3275165619
[FIR IDE] Fix resolve for incomplete or invalid references
2021-05-14 23:05:59 +03:00
Igor Yakovlev
2bfacaaed2
[FIR IDE] Rename and move refactorings, codereview refactorings
2021-05-14 23:05:58 +03:00
Igor Yakovlev
c5372be267
[FIR IDE] Move and rename RawFirFragmentForLazyBodiesBuilder into Fir Ide module
2021-05-14 23:05:57 +03:00
Igor Yakovlev
0569f810cf
[FIR IDE] Add OnAir resolve tests
2021-05-14 23:05:55 +03:00
Igor Yakovlev
633e03b710
[FIR IDE] LowLevel api refactoring
2021-05-14 23:05:54 +03:00
Igor Yakovlev
445f13d1bf
[FIR IDE] Fix invalid body lazy resolve
2021-05-14 23:05:53 +03:00
Igor Yakovlev
cfc0bfd64a
[FIR IDE] Refactoring of designated IDE transformers
2021-05-14 23:05:52 +03:00
Igor Yakovlev
384b2ad048
[FIR IDE] Rename refactoring and speed improvements
2021-05-14 23:05:50 +03:00
Igor Yakovlev
966743c704
[FIR IDE] Enable passing completion tests
2021-05-14 23:05:49 +03:00
Igor Yakovlev
37ccab4e23
[FIR] Fixed supertypes resolve for invalid code with class without ClassId
2021-05-14 23:05:48 +03:00
Igor Yakovlev
2e7eedd3f2
[FIR IDE] Correct in-body supertype resolve of fake nodes
2021-05-14 23:05:46 +03:00
Igor Yakovlev
959ff50fa7
[FIR IDE] Collect tower contexts for local declarations
2021-05-14 23:05:45 +03:00
Igor Yakovlev
ae63ad0b6d
[FIR] Fix annotations invalid references diagnostics
2021-05-14 23:05:44 +03:00
Igor Yakovlev
261098a122
[FIR IDE] Implement on-air resolve of non-local declarations
2021-05-14 23:05:42 +03:00
Igor Yakovlev
779a06e86f
[FIR IDE] Add types, supertypes and status lazy designated transformers
2021-05-14 23:05:41 +03:00
Igor Yakovlev
95acb6121b
[FIR IDE] Fixed property and parameter creation/replacement and fixed invalid source on annotation type
2021-05-14 23:05:40 +03:00
Igor Yakovlev
38242bee75
[FIR] Fixed invalid real psi source fir fir annotation name reference
2021-05-14 23:05:38 +03:00
Igor Yakovlev
aaefe94763
[FIR IDE] Refactor low level resolve state for completion
...
Rename refactorings
Remove redundant methods and implementations
Increase code-logic locality
Removed redundant entities
2021-05-14 23:05:37 +03:00
Alexander Udalov
aa13936cb2
Move GenerateProtoBuf to separate source set with no dependencies
...
Also move GenerateProtoBufCompare to a new source set with a dependency
only on build-common.
#KTI-79 Fixed
2021-05-14 21:08:56 +02:00
Ilya Kirillov
8b722cfc47
Separate uast-idea modules into fir and fe10 implementations
2021-05-14 20:57:20 +03:00
Svyatoslav Scherbina
ba6c3c7fe0
Add workaround for KT-35001
...
Just suppress the warning.
The accident it describes is generally harmless and totally expected.
2021-05-14 20:05:30 +03:00
Svyatoslav Scherbina
48a684c024
Native: implement custom handling for LLVM diagnostics
...
Apply it when linking LLVM modules, because otherwise LLVM would
terminate the entire compiler process on link errors, which isn't ok,
e.g. when embedding the compiler into Gradle daemon (see KT-46358).
2021-05-14 20:05:29 +03:00
Alexander Udalov
ee6586fe4f
Fix accidental usage of ASM from jdk.internal
...
#KT-46402 Fixed
2021-05-14 15:23:08 +02:00
Dmitry Petrov
d1322280dd
JVM_IR KT-46578 resolve fake overrides for fields
2021-05-14 16:20:22 +03:00
Mikhail Glukhikh
a255f44d6e
FIR2IR KT-46578 add overridden properties generation
2021-05-14 16:20:20 +03:00
Dmitry Petrov
53c1de172f
IR KT-46578 add IrProperty#overriddenSymbols
2021-05-14 16:20:18 +03:00
Andrey Zinovyev
dc9d5cdf35
[FIR] Handle of special getters when there is a kotlin super type
...
Special getter names (like Collection.size()) can be used only in Java
classes with all-java super-types
Because if there is a kotlin class (not interface) in
the middle, we 'materialize' special getters to properties.
2021-05-14 15:38:09 +03:00
Dmitriy Novozhilov
7066a5b3dc
[FIR-IDE] Questionable testdata update
2021-05-14 14:30:46 +03:00
Dmitriy Novozhilov
c652a9e7b1
[FIR-IDE] Use correct session in member scope provider
2021-05-14 14:30:45 +03:00
Dmitriy Novozhilov
194252e5a1
[FIR-IDE] Properly setup moduleDataProvider for ide library session
2021-05-14 14:30:44 +03:00
Dmitriy Novozhilov
43b075d452
[FIR] Add path normalization to LibraryPathFilter
2021-05-14 14:30:43 +03:00
Dmitriy Novozhilov
cf5af0f7ea
[FIR] Add KDoc to FirModuleData
2021-05-14 14:30:42 +03:00
Dmitriy Novozhilov
f02a4a6b1f
[FIR-IDE] Add workaround hack for building raw FIR with libraries session
2021-05-14 14:30:41 +03:00
Dmitriy Novozhilov
0427066558
[FIR-IDE] Fix compilation after changes in API of FirSessionFactory
2021-05-14 14:30:40 +03:00
Dmitriy Novozhilov
af307bd55d
[FIR] Fix compilation of AbstractFirBaseDiagnosticsTest
2021-05-14 14:30:38 +03:00
Dmitriy Novozhilov
28be3a0dbc
[FIR] Replace Path with String in KotlinJvmBinaryClass.containingLibrary
...
This is needed because :core:deserialization.common.jvm uses JDK 6
2021-05-14 14:30:37 +03:00
Dmitriy Novozhilov
2abed7161b
[FIR] Get rid of FirJvmModuleInfo
2021-05-14 14:30:36 +03:00
Dmitriy Novozhilov
28e4721a89
[FIR] Check internal visibility in FirJvmModuleVisibilityChecker using module data
2021-05-14 14:30:35 +03:00
Dmitriy Novozhilov
02c58b7a8f
[FIR] Refactor deserialized dependency providers and session factories with FirModuleData
2021-05-14 14:30:33 +03:00
Dmitriy Novozhilov
24f1f7b7b2
[FIR] Unify FirLibrarySession and FirJavaModuleBasedSession into single FirCliSession
2021-05-14 14:30:32 +03:00
Dmitriy Novozhilov
f16194e60d
[FIR] Get rid of FirSession.moduleInfo
2021-05-14 14:30:31 +03:00
Dmitriy Novozhilov
57a8642f5a
[FIR] Add analyzer services to FirModuleData
2021-05-14 14:30:29 +03:00
Dmitriy Novozhilov
92d6b39ffe
[FIR] Add late initialization of session in FirModuleData
2021-05-14 14:30:28 +03:00
Dmitriy Novozhilov
5cfa8694d4
[FIR] Fix all usages of declarationSiteSession
2021-05-14 14:30:27 +03:00
Dmitriy Novozhilov
a15316de24
[FIR] Replace declarationSiteSession with moduleData
2021-05-14 14:30:26 +03:00
Dmitriy Novozhilov
fa8d8ad503
[FIR] Add cache for top-level functions and properties to AbstractFirDeserializedSymbolsProvider
2021-05-14 14:30:25 +03:00
Dmitriy Novozhilov
c523379e6a
[FIR] Move out all JVM specific deserialization logic from AbstractFirDeserializedSymbolsProvider
2021-05-14 14:30:23 +03:00
Dmitriy Novozhilov
e8c4b0e947
[FIR] Rename KotlinScopeProvider to FirKotlinScopeProvider
2021-05-14 14:30:22 +03:00
Dmitriy Novozhilov
4ad7a4a2d1
[FIR] Split KotlinDeserializedJvmSymbolsProvider to common and JVM specific parts
2021-05-14 14:30:21 +03:00
Dmitriy Novozhilov
e5b7cf23d6
Drop min functions from addToStdlib.kt
2021-05-14 14:30:20 +03:00
Dmitriy Novozhilov
d114913cd2
Replace usages of addToStdlib.firstNotNullResult with firstNotNullOfOrNull
2021-05-14 14:30:19 +03:00
Dmitriy Novozhilov
24b6c5df56
Add regression test for KT-45905
2021-05-14 14:30:14 +03:00
Anton Yalyshev
c386b10f04
Add change notes for 1.5.20-M1
2021-05-14 14:05:44 +03:00
Tianyu Geng
3c4e3e8db6
FIR: remove obsolete DataFlowVariablev.isStable
2021-05-14 13:34:33 +03:00
Andrey Zinovyev
84a7bdffe5
[FIR] Don't report MUST_BE_INITIALIZED* on unreachable properties
2021-05-14 12:41:18 +03:00
Alexander Udalov
8308f5d7d3
Create array instances of correct types in reflection
...
Based on #4168 .
#KT-44977 Fixed
Co-authored-by: Arkady Bazhanov <arkady.bazhanov@gmail.com >
2021-05-14 11:16:29 +02:00
Roman Golyshev
ec6c25ef7e
FIR IDE: Remove names duplicates in createImportTypeFix
2021-05-13 21:41:57 +03:00
Roman Golyshev
9504488acb
FIR IDE: Do not show hint from ImportQuickFix if the PSI have changed
...
Without this check, the import hint will be available even after the
quickfix is applied; this happens because the element to which the
quickfix is attached is not invalidated by the quickfix execution
Since the quickfix is still considered as available some time after
the import have been added, the hint is also generated. And the hint
stays even after the quickfix itself is discarded
`isOutdated` function prevents this
2021-05-13 21:41:56 +03:00
Alexander Udalov
8991ce53f4
Regenerate tests
2021-05-13 19:16:09 +02:00
Steven Schäfer
b2378620c3
JVM IR: Fix handling of anonymous initializers in inline classes ( #4372 )
...
Fixes KT-46554
2021-05-13 18:40:26 +02:00
Yan Zhulanow
cc4c61d2b3
Remove dependency on parcelize-runtime in the Parcelize compiler plugin
2021-05-14 01:06:39 +09:00
Yan Zhulanow
e90cc30edb
Remove CLI and some of daemon-related modules from compiler-for-ide
...
These modules is not required by the plugin, and the plugin verifier
warns about unsatisfied dependencies of the modules.
CLI is needed in tests so a separate artifact is created instead.
2021-05-14 01:06:39 +09:00
Yan Zhulanow
26f71c33c0
IDE: Publish JS IR klib artifact
2021-05-14 01:06:39 +09:00
Andrey Zinovyev
58c7aa9937
[FIR] Don't replace custom compareTo with default one in primitives
2021-05-13 18:04:43 +03:00
Mikhail Glukhikh
1a3aa1bff0
FIR: report ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT
2021-05-13 16:13:44 +03:00
Mikhail Glukhikh
55104a594c
FIR: fix WRONG_GETTER(SETTER)_RETURN_TYPE associated PSI types
2021-05-13 16:13:44 +03:00
Mikhail Glukhikh
0f9f63400e
FirSupertypesChecker: implement six more diagnostics
2021-05-13 16:13:43 +03:00
Mikhail Glukhikh
db828a6aad
Generalize FirInterfaceWithSuperclassChecker to FirSupertypesChecker
2021-05-13 16:13:43 +03:00
Mikhail Glukhikh
632a9d66d1
FIR: introduce isPrimitive / isPrimitiveOrNullablePrimitive helpers
2021-05-13 16:13:42 +03:00
Mikhail Glukhikh
6d82aa0bc9
Drop duplicating FirPropertyAccessorChecker
2021-05-13 16:13:08 +03:00
Mikhail Glukhikh
d2cbf941db
Collect all accessor checks in FirPropertyAccessorChecker
2021-05-13 16:13:08 +03:00
Mikhail Glukhikh
243114ef29
FIR: add 'withSuppressedDiagnostics' call to property checkers
2021-05-13 16:13:08 +03:00
Mikhail Glukhikh
6618b4ea57
FirPropertyAccessorChecker: add three new diagnostics
2021-05-13 16:13:07 +03:00
Dmitriy Novozhilov
1a3b5657c7
[FIR] Fix overload conflicts resolution for callable references with defaults
2021-05-13 15:31:18 +03:00
Alexander Udalov
e3b92fd561
Update instructions to run protoc on Windows and Linux
2021-05-13 13:58:43 +02:00
Alexander Udalov
b5af93c8b4
Fix IR proto backward compatibility for InlineClassRepresentation
...
This is important only if any backend which uses IR serialization will
(accidentally or voluntarily) use `IrClass.inlineClassRepresentation`,
which is missing in IR of klibs serialized with 1.5.20 or earlier.
Note that at the moment only JVM IR is using
`IrClass.inlineClassRepresentation`, but ideally we'd like to change
that (if needed).
2021-05-13 13:58:43 +02:00
Alexander Udalov
0a18174165
IR: remove hack related to inline class representation in lazy IR
...
This commit effectively reverts changes from
b5f9b1dfc0 , fixing the problem from
KT-44723 in a stabler way. It is possible because we now serialize
inline class representation to metadata and after previous changes, we
have that representation as a field in IrClass.
2021-05-13 13:56:59 +02:00
Alexander Udalov
da06faa57e
JVM IR: use inlineClassRepresentation in more utilities
...
Remove any logic related to finding the single parameter of the primary
constructor, and use inlineClassRepresentaton from IrClass or
ClassDescriptor instead.
2021-05-13 13:56:59 +02:00
Alexander Udalov
54befa769f
IR: add IrClass.getInlineClassRepresentation, serialize/deserialize it
...
The change in FirDeclarationUtil is needed because in case of unsigned
types loaded from the standard library, the primary constructor for some
reason is not the first, but the second in the list of constructors.
2021-05-13 13:56:59 +02:00
Alexander Udalov
4c7f207309
Use new getInlineClassRepresentation in some utilities
2021-05-13 13:54:02 +02:00
Alexander Udalov
7fb3f48c67
Add ClassDescriptor.getInlineClassRepresentation
...
This will be used at least in the JVM backend instead of the current
approach where we're loading the primary constructor's first parameter,
which isn't good enough since primary constructor can be private, and
we can't rely on private declarations in case they're declared in
another module.
2021-05-13 13:54:02 +02:00
Steven Schäfer
6aaff9dfb7
JVM IR: Handle overloaded values functions in MappedEnumWhenLowering
...
Fixes KT-46579.
2021-05-13 13:24:32 +02:00
Andrey Zinovyev
5d30576d28
[FIR] Report not-a-constant diagnostics inside function calls
...
When function calls are not fully resolved
2021-05-13 10:15:26 +03:00
Andrey Zinovyev
e74141ded6
[FIR] Properly check spread constant argument
2021-05-13 10:13:21 +03:00
Andrey Zinovyev
07e47140a6
[FIR] Treat unsigned numbers as primitives in constant checker
2021-05-13 10:11:59 +03:00
Roman Golyshev
9cadd1c8a7
Remove IGNORE_FIR from test data of already green test
2021-05-13 03:22:07 +03:00
Pavel Punegov
238ada04c0
Use newer version of Kotlin/Native in the testNativeCompilerDownloading
2021-05-13 03:19:23 +03:00
Yahor Berdnikau
13fd2a24ea
Fix exposing provided by Gradle Kotlin dependencies.
...
Ensure that Gradle plugin dependencies do not include kotlin-stdlib,
kotlin-reflect and other dependencies that are provided by Gradle
runtime.
^KT-41142 Fixed
2021-05-12 23:28:37 +03:00
Steven Schäfer
1198b40c11
Parcelize: Port the fix for KT-41553 to android-extensions
...
Fixes KT-46590.
2021-05-12 21:18:15 +02:00
Ilya Kirillov
4ef81e93ef
FIR IDE: properly implement FirKeywordCompletionContributor.keywordCompletion
2021-05-12 21:40:22 +03:00
Ilya Kirillov
ca320f2f8d
FIR IDE: add this labels to keyword completion
2021-05-12 21:40:20 +03:00
Ilya Kirillov
47a596c214
FIR IDE: add return target to tail in keyword completion
...
The same do FE10 completion and we need it to have consistent tests
2021-05-12 21:40:19 +03:00
Ilya Kirillov
f8fc43f1e9
FIR IDE: add AbstractKeywordCompletionTest
2021-05-12 21:40:18 +03:00
Ilya Kirillov
96117fc1eb
FIR IDE: cleanup FirPositionCompletionContextDetector.detect
2021-05-12 21:40:16 +03:00
Ilya Kirillov
597d64b81d
FIR IDE: do not ignore passing tests from AbstractFirKeywordCompletionHandlerTest
2021-05-12 21:40:15 +03:00
Ilya Kirillov
f18bcdb88c
FIR IDE: add AbstractFirKeywordCompletionHandlerTest
2021-05-12 21:40:14 +03:00
Ilya Kirillov
e5202f44d7
Refactor keyword completion handlers
...
- Separate completion keyword handlers stuff into files
- Introduce CompletionKeywordHandlerProvider as a common way to provide handlers
- Move CompletionKeywordHandler factory out of companion object
2021-05-12 21:40:12 +03:00
Ilya Kirillov
8983bde73e
FIR IDE: implement override completion
2021-05-12 21:40:11 +03:00
Ilya Kirillov
ae212f36f5
FIR IDE: move addElementToCompletion to FirCompletionContributorBase
2021-05-12 21:40:10 +03:00
Ilya Kirillov
e624f2c136
FIR IDE: do not pass resultSet in KotlinWithNameReferenceCompletionProvider as it is already available
2021-05-12 21:40:09 +03:00
Ilya Kirillov
49aba39ae8
Make OverridesCompletionLookupElementDecorator available for FIR IDE
2021-05-12 21:40:07 +03:00
Ilya Kirillov
8f399652d7
FIR IDE: add expressions to return keyword completion
...
Also, adds return targets for return with labels while FE1.0 plugin don't
2021-05-12 21:40:06 +03:00
Ilya Kirillov
8cfa85df6b
FIR IDE: make FirKeywordCompletion to be a completion contributor
2021-05-12 21:40:04 +03:00
Ilya Kirillov
ca1fd185dc
FIR IDE: introduce base class for completion provider
2021-05-12 21:40:03 +03:00
Ilya Kirillov
81c6f38f79
FIR IDE: move context creation out of KotlinFirCompletionContributor
2021-05-12 21:40:02 +03:00
Ilya Kirillov
8eff865277
FIR IDE: encapsulate basic completion parameters into class
2021-05-12 21:40:01 +03:00
Ilya Kirillov
a08c267c37
FIR IDE: mute a few completion tests as they now fails because of unexpected keywords
2021-05-12 21:39:59 +03:00
Ilya Kirillov
98becc9a50
FIR IDE: remove FIR_IGNORE from passing completion test after implementing basic keyword completion
2021-05-12 21:39:58 +03:00
Ilya Kirillov
36068d0b94
FIR IDE: reuse keyword completion handlers which do not require resovle
2021-05-12 21:39:57 +03:00
Ilya Kirillov
1f93eb0841
FIR IDE: add basic keyword completion
2021-05-12 21:39:56 +03:00
Ilya Kirillov
62fe3930ff
Move keyword completion stuff to frontend-independent module
2021-05-12 21:39:54 +03:00
Roman Golyshev
d7a91cb05e
Remove IGNORE_FIR directive from already green tests
2021-05-12 16:28:31 +00:00
Roman Golyshev
4adb291a12
Mute failing AutoImportQuickFix tests
2021-05-12 16:28:30 +00:00
Roman Golyshev
03a1439cc0
Make IgnoreTests fail correctly when directive is outdated
...
`Outdated` means green test with `IGNORE_FIR` directive, or
red test with `FIR_COMPARISON` directive
Also, invoke directive insertion only when it is appropriate
2021-05-12 16:28:29 +00:00
Roman Golyshev
22db894076
FIR IDE: Add Add Import quickfix
...
This quickfix can import unresolved types and callables
It currently does not support Java types and is not as advanced as in
the old plugin
Also, enable tests that now pass
2021-05-12 16:28:28 +00:00
Roman Golyshev
3ad9e4cb5c
Use Import instead of action FQN
...
This way test data can be used both in the old plugin and in the
FIR plugin
2021-05-12 16:28:27 +00:00
Roman Golyshev
eadd7ac034
Generate multi-file quickfix tests for FIR plugin
...
Currently generate only for `Import` quickfix
2021-05-12 16:28:27 +00:00
Roman Golyshev
24642a7c9f
Add KtTypeElement.unwrapNullability() extension function
...
Replace similar functions with its usage
2021-05-12 16:28:26 +00:00
Roman Golyshev
cc41592969
Add possibility to compute additional files for IgnoreTests
...
It is more flexible then just passing additional prefixes, since in some
cases test data have some weird naming conventions
2021-05-12 16:28:25 +00:00
Roman Golyshev
e50d643213
Add possibility to use ModuleLibrariesSearchScope in other modules
...
The type is made private to avoid direct usage of it
2021-05-12 16:28:24 +00:00
Ivan Kochurkin
598501aaf0
[FIR] Improve locations for DEPRECATED_SINCE_KOTLIN_WITHOUT_DEPRECATED, DEPRECATED_SINCE_KOTLIN_WITH_DEPRECATED_LEVEL, DEPRECATED_SINCE_KOTLIN_OUTSIDE_KOTLIN_SUBPACKAGE and other diagnostics, refactor
2021-05-12 18:42:44 +03:00
Ivan Kochurkin
52c32d3d85
[FIR] Implement DEPRECATED_SINCE_KOTLIN_OUTSIDE_KOTLIN_SUBPACKAGE, fix tests
2021-05-12 18:42:43 +03:00
Ivan Kochurkin
177394f6ef
[FIR] Implement DEPRECATED_SINCE_KOTLIN_WITH_DEPRECATED_LEVEL, fix tests
2021-05-12 18:42:42 +03:00
Ivan Kochurkin
77c137df22
[FIR] Add DEPRECATED_SINCE_KOTLIN_WITHOUT_DEPRECATED diagnostics, fix tests
2021-05-12 18:42:41 +03:00
Ivan Kochurkin
3191e0b925
[FIR] Implement DEPRECATED_SINCE_KOTLIN_WITHOUT_ARGUMENTS diagnostics, fix tests, merge and refactor annotation checkers
2021-05-12 18:42:40 +03:00
Ivan Kochurkin
dc99a673a5
[FIR] Implement DEPRECATED_SINCE_KOTLIN_WITH_UNORDERED_VERSIONS diagnostics, fix tests
2021-05-12 18:42:38 +03:00
Ivan Kochurkin
5c086e2321
[FIR] Implement NEWER_VERSION_IN_SINCE_KOTLIN diagnostics, fix tests
2021-05-12 18:42:37 +03:00
Ivan Kochurkin
1be02e3ac4
[FIR] Implement ILLEGAL_KOTLIN_VERSION_STRING_VALUE diagnostics, fix tests
2021-05-12 18:42:36 +03:00
Jinseong Jeon
cb0b80253c
FIR/UAST: make a fat jar with the base module
2021-05-12 17:36:35 +02:00
Ilya Muradyan
bab5d16001
[REPL] Stop old classpath calculation on the base classloader
...
The mechanism of the recursive classpath checking is intended
for the "inner" scripting/REPL classloaders and should not touch
anything beyond.
2021-05-12 18:30:43 +03:00
Mikhail Glukhikh
4608ca15eb
FIR: don't allow SEALED callable modality anymore
2021-05-12 17:50:29 +03:00
Mikhail Glukhikh
67d1c35f19
FIR: report MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED also on interfaces
2021-05-12 17:50:27 +03:00
pyos
3fc2cc410c
JVM_IR: propagate reified type parameter usages from inline lambdas
...
...to whichever class they are inlined into, not the class they are
declared in (which is not the same if the lambda is crossinline).
#KT-46584 Fixed
2021-05-12 15:09:35 +03:00
Alexander Udalov
e079fb665e
JVM IR: fix inheritance from mutable collections of Int
...
For subclasses of `AbstractMutableList<Int>` which are not inline
classes, the special bridge `remove` had a parameter of type `Int`
(mapped to JVM primitive int) before this fix. The hack in
`MethodSignatureMapper` changed this type to `Int?`, yet the body of the
special bridge still loaded it as non-nullable, which resulted in
incorrect bytecode.
It looks like a part of this hack in `BridgeLowering` was made only for
inline classes which are subclasses of mutable collections. Supposedly
it should be extended to non-inline classes, so that `remove` special
bridge would have consistent IR by the time it reaches codegen.
#KT-46516 Fixed
2021-05-12 13:58:40 +02:00
Nikolay Krasko
f30980806f
Read process streams to avoid hanging on Windows in parcelize tests
...
Could be reproduced with ParcelizeBoxTestGenerated.testKt36658 test.
2021-05-12 12:58:02 +03:00
Nikolay Krasko
818bbbbb83
Don't print to log in successful parcelize tests
2021-05-12 12:58:01 +03:00
Nikolay Krasko
b41fdd2705
Leave a clue about muted tests with directive for manual processing
2021-05-12 12:57:59 +03:00
Mads Ager
2c5a4dcb98
[JVM IR] Fix constant folding to use basic types always.
...
Fixes KT-46540.
2021-05-12 11:57:20 +02:00
Svyatoslav Scherbina
ad18d5984b
Expand comment for unsupported nested generics when exporting to Swift
...
Add links to Swift and Kotlin issue trackers.
2021-05-12 09:06:28 +00:00
Elena Lepilkina
18462445b7
[K/N][stdlib] Fixed lookaround regexes (KT-45932)
2021-05-12 09:02:24 +00:00
Ilya Goncharov
d7a87a8552
[Gradle, JS] Fixes after rebase
2021-05-12 11:57:14 +03:00
Ilya Goncharov
9412b7236e
[Gradle, JS] Refactor cacheBuilder to reuse one instance
2021-05-12 11:57:14 +03:00
Ilya Goncharov
19393948d7
[Gradle, JS] irBuildCache means ir compiler enabled
2021-05-12 11:57:14 +03:00
Ilya Goncharov
b9fc97b44f
[Gradle, JS] Add arguments for building caches
2021-05-12 11:57:14 +03:00
Ilya Goncharov
c23376f040
[Gradle, JS] Use associated compilation's caches
2021-05-12 11:57:14 +03:00
Ilya Goncharov
9723d45d27
[Gradle, JS] Add associateWith compilations to CacheBuilder
2021-05-12 11:57:14 +03:00
Ilya Goncharov
194175d2d0
[Gradle, JS] Use multiple arguments for ignoring
2021-05-12 11:57:14 +03:00
Ilya Goncharov
2d3c13f8a2
[Gradle, JS] Everytime run compiler to build caches
2021-05-12 11:57:13 +03:00
Ilya Goncharov
d66d0fd4e4
[Gradle, JS] CacheBuilder before callCompiler
2021-05-12 11:57:13 +03:00
Ilya Goncharov
249fb8393c
[Gradle, JS] Add compiler args serialization to consider in caching
2021-05-12 11:57:13 +03:00
Ilya Goncharov
c283c76130
[Gradle, JS] Add CacheBuilder for precache libraries
2021-05-12 11:57:13 +03:00
pyos
420bc6cbe8
JVM_IR: use correct types for generated inline reference wrappers
...
Doesn't change anything, but still.
2021-05-12 11:37:49 +03:00
pyos
d5d6736e67
PSI2IR/FIR2IR: do not approximate T!! before translation
...
This leads to weird effects when it's in a contravariant position,
because it's approximated by Nothing.
2021-05-12 11:37:48 +03:00
pyos
a37db99841
JVM_IR: remove a hack from InlineCallableReferenceToLambda
...
It breaks other things, the same problem is hit by FunctionReference,
and it's the translation layer's fault anyway.
#KT-46555 Fixed
2021-05-12 11:37:47 +03:00
pyos
cff74b31d4
JVM_IR: get unbound property reference receiver type from KProperty1
2021-05-12 11:37:45 +03:00
Pavel Punegov
53bf0b1c42
Update Build gradle plugin to 0.0.28
2021-05-12 10:34:36 +03:00
Pavel Punegov
540c69ab89
[native] VersionGenerator: fix error string
2021-05-12 10:34:36 +03:00
Pavel Punegov
86041096fd
Return milestone property back to support older versions of plugins
...
Older gradle plugin's NativeCompilerDownloader uses milestone property.
2021-05-12 10:34:36 +03:00
Pavel Punegov
f82c28bd79
Revert "[kotlin-gradle-plugin] workaround for old k/n artifacts"
...
This reverts commit 5c80dbfd
2021-05-12 10:34:36 +03:00
Pavel Punegov
a0d35e56a9
Revert "[tests][kotlin-gradle-plugin] workaround for old k/n artifacts"
...
This reverts commit f051119c to drop obsolete native version support
2021-05-12 10:34:35 +03:00
Pavel Punegov
fa525a8359
[native] Support milestones in meta versions
...
Add milestones to MetaVersion to replace standalone parameter in
compiler version generator. This makes native version match Kotlin one.
2021-05-12 10:34:35 +03:00
Ilmir Usmanov
c4ddf3530d
Use GETFIELD instead of unbox-impl inside inline classes
...
#KT-36783 Fixed
2021-05-12 06:50:06 +00:00
Jinseong Jeon
e5f3091f2c
FIR/UAST: commonize KotlinUFile
...
We can avoid explicit creation of UAnnotation and UImportStatement if we
use languagePlugin as a UAST element factory.
2021-05-11 21:43:02 +02:00
Jinseong Jeon
5dc0b52e38
FIR UAST: fix/test allCommentsInFile in UFile
2021-05-11 21:43:02 +02:00
Jinseong Jeon
03b5c14944
FIR UAST: enable remaining legacy test data
...
This should have been part of commit 7f627ab4
2021-05-11 21:43:02 +02:00
Tianyu Geng
302e0fa46b
FIR IDE: add quickfix AddWhenElseBranchFix
2021-05-11 21:42:45 +02:00
Jinseong Jeon
8e10b5fdec
FIR: introduce FirExpressionWithSmartcastToNull
...
This new kind of expression encompasses the nullability of the original
expression after null check (or equivalent `is Nothing?` check).
Unlike FirExpressionWithSmartcast, this expression won't be materialized
during conversion to backend IR. Also, Nothing? is discarded when
computing the intersection of possible types from smartcast info.
In that way, Nothing? is not used during resolution, while such
smartcast info is stored in it (and the expression kind itself).
2021-05-11 21:28:44 +03:00
Jinseong Jeon
8da183e4f4
FIR DFA: filter out unwanted implcations from processEqNull
...
^KT-41015 fixed
2021-05-11 21:28:43 +03:00
Xin Wang
b9209962cd
CLI: Add documentation for -J argument in kotlinc -help
2021-05-11 19:50:24 +02:00
Dmitriy Novozhilov
1407af6301
[Test] Sort failed exceptions in JUnit5Assertions.assertAll
...
This is needed to throw FileComparisonFailure first, because idea
test UI can not show multiple diff windows for multiple assertions
and shows only first, which is not useful
2021-05-11 20:07:35 +03:00
Dmitriy Novozhilov
2530ae6b3d
[Test] Split IR verification and IR dump to different handlers
2021-05-11 20:07:34 +03:00
Dmitriy Novozhilov
c9cd49d34f
[Test] Temporary remove test for KT-22379
...
This is needed because this test breaks IDE when whit file is indexed.
This test will be returned after release of new kotlin plugins for IDEA
2021-05-11 19:45:43 +03:00
Andrey Zinovyev
89f0a790c9
[lombok] Map lombok MODULE to java PackageVisibility
...
Because that's what lombok does
#KT-46469 Fixed
2021-05-11 19:18:39 +03:00
Andrey Zinovyev
468fc86a3f
[lombok] Fix fallback to config for array annotation's parameter
...
If annotation's parameter is not explicitly defined, it should be
taken from config
#KT-46529 Fixed
2021-05-11 19:18:37 +03:00
Andrey Zinovyev
57d3f98ece
[lombok] Config keys are case-insensitive
...
#KT-46531 Fixed
2021-05-11 19:18:36 +03:00
Alexander Udalov
c898805ac5
CLI: improve path relativization for compiler messages
...
On Windows, the absolute file for the root of the drive is `"C:\"`,
which differs from the absolute file for any other directory, which
doesn't end with `\`. This resulted in incorrect trimming of the first
character of the path name in `descendantRelativeTo`.
Also, do not use canonicalPath because there is no point in expanding
symbolic links here.
#KT-40979 Fixed
2021-05-11 18:44:14 +03:00
Alexander Udalov
f63dac26e6
Minor, extract ProgramWithDependencyOnCompiler for tests
...
Also use ProcessBuilder instead of GeneralCommandLine for simplicity.
2021-05-11 18:44:12 +03:00
Mads Ager
d397efb2bd
[JVM IR] Copy attributes for JVM_STATIC_WRAPPERS.
2021-05-11 16:26:04 +02:00
Mads Ager
3db5ba98ad
[JVM IR] Do not insert Nothing handling in JvmStatic wrapper.
...
Fixes KT-46568.
2021-05-11 16:26:04 +02:00
Dmitriy Novozhilov
3532ce7fbc
[Parser] Fix OOM in parsing of incorrect string literals
...
^KT-46455 Fixed
KT-34410
KT-46564
2021-05-11 16:43:29 +03:00
Mikhail Glukhikh
c284eab2dd
FIR / FE 1.0: fix exception for lambda with unresolved name
...
#KT-46515 Fixed
2021-05-11 15:41:06 +03:00
Stanislav Erokhin
eb4bb9554d
Add ReplaceInvoke adn ReplaceCallWithUnaryOperator intention support
...
Surprisingly all test passed
2021-05-11 12:48:18 +02:00
Stanislav Erokhin
85d9e96632
Partially support call with errors
...
Cases with no candidates or with Ambiguity is not supported yet
2021-05-11 12:48:17 +02:00
Stanislav Erokhin
080a832605
Fix argument mapping for lambda arguments and default arguments
...
Maybe for other elements ValueArgument itself used as SourceElement
2021-05-11 12:48:17 +02:00
Stanislav Erokhin
335c5a03b6
Add correct equals/hashCode to KtSymbolBasedAbstractTypeConstructor
...
Previously there were no equals/hashCode implementation.
Because of that subtyping not working properly. That is because in
subtyping we have checks that type constructors are equals
Also toString was added so now it is a bit easier to debug code
involving the KtSymbolBasedAbstractTypeConstructor
2021-05-11 12:48:16 +02:00
Stanislav Erokhin
dc1ce19db9
Extract some logic from AbstractTypeConstructor to reuse it later
...
In FE10-binding I would like to re-use equal and hashCode mechanics
that was implemented in AbstractTypeConstructor, but I don't need
the supertype implementation, because it already there in FIR
2021-05-11 12:48:16 +02:00
Nikita Bobko
bee8c0bb90
Publish :compiler:test-infrastructure for ide
2021-05-11 12:36:59 +02:00
Vasily Levchenko
c2a46baa77
[build][kotlin-native][test] fix dist dependencies for test targets
2021-05-11 05:47:17 +00:00
Ilmir Usmanov
640d263ae1
Do not unbox nullable Result, since before usage it is coerced
...
#KT-46505
2021-05-11 05:49:24 +02:00
pyos
656c2496a6
JVM_IR: omit bound receiver in IrExpressionLambdaImpl parameters
...
and remove a hack intended to replace the missing type conversions this
caused.
#KT-46505 Fixed
2021-05-11 05:49:20 +02:00
pyos
614d529168
JVM: remove LambdaInfo.invokeMethodDescriptor
2021-05-11 05:49:17 +02:00
Ilya Kirillov
47dc524763
FIR IDE: remove KtUnsubstitutedScope/KtSubstitutedScope as it designed wrong
2021-05-11 01:36:13 +03:00
Ilya Kirillov
90798d8857
FIR IDE: add KDoc for KtScope, choose better names for KtScope members
2021-05-11 01:36:11 +03:00
Ilya Kirillov
f9087a8ab1
FIR IDE: update testdata after changes in symbols
2021-05-11 01:36:10 +03:00
Ilya Kirillov
accc0e3761
FIR IDE: make KtCallableSymbol to be always KtPossiblyExtensionSymbol
2021-05-11 01:36:09 +03:00
Ilya Kirillov
0ba6412f96
FIR IDE: remove KtTypedSymbol interface as all its inheritors are KtCallableSymbol
2021-05-11 01:36:07 +03:00
Jinseong Jeon
bbe5cf0a70
FIR/UAST: clarify what module we should not depend on
2021-05-10 20:23:19 +02:00
Ilya Kirillov
e14848740a
FIR IDE: forbid executing write action inside analyse call
2021-05-10 20:44:23 +03:00
Ilya Muradyan
626c1d3b48
[Scripting] Fix repository ID generation for Maven resolver
2021-05-10 19:40:32 +03:00
Ilya Muradyan
7cea639209
chore: fix typo in comment
2021-05-10 19:40:31 +03:00
Dmitry Petrov
ac0aaff611
JVM_IR KT-46562 don't use LambdaMetafactory for Serializable SAMs
...
TODO support serializable lambdas creation with LambdaMetafactory
2021-05-10 14:54:14 +03:00
Jinseong Jeon
bdfc879f00
FIR checker: report UNINITIALIZED_PARAMETER
2021-05-10 14:26:14 +03:00
Stanislav Erokhin
d2f831b635
Handle exception during intention background computation in tests
...
Our test infrastructure (in particular, muting mechanics) rely on
thrown exception during doTestFor function call. But if the
exception happened on background thread, then here we'll get only
TimeOutException but the actual exception won't be reported during
doTestFor call. It would be reported later by the common IDEA test
framework and bypass our mute mechanics
2021-05-10 14:04:04 +03:00
Stanislav Erokhin
7ac599520e
Add first prototype of BindingContext implementation by FIR
...
Add ImportMemberIntention intention as a test.
In this commit all failed test were disabled, necessary fixes will be
added in the following commits
2021-05-10 14:04:03 +03:00
Stanislav Erokhin
6919f3dbb5
Move KotlinCacheServiceImpl to plugin-common.xml
...
This was done to prevent fir plugin from loading FE 1.0 services
2021-05-10 14:04:02 +03:00
Jinseong Jeon
bf85b110da
FIR DFA: remove updatedAliasDiff from PersistentFlow
...
It is no longer used after element-wise join (a5389b06 )
2021-05-10 12:16:04 +03:00
Mikhael Bogdanov
cd7841ceed
Generate type annotations on class type parameters bounds
...
#KT-13228
#KT-46539 Fixed
2021-05-10 12:12:21 +03:00
Mikhael Bogdanov
f574f89f78
Generate class annotation in AbstractAsmLikeInstructionListingTest
2021-05-10 12:12:20 +03:00
Mikhael Bogdanov
40eeee48b6
Extract generation of type parameters annotations and annotation on their bounds into utils
2021-05-10 12:12:19 +03:00
Mikhael Bogdanov
cbe3c66156
Generate function type parameter annotations and type annotations on their bounds into bytecode
...
Generate type parameter annotation by default for `-Xjvm-target 1.8` and above
#KT-46539
#KT-13228
#KT-46545 Fixed
2021-05-10 12:12:18 +03:00
Mikhael Bogdanov
209ec68591
Make copy for disabled ir tests
2021-05-10 12:12:16 +03:00
Mikhael Bogdanov
5ff4d648f4
Render generic signature in type parameters tests
2021-05-10 12:12:15 +03:00
Mikhael Bogdanov
6182228de8
Render all annotations in type parameters tests
2021-05-10 12:12:14 +03:00
Vladimir Dolzhenko
c98dba6aea
Do not set diagnostics callback if it is already set
...
Relates to #KT-37702
2021-05-10 09:59:16 +02:00
Vladimir Dolzhenko
cf5e6b242b
Wrap exception with file details
...
Relates to #KT-39776
2021-05-07 23:48:12 +02:00
Ilya Muradyan
e9af2849ef
Add Kotlin DeprecationLevel into the REPL completion
2021-05-07 19:56:21 +03:00
Mads Ager
6bc4e124fb
[JVM_IR] Guard against infinite recursion in JvmIrCodegenFactory.
...
Fixed KTIJ-11580.
2021-05-07 17:58:49 +02:00
n-p-s
d70b889004
Update declarations to be searchable by their JvmName annotation
...
Relates to #KT-23653
2021-05-07 17:43:26 +03:00
pyos
36a25353e9
JVM_IR: permit @NoArg if super constructor is already zero-argument
...
#KT-46537 Fixed
2021-05-07 16:22:30 +02:00
Mikhail Glukhikh
ac9e8f667d
Simplify code in Fir2IrConversionScope.returnTarget
2021-05-07 17:06:34 +03:00
Mikhail Glukhikh
05872fc6a8
Support captured types in ConeTypeCompatibilityChecker
2021-05-07 17:06:34 +03:00
Mikhail Glukhikh
df815a64cf
FirEqualityCompatibilityChecker: rename file
2021-05-07 17:06:34 +03:00
Mikhail Glukhikh
6a51ddf755
FirEqualityCompatibilityChecker: add exception wrapper
2021-05-07 17:06:34 +03:00
Andrei Klunnyi
b7eded6e48
KT-46146 no 'protected' for final classes
...
Intention to change final class constructor visibility to 'protected'
was erroneous. This commit removes it.
2021-05-07 12:47:40 +00:00
Andrei Klunnyi
e56a3b3c30
KT-46146 'protected' and 'private' only for sealed constructors
...
Prior to this commit we suggested two invalid intentions for sealed
class constructors: change visibility to 'public' and 'internal'.
^KT-46146 Fixed
2021-05-07 12:47:39 +00:00
Andrei Klunnyi
686368749a
KT-46146 'protected' is unavailable for primary constructors
...
Prior to this commit intention to change primary constructor visibility
to 'protected' was filtered out.
2021-05-07 12:47:38 +00:00
Alina Dolgikh
7388e60869
Add link to Kotlin 1.5 Event registration
...
As an experiment, we would like to try promotion in the Github repository.
2021-05-07 14:40:14 +02:00
Ilya Muradyan
042ac5555c
Merge pull request #4342 from JetBrains/rr/ileasile/completion-for-function-params
...
[REPL] Add completion for the call named parameters
2021-05-07 15:11:12 +03:00
Mikhail Glukhikh
27903b4cd6
Configuration fix: make fir2ir tests depend on 'dist'
2021-05-07 10:32:47 +03:00
Alexander Udalov
d306d8a90e
JVM IR: cast indy-SAM receiver type from KFunctionN to FunctionN
...
#KT-46512 Fixed
2021-05-07 00:53:31 +03:00
Ilya Kirillov
124bd559de
FIR IDE: fix failing AbstractOverrideImplementTest tests on Windows
...
Before the System.lineSeparator() was used for splitting KtFile.text into lines.
In IJ all lines has UNIX file endings, so it failed on Windows TC agent
2021-05-07 00:40:52 +03:00
Mikhail Glukhikh
f83841a34f
Cleanup FirHelpers (inline / remove / reduce visibility)
2021-05-07 00:40:51 +03:00
Tianyu Geng
9273c6326e
FIR IDE: workaround deadlock when resolving class members
...
When listing members in a class, we need to resolve super types. But if
a super type is defined in another file, this file may not have been
resolved. In this case, listing the members would require resolving the
unresolved file, which can only be done in a write lock.
Before this change, KtFirScopeProvider only acquire the read lock, which
then causes read/write deadlock when the logic tries to further resolve
super types defined in other files. This change makes KtFirScopeProvider
acquire a write lock in the beginning so resolving can happen correctly
later.
2021-05-07 00:40:50 +03:00
Tianyu Geng
7a745cfe5c
FIR IDE: Remove unnecessary renderAnnotations option
2021-05-07 00:40:48 +03:00
Tianyu Geng
417c841f77
FIR IDE: Move write actions out of analyze block
2021-05-07 00:40:47 +03:00
Tianyu Geng
e56b39bbd8
FIR IDE: fix typo in package name
2021-05-07 00:40:46 +03:00
Tianyu Geng
d09be811f0
FIR: make class delegation field a fake source
...
Previously, the FirFieldImpl generated from class delegation has a real
source. This causes troubles in the IDE. This change adds a new fake
source kind for class delegation fields.
2021-05-07 00:40:44 +03:00
Tianyu Geng
0b8b20eda0
FIR IDE: fix KtFirScopeProvider
...
Currently FIR IDE throws exceptions when enumerating members in this
scope if the class has delegate super types.
java.lang.IllegalStateException: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl Tjava.lang.IllegalStateException: java.lang.IllegalStateException: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl T
at org.jetbrains.kotlin.test.KotlinTestUtils.lambda$runTestWithThrowable$3(KotlinTestUtils.java:498)
at org.jetbrains.kotlin.test.MuteWithDatabaseKt.runTest(muteWithDatabase.kt:96)
at org.jetbrains.kotlin.test.KotlinTestUtils.runTestWithThrowable(KotlinTestUtils.java:493)
at org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCaseBase.runTest(KotlinLightCodeInsightFixtureTestCaseBase.java:93)
at com.intellij.testFramework.UsefulTestCase.defaultRunBare(UsefulTestCase.java:394)
at com.intellij.testFramework.EdtTestUtil$Companion$runInEdtAndWait$1.invoke(EdtTestUtil.kt:18)
at com.intellij.testFramework.EdtTestUtil$Companion$runInEdtAndWait$1.invoke(EdtTestUtil.kt:13)
at com.intellij.testFramework.EdtTestUtilKt$runInEdtAndWait$1.run(EdtTestUtil.kt:50)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:201)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeAndWait$8(ApplicationImpl.java:475)
at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:126)
at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:132)
at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47)
at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:188)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:971)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:841)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:452)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:744)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:451)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:499)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.IllegalStateException: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl T
at org.jetbrains.kotlin.fir.types.FirTypeUtilsKt.getConeType(FirTypeUtils.kt:33)
at org.jetbrains.kotlin.fir.scopes.KotlinScopeProviderKt.scopeForSupertype(KotlinScopeProvider.kt:111)
at org.jetbrains.kotlin.fir.scopes.KotlinScopeProvider.getUseSiteMemberScope(KotlinScopeProvider.kt:42)
at org.jetbrains.kotlin.fir.scopes.KotlinScopeProviderKt.unsubstitutedScope(KotlinScopeProvider.kt:83)
at org.jetbrains.kotlin.idea.frontend.api.fir.components.KtFirScopeProvider$getMemberScope$lambda-3$lambda-2$$inlined$withFirForScope$1.invoke(FirRefWithValidityCheck.kt:83)
at org.jetbrains.kotlin.idea.frontend.api.fir.components.KtFirScopeProvider$getMemberScope$lambda-3$lambda-2$$inlined$withFirForScope$1.invoke(FirRefWithValidityCheck.kt:41)
at org.jetbrains.kotlin.idea.fir.low.level.api.api.LowLevelFirApiFacadeKt.withFirDeclaration(LowLevelFirApiFacade.kt:209)
at org.jetbrains.kotlin.idea.frontend.api.fir.components.KtFirScopeProvider.getMemberScope(KtFirScopeProvider.kt:323)
at org.jetbrains.kotlin.idea.frontend.api.components.KtScopeProviderMixIn$DefaultImpls.getMemberScope(KtScopeProvider.kt:34)
at org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession.getMemberScope(KtAnalysisSession.kt:26)
at org.jetbrains.kotlin.idea.core.overrideImplement.KtOverrideMembersHandler.getOverridableMembers(KtOverrideMembersHandler.kt:54)
at org.jetbrains.kotlin.idea.core.overrideImplement.KtOverrideMembersHandler.collectMembers(KtOverrideMembersHandler.kt:35)
at org.jetbrains.kotlin.idea.core.overrideImplement.KtOverrideMembersHandler.collectMembersToGenerate(KtOverrideMembersHandler.kt:28)
at org.jetbrains.kotlin.idea.codeInsight.AbstractOverrideImplementTest.doMultiOverrideImplement(AbstractOverrideImplementTest.kt:141)
at org.jetbrains.kotlin.idea.codeInsight.AbstractOverrideImplementTest.doMultiFileTest(AbstractOverrideImplementTest.kt:98)
at org.jetbrains.kotlin.idea.codeInsight.AbstractOverrideImplementTest.doMultiOverrideFileTest(AbstractOverrideImplementTest.kt:54)
at org.jetbrains.kotlin.idea.codeInsight.OverrideImplementTest.testDelegatedMembers(OverrideImplementTest.kt:121)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at com.intellij.testFramework.UsefulTestCase.lambda$runTest$9(UsefulTestCase.java:331)
at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:462)
at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:480)
at com.intellij.testFramework.UsefulTestCase.invokeTestRunnable(UsefulTestCase.java:378)
at com.intellij.testFramework.UsefulTestCase.runTest(UsefulTestCase.java:350)
at org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCaseBase.lambda$runTest$0(KotlinLightCodeInsightFixtureTestCaseBase.java:93)
at org.jetbrains.kotlin.test.KotlinTestUtils.lambda$runTestWithThrowable$3(KotlinTestUtils.java:495)
... 36 more
.. 112 more
2021-05-07 00:40:42 +03:00
Tianyu Geng
53aafbd7d9
FIR IDE: enable override implement test for FIR
2021-05-07 00:40:41 +03:00
Tianyu Geng
00031c8eb1
FIR IDE: add action to override/implement missing members
...
This commit adds the following actions:
- quickfix to implement missing members
- quickfix to implement missing members as constructor parameters
- action to implement members (Code - Generate - Implement)
- action to override members (Code - Generate - Override)
The current implementation is still missing some pieces, which will be
addressed in future changes.
- fully qualified names are not shorten
- some Kotlin types are not rendered correctly
2021-05-07 00:40:40 +03:00
Tianyu Geng
34387e228f
FIR IDE: extract common logic idea.core.overrideImplement
...
Also rename OverrideImplementMemberHandler to GenerateMemberHandler to
align with the naming of its member functions.
2021-05-07 00:40:38 +03:00
Tianyu Geng
06ba143afe
FIR IDE: quickfix to make class abstract if member not implemented
2021-05-07 00:40:37 +03:00
Alexander Udalov
6e3009b82e
JVM IR: generate adapted callable references as synthetic
...
As well as suspend conversion adapters, which are unsupported by default
right now.
#KT-46259 Fixed
2021-05-06 22:58:18 +03:00
Leonid Startsev
d60a8f9baa
Use correct type in KClassReference
...
Make sure that writeSelf function remains static
2021-05-06 19:53:21 +00:00
Leonid Startsev
a58f29aa06
Remove unnecessary ignoreIndexTo outside writeSelf
...
It never worked: descriptor.declaresDefaultValue used by property.isOptional
works only for current module
(since it looks up psi), so we never access default value initializers
outside current module
2021-05-06 19:53:21 +00:00
Leonid Startsev
66f39ca185
Use SerializerFactory interface and generate function
...
for sealed and abstract serializable classes.
Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1116
Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1078
2021-05-06 19:53:20 +00:00
Jinseong Jeon
ebbef484ad
FIR UAST: add utils to clean up identical render/log files
2021-05-06 20:19:29 +02:00
Jinseong Jeon
1385a4690e
Revert "UAST Kotlin: update test data"
...
This reverts commit 291cd842
A directive to ignore FIR UAST is removed after facade support.
2021-05-06 20:19:29 +02:00
Jinseong Jeon
7f627ab480
FIR UAST: track all legacy test data since facade class is converted
...
These are mostly mechanical changes.
2021-05-06 20:19:29 +02:00
Jinseong Jeon
939740d26e
FIR UAST: convert (light) class for facade
2021-05-06 20:19:29 +02:00
Ilya Goncharov
9baa24e626
[Gradle, JS] Fix with beta version of webpack-dev-server to work with webpack 5
...
^KT-46162 fixed
^KT-46331 fixed
2021-05-06 18:45:45 +03:00
Mads Ager
b6fa28ea81
[JVM_IR] Deal with inline-class arguments in large arity lambdas.
...
FunctionNVarargBridgeLowering checked the name of the method instead
of whether the method overrides an invoke method. That doesn't work
when the name of the function gets mangled because of inline class
arguments.
Fixed KT-45084.
2021-05-06 17:27:59 +02:00
pyos
1181854bd6
Add a couple more tests for array constructors and references
2021-05-06 18:25:56 +03:00
pyos
a30cfc332d
JVM_IR: remove JvmArrayConstructorLowering
...
ExpressionCodegen already spills the stack before any loop, so it has
no effect.
2021-05-06 18:25:55 +03:00
pyos
9f53d70109
JVM_IR: move ArrayConstructor below function reference phases
...
This allows taking function references to inline array constructors.
Also, redundant classes are no longer generated when function references
are passed as arguments to the array constructors.
#KT-46426 Fixed
2021-05-06 18:25:53 +03:00
Mikhail Glukhikh
776920f77d
Cleanup code in FirAnnotationArgumentChecker
2021-05-06 17:51:24 +03:00
Mark Punzalan
18f617a582
FIR: Make FirAnnotationArgumentChecker a FirAnnotationCallChecker, to
...
run on all annotation calls, including those inside type annotations.
2021-05-06 17:51:22 +03:00
Mikhail Glukhikh
87d05bcf83
Fix spec test data after rebase
2021-05-06 17:50:37 +03:00
Mikhail Glukhikh
e451ecf000
Regenerate FIR IDE tests
2021-05-06 17:50:36 +03:00
Mikhail Glukhikh
1936a815e2
ConeTypeCompatibilityChecker: add temporary workaround for KT-46383
2021-05-06 17:50:35 +03:00
Tianyu Geng
db55a973d4
FIR: fix infinite recursion with equality operator checker
2021-05-06 17:50:34 +03:00
Tianyu Geng
d4717569b9
Fix inferred type of FirGetClassCall
...
The inferred type should be `KClass<out Blah>` for `FirGetClassCall`
invoked on expressions.
2021-05-06 17:50:33 +03:00
Tianyu Geng
7bb81ef157
FIR: add equality call checker
...
Added checker for FirEqualityOperatorCall. It's surfaced as one of the
following diagnostics depending on the PSI structure and types under
comparison:
* INCOMPATIBLE_TYPES(_WARNING)
* EQUALITY_NOT_APPLICABLE(_WARNING)
* INCOMPATIBLE_ENUM_COMPARISON_ERROR
Comparing with FE1.0, the current implementation is more conservative
and only highlights error if the types are known to follow certain
contracts with `equals` method. Otherwise, the checker reports warnings
instead.
However, the current checker is more strict in the following situations:
1. it now rejects incompatible enum types like `Enum<E1>` and
`Enum<E2>`, which was previously accepted
2. it now rejects incompatible class types like `Class<String>` and
`Class<Int>`, which was previously accepted
3. the check now takes smart cast into consideration, so
`if (x is String) x == 3` is now rejected
2021-05-06 17:50:32 +03:00
Andrey Zinovyev
787c743333
[FIR] Syntax checkers
...
Introduce base class for checkers that dive into source trees.
2021-05-06 17:38:04 +03:00
Ilya Matveev
1be39cb505
[K/N] Replace thread_local with THREAD_LOCAL_VARIABLE
...
For some reason using C++'s thread_local modifier
causes crashes during TLS access on runtime initialization
Kotlin dlls on Windows. This patch replaces the thread_local
modifier with __thread which doesn't have this problem
2021-05-06 14:10:22 +00:00
Ilya Matveev
e2e173b92c
[K/N][New MM] Disable tests for ObjC interop
2021-05-06 14:10:22 +00:00
Ilya Matveev
4d346d3735
[K/N][New MM] Support thread state switching
...
Including
* Support thread state switching in codegen
* Introduce and use GCUnsafeCall annotation
* Switch thread state in C++ runtime code
Also
* Register current thread in Mark&Sweep tests
* Store MemoryState in Worker instance
* Set worker tid in WorkerInit
2021-05-06 14:10:21 +00:00
Ilya Matveev
0b46ed3cde
[K/N][New MM] Add thread state asserts to reference updates
2021-05-06 14:10:20 +00:00
Ilya Matveev
08688670b1
[K/N] Adjust repository root in K/N's .idea directory
2021-05-06 14:10:19 +00:00
Yahor Berdnikau
c6fc393417
Enable kotlin java toolchain support for kapt task.
...
With this change 'KaptWithoutKotlincTask' will also support overriding
default Gradle JDK to run kapt. In such case only 'in-process' kapt
worker isolation mode is supported.
If user does not provide custom JDK, kapt worker isolation mode will
be 'no-isolation' as before.
^KT-45611 In Progress
2021-05-06 16:04:23 +02:00
Mads Ager
afa1b8bfdc
[JVM] Extend boxing/unboxing optimizations to coroutine boxing.
2021-05-06 15:35:49 +02:00
Ivan Gavrilovic
4994cb3774
[Gradle] Create kotlinOptions during task init and keep outputFile for js
...
This is so that existing build scripts using
withType() do not break. Also, fix the failing
test.
It was necessary to keep outputFile for the js compile task
as it was accessed from the build scripts. Instead, a new
property is introduced which uses Gradle lazy properties.
2021-05-06 13:54:18 +03:00
Ivan Gavrilovic
80181c1091
[Gradle] Add Android bootclasspath lazily
2021-05-06 13:54:17 +03:00
Ivan Gavrilovic
1c0d40055e
[Gradle] Support getting the sourceSet name from tasks when...
...
...Gradle property is being used, instead of the direct String
value.
2021-05-06 13:54:16 +03:00
Ivan Gavrilovic
98cc99e36b
[Gradle] Fix adding KAPT generated classess to the compilation classes output
2021-05-06 13:54:15 +03:00
Ivan Gavrilovic
f5caa49c31
[Gradle] Use Gradle properties for KAPT tasks
...
Use lazy properties to configure KAPT tasks and in the model builder.
Also, avoid eager dependency resolution of the kaptExternalClasspath
file collection.
2021-05-06 13:54:14 +03:00
Ivan Gavrilovic
0882da1788
[Gradle] Introduce classes to configure KAPT tasks
...
Avoid storing references to KotlinCompile task and use lazy properties
to configure task. Values are kept in-sync with the
Kotlin compile task (for the stub generation) using this mechanism.
2021-05-06 13:54:13 +03:00
Ivan Gavrilovic
01dd15cc3e
[Gradle] Use task properties to modify task configuration
...
This change migrates to using properties of KGP tasks and Gradle
built-in tasks. Also, in TaskProvider class, Configurator instances are
created to configure KGP tasks.
2021-05-06 13:54:12 +03:00
Ivan Gavrilovic
ad9f6e63b6
[Gradle] Extract configuration of KotlinJsIrLink to a class
...
Migrate KotlinJsIrLink to properties create Configurator class
to configure the task properties.
2021-05-06 13:54:11 +03:00
Ivan Gavrilovic
5eed9a4e6e
[Gradle] Extract configuration of KotlinCompileCommon to a class
...
Migrate KotlinCompileCommon to properties create Configurator class
to configure the task properties.
2021-05-06 13:54:10 +03:00
Ivan Gavrilovic
ff27a61252
[Gradle] Use ConfigurableFileCollection for task local state
...
Use ConfigurableFileCollection so that tasks can simply append to the
file collection and tasks that do not need this, can simply do nothing.
2021-05-06 13:54:09 +03:00
Ivan Gavrilovic
571c9c10d4
[Gradle] Update compile tasks to use properties and clean up code
...
Update AbstractKotlinCompile, KotlinCompile, and Kotlin2JsCompile to
use Gradle properties, and introduce Configurator classes that are
using configuration-time data to configure task. Also, introduce
TaskConfigurator interface that should be implemented by classes that
are used to configure tasks.
2021-05-06 13:54:08 +03:00
Ivan Gavrilovic
56cad96718
[Gradle] Remove KotlinCompileTaskData
...
When getting the incremental compilation information use the
task graph which processes all tasks present in it. Tasks have
all information that is needed to get IncrementalModuleInfo for all
compilations.
2021-05-06 13:54:06 +03:00
Ivan Gavrilovic
b3d8187df4
[Gradle] Remove deprecated ways to specify compiler classpath
...
This change removes options to specify compiler classpath using
deprecated properties that were deprecated for more than 2 years.
2021-05-06 13:54:05 +03:00
Jinseong Jeon
61e21ef6a2
FIR: ensure the absence of FirResolvedTypeRef with erroneous type
2021-05-06 12:22:40 +03:00
Andrey Zinovyev
cba21c68a3
[lombok] Actualize README
2021-05-06 11:27:51 +03:00
Jinseong Jeon
e2dc21da90
FIR checker: warn useless as and is
2021-05-05 18:20:51 +03:00
Jinseong Jeon
19d939c36e
TEST: remove redundant diagnostic directive (w/ syntax error)
2021-05-05 18:20:50 +03:00
Mikhail Glukhikh
7ee6597873
FIR: make inference context mandatory in withNullability() etc.
2021-05-05 17:35:50 +03:00
Jinseong Jeon
bb37728e4f
FIR: use withNullability with type context whenever possible
...
It could simplify flexible type cases.
2021-05-05 17:35:48 +03:00
Anton Lakotka
f94ed1a00c
Fail only when KotlinPm20ProjectExtension is passed
...
to buildKotlinProjectStructureMetadata
#Fixes KTIJ-11586
2021-05-05 16:53:20 +03:00
Jinseong Jeon
291cd842b9
UAST Kotlin: update test data
...
Addition of directive IGNORE_FIR alters synthetic local variable names.
2021-05-05 14:22:40 +02:00
Jinseong Jeon
dad198cb67
UAST Kotlin: make super type lookup test robust
...
Newly added directive IGNORE_FIR bothers lookup for object "O".
2021-05-05 14:22:40 +02:00
Jinseong Jeon
03d4cb0dfa
FIR UAST: use uast-kotlin/testData for legecy tests
2021-05-05 14:22:40 +02:00
Jinseong Jeon
eac875b5d6
FIR UAST: commonize utils from UAST Kotlin
2021-05-05 14:22:40 +02:00
Jinseong Jeon
f37c722c76
UAST Kotlin: fix typos
2021-05-05 14:22:40 +02:00
Jinseong Jeon
40eaabdbb5
FIR UAST: prototype plugin entrypoint, declarations, test infra
2021-05-05 14:22:40 +02:00
Jinseong Jeon
225e3a747c
LC: introduce light class interface for facade
...
so that FIR-based light class for facade can work well in LC utils
2021-05-05 14:11:48 +02:00
Jinseong Jeon
efba90c6f1
LC: rename KtLightClassForFacade to ...Impl
...
before introducing a common interface for light class for facade
This is a mechanical refactoring.
2021-05-05 14:11:48 +02:00
Alexander Udalov
c14a890e7e
IR: fix capturing of type parameters in local functions
...
collectPotentiallyCapturedTypeParameters no longer stops on the first
class when going through parents. This is needed because otherwise type
parameters of the containing class, and its outer classes, were never
considered "captured", and thus not duplicated/remapped later in
LocalDeclarationsLowering.
This led to the IR where a local function referenced generic type
parameters of the outer class. On JVM, local function is generated into
a private static function in that container class, and static functions
can't use generic type parameters, which crashed some bytecode
processing tools.
Also, add another explicit call to `seeType` to cover references to
generic type parameters in function return types.
#KT-45941 Fixed
2021-05-04 21:10:56 +02:00
Vasily Levchenko
b389fd6667
[performance][build][kotlin-build-gradle-plugin] version 0.0.27 (fix)
2021-05-04 15:44:19 +00:00
Stanislav Erokhin
d9be05fea8
Support getContainer for the synthetic it value parameter
...
Also fixed incorrect KtSymbolOrigin:
it was SOURCE instead of SOURCE_MEMBER_GENERATED
2021-05-04 17:25:34 +02:00
Stanislav Erokhin
c24ad0ba51
Use KtFunctionLiteral as key for KtAnonymousFunctionSymbol retrieving
...
It seems logical to do, because KtFunctionLiteral is KtDeclaration
and KtLambdaExpression is not. Also FirAnonymousFunction use it as
realPsi reference
2021-05-04 14:01:30 +02:00
Dmitriy Dolovov
75d2e415e1
[K/N][IR] Generate missing return statement, p. 2
...
^KT-42832
2021-05-04 13:26:02 +03:00
Alexander Shabalin
5e456ed82b
Put GC implementations into separate modules.
...
The mm module now compiles separately for each GC implementation.
2021-05-04 10:23:16 +00:00
Ilya Kirillov
41ab97ff1f
FIR IDE: introduce single function for checking if declaration can be lazily resolved
2021-05-04 08:19:50 +02:00
Ilya Kirillov
babf079c31
FIR IDE: fix resolving of inner type aliases
2021-05-04 08:19:50 +02:00
Ilya Kirillov
9e1bc5680d
FIR IDE: do not consider KtEnumEntry as ktClassOrObject
2021-05-04 08:19:50 +02:00
Ilya Kirillov
ef5f0e77ec
FIR IDE: use KtClassLikeDeclaration.classId instead of hacks
2021-05-04 08:19:50 +02:00
Ilya Kirillov
aff807e3af
Stubs: bump stubs version
2021-05-04 08:19:50 +02:00
Ilya Kirillov
4942f5eb66
Stubs: add classId to KtTypeAlias stubs
2021-05-04 08:19:50 +02:00
Ilya Kirillov
fdb091d98e
Stubs: add classId to KtClassOrObject stubs
2021-05-04 08:19:49 +02:00
Ilya Kirillov
09a94f3200
FIR IDE: ignore non-passing tests in compiler based tests
2021-05-04 08:19:49 +02:00
Ilya Kirillov
3503a54437
FIR IDE: run tests in parallel in module idea-fir-low-level-api
2021-05-04 08:19:49 +02:00
Ilya Kirillov
65ce641b22
FIR IDE: introduce diagnostics tests bases on FIR diagnostics tests
2021-05-04 08:19:49 +02:00
Ilya Muradyan
b771f9eea4
[REPL] Add completion for the call named parameters
2021-05-04 04:40:00 +03:00
Mads Ager
0c77565104
JVM_IR: Add more local variable tests for finally code.
2021-05-03 07:43:38 +02:00
Mads Ager
6095d8a7fa
[JVM] Split the variable range for external finally blocks in inliner
...
When external finally blocks are inlined none of the current locals
are in scope of the finally block.
2021-05-03 07:43:37 +02:00
Mads Ager
6d9f02cfc6
[JVM_IR] Fix range of locals in connection with finally blocks.
...
For code such as:
```
try {
var y = "y"
for (i in 0 until 1) {
return y
}
} finally {
println("finally")
}
```
The local variables `y` and `i` ended up covering the finally block as
well in the debugger.
This change splits the range of the locals so that they do
not cover the finally block.
This change does not change the inliner to do similar transformations,
so the range of locals is still wrong win finally blocks when inlined
into an inline function. Added a failing test to that effect.
2021-05-03 07:43:37 +02:00
Mikhail Glukhikh
0764a0601c
Fix FIR IDE test data broken by 80a44986
2021-05-01 19:12:05 +03:00
sebastian.sellmair
a1ed81146e
[Commonizer] Logging: NativeDistributionCommonizationCache: Log in level 'quite' on cache misses
...
^KT-36679 Verification Pending
2021-05-01 14:36:18 +03:00
sebastian.sellmair
b48850c993
[Commonizer] Logging: Implement CommonizerLogLevel and hide verbose output by default
...
^KT-36679 Fixed
2021-05-01 14:36:18 +03:00
sebastian.sellmair
7349ec8f2f
[Commonizer] Logging: Implement ProgressLogger.fork
...
^KT-36679
2021-05-01 14:36:16 +03:00
sebastian.sellmair
ec440aecf6
[Commonizer] Logging: Remove 'COMMONIZATION' prologue
...
^KT-36679
2021-05-01 14:36:15 +03:00
sebastian.sellmair
9d9e11d6d8
[Commonizer] Logging: 'Preparing commonized Kotlin/Native libraries': show outputTarget instead of flat list of targets
...
^KT-36679
2021-05-01 14:36:14 +03:00
sebastian.sellmair
0d9e32f963
[Commonizer] Logging: Show [Step x of y] only when more than one task is scheduled
...
^KT-36679
2021-05-01 14:36:13 +03:00
Victor Petukhov
9eaec8d919
Use platform-independent line separator in jspecify tests handler
2021-05-01 13:39:28 +03:00
Nikolay Krasko
2a2fa31577
Allow emulate sonatype publishing when publishing to folder (KTI-552)
2021-05-01 01:41:30 +03:00
Nikolay Krasko
624740a80a
Force usage of passed deploy url for sonatype publication (KTI-552)
2021-05-01 01:41:28 +03:00
Nikolay Krasko
2eda82f178
Allow in memory signing (KTI-552)
2021-05-01 01:41:27 +03:00
Nikolay Krasko
8f97d8a78e
Drop legacy publishing
2021-05-01 01:37:09 +03:00
Mads Ager
df225c0c7f
[JVM] Fix uninitialized locals after coroutine transformation.
...
The coroutine transformation would leave locals in the local
variable table across the code that reloads local variables from
the continuation on reentry. However, when reentering the function
the local has no value until after the reloads from the
continuation.
This change splits the locals in the local variable table to
avoid such uninitialized locals. A local alive across a
suspension point has its range split in two. One that goes
from the original start to the state label for the restart
after the suspension. The other goes from after the local
has been reloaded from the continuation until the previous
end of the local.
2021-04-30 22:24:03 +02:00
Dmitry Petrov
83e3a702c5
JVM_IR KT-46408 properly map fake overrides in method handles
2021-04-30 22:24:02 +03:00
Vasily Levchenko
ef2c2c2c9e
[kotlin][tests][compiler/testData/debug/stepping] kt-42208 test added.
2021-04-30 18:44:55 +00:00
Vasily Levchenko
3160fc84fa
[kotlin-native][tests] kt-42208 test added.
2021-04-30 18:44:54 +00:00
Vasily Levchenko
a6a7da31c9
[IR][provisional function expression] do generate function reference with offset of call site.
2021-04-30 18:44:54 +00:00
Tianyu Geng
b6bd4ae8e6
FIR: check DELEGATE_SPECIAL_FUNCTION_RETURN_TYPE_MISMATCH
2021-04-30 19:58:50 +03:00
Mikhael Bogdanov
84e67da2af
Mute test on JDK 6
2021-04-30 18:24:10 +02:00
Mikhael Bogdanov
95d95f9a9b
Put reification markers came from super object signature
...
#KT-44770 Fixed
#KT-30696 Open
2021-04-30 17:34:16 +02:00
Sergey Shanshin
8dd307573a
Fix IR compilation of external serializers in native
2021-04-30 18:17:08 +03:00
Mikhail Glukhikh
80a449862e
FIR: implement diagnostics for qualifier as stand-alone expression case
2021-04-30 17:59:45 +03:00
Mikhail Glukhikh
84ccf7bbb1
FIR: use Java 8 rules in not implemented checker
2021-04-30 17:59:38 +03:00
Mikhail Glukhikh
5de8401494
Reset FirQualifiedNameResolver properly
2021-04-30 17:59:32 +03:00
Victor Petukhov
4fb78fab93
Temporary disable failing jspecify tests on Windows
2021-04-30 17:50:56 +03:00
Victor Petukhov
c9568c0744
Fix FIR tests
2021-04-30 16:49:56 +03:00
Victor Petukhov
7c62e9aecd
Introduce warnings reporting by missed constraints because of incorrect optimization in the constraints processor
2021-04-30 15:46:04 +03:00
Victor Petukhov
e110b49cab
Revert "Don't stop constraints processing if all type variables have proper equality constraints"
...
This reverts commit b87c2a15
2021-04-30 15:46:03 +03:00
Andrey Zinovyev
287ff3ed55
[FIR] Fix for AugmentedArraySetCall expression type
...
Hacky fix so it's type is Unit and not error
2021-04-30 15:25:44 +03:00
Simon Ogorodnik
6365164c21
FIR: Fix gradle integration tests broken by c6fa3634
2021-04-30 15:19:58 +03:00
Sergey Bogolepov
13464cce68
[Native] Adapt Skia interop to ClangArgs refactoring.
2021-04-30 12:07:46 +00:00
Victor Petukhov
f330d67740
Mute foreign annotations tests with compiled java through psi class files reading
2021-04-30 14:43:28 +03:00
Victor Petukhov
78ffefe107
Add jspecify license
2021-04-30 14:43:27 +03:00
Victor Petukhov
909f0d8bdb
Implement caching module annotations per class id
2021-04-30 14:43:27 +03:00
Victor Petukhov
2e57ff25ee
Leave KotlinCliJavaFileManager::findClass only passing JavaClassFinder.Request
2021-04-30 14:43:27 +03:00
Victor Petukhov
072bba109f
Move foreign annotations logic into the corresponding configurator for the tests
2021-04-30 14:43:27 +03:00
Victor Petukhov
e93133a28f
Implement jspecify marks processing in the tests properly, by adding specific handler and cleanuper
2021-04-30 14:43:27 +03:00
Victor Petukhov
b9536a25d6
Support type enhancement on freshly supported module level annotations
...
^KT-45189 Fixed
2021-04-30 14:43:27 +03:00
Victor Petukhov
bc5e92033b
Support reading annotations on java 9 module on sources and binaries
2021-04-30 14:43:27 +03:00
Victor Petukhov
24685ee9d6
Add directive ALL_JAVA_AS_BINARIES and use it explicitly for foreign annotations tests with compiled java
2021-04-30 14:43:27 +03:00
Victor Petukhov
89270399db
Update some third-party annotations
2021-04-30 14:43:26 +03:00
Victor Petukhov
cdcde634e8
Add basic Java 9 module tests
2021-04-30 14:43:26 +03:00
Victor Petukhov
757fdb2b32
Add Java 9 jspecify annotations including module level ones
2021-04-30 14:43:26 +03:00
Victor Petukhov
71755b7a5e
Support java 9 modules in the diagnostic tests both in sources and binaries
2021-04-30 14:43:26 +03:00
Victor Petukhov
1f0616439c
Introduce special common directives for tests based on foreign annotation tests
2021-04-30 14:43:26 +03:00
Victor Petukhov
6065f0e2d0
[Jspecify] Move diagnostic tests against compiled java under the new tests infrastructure
2021-04-30 14:43:26 +03:00
Victor Petukhov
8f097b14cc
[Jspecify] Move jspecify test runner under the new tests infrastructure
2021-04-30 14:43:26 +03:00
Victor Petukhov
6f9694174f
Move foreign annotation tests into diagnostics folder
2021-04-30 14:43:25 +03:00
Victor Petukhov
57bd4d3a98
[Jspecify] Remove Kotlin use sites generator: consider manually picking changes from the jspecify repo
2021-04-30 14:43:25 +03:00
Victor Petukhov
49e838781c
Clean-up JavaModuleInfo.kt
2021-04-30 14:43:25 +03:00
Vasily Levchenko
788d3c022a
[build][kotlin-build-gradle-plugin] version 0.0.27
...
- reading konanVersion and konanMetaVersion from project properties
2021-04-30 10:26:36 +00:00
Vasily Levchenko
9cbcafa8d1
[dependencies][kotlin-build-gradle-plugin] version 0.0.27
...
- reading konanVersion and konanMetaVersion from project properties
2021-04-30 10:26:35 +00:00
Dmitry Petrov
72804d2e8c
JVM_IR KT-45779 don't generate intrinsic method refs via invokedynamic
2021-04-30 12:45:11 +03:00
Sergey Bogolepov
f3a935adb9
Support explicit C++ flags in run_konan tool
2021-04-30 08:39:27 +00:00
Sergey Bogolepov
25ebb3fa75
Remove obsolete Gradle native plugin configuration
2021-04-30 08:39:27 +00:00
Sergey Bogolepov
274d18a141
[Kotlin/Native] Add a workaround for Xcode 12.5
...
SDKs from Xcode 12.5 contain C++ stdlib and it
breaks compilation of C++ parts of compiler.
Mitigate this problem by explicitly specifying
path to C++ stdlib.
2021-04-30 08:39:26 +00:00
Victor Petukhov
8dd71ec5c8
Build recursive raw types and raw types which contain type parameters properly
...
1) Substitute erasure of other type parameters
2) Use star projection at top level for recursive raw types
^KT-46126 Fixed
2021-04-30 10:49:47 +03:00
Andi Wenger
f9d2ca68ce
KJS IR: Fix KT-45738 - Consider recursive checkForPrimitiveOrPattern
...
Recursive results from checkForPrimitiveOrPattern were ignored. If it found a case/condition that could not be optimized the resulting "false" was not propagated. This would lead to a "optimized" when without all conditions.
- see KT-45738
- The return is now lifted out of the when to make it more obvious what is going on.
- New test for mixed multiple conditions in when
2021-04-29 23:52:01 +03:00
Ilya Kirillov
caff279255
FIR IDE: add missing binary extensions
...
This also reveals and error in find usages for fir: it does not work for library source files
So, corresponding tests are muted
2021-04-29 23:31:05 +03:00
Andrey Zinovyev
e4a5775570
Remove duplicated code in annotation-based-compiler-plugins-ide-support
2021-04-29 23:14:16 +03:00
Andrey Zinovyev
8afb6d2761
[lombok] Support import from gradle to IDE
...
Introduce base module for ide compiler plugins
2021-04-29 23:14:15 +03:00
Andrey Zinovyev
b58bea6fa1
[lombok] IDE plugin with maven import handler
2021-04-29 23:14:14 +03:00
Andrey Zinovyev
07daf2165a
[lombok] Rename maven subplugin to 'lombok'
2021-04-29 23:14:13 +03:00
Andrey Zinovyev
b88f54b31a
[lombok] Add maven plugin integration test with kapt
2021-04-29 23:14:12 +03:00
Andrey Zinovyev
3e883120dd
[lombok] Simple maven plugin to enable lombok support
2021-04-29 23:14:11 +03:00
Ivan Kochurkin
7ec709cf46
FIR: fix incorrect reporting of underscores, simplify code, fix test data file
2021-04-29 22:31:39 +03:00
Jinseong Jeon
9b39a8abc2
FIR: avoid wrapping an erroneous type as FirResolvedTypeRef
...
Instead, use FirErrorTypeRef, a subtype of FirResolvedTypeRef
2021-04-29 22:31:38 +03:00
Alexander Gorshenev
887032667d
[Kotlin/Native][Interop] Skia interop plugin for cinterop
2021-04-29 21:43:26 +03:00
Vladimir Ivanov
5f582ad28a
[Kotlin/Native][Interop] Provide pure c wrappers over cpp for skia interop
2021-04-29 21:43:25 +03:00
Yahor Berdnikau
61825e9aec
Made GradleCompileTaskProvder compative with configuration cache.
...
After moving compilerRunner() method evaluation into execution phase,
creation of GradleCompileTaskProvider class started to violate
configuration cache.
^KT-45611 In Progress
2021-04-29 20:43:59 +03:00
Yahor Berdnikau
816e955c61
Introduce KotlinJavaToolchain compile tasks input.
...
This task input provides a way to set different from current Gradle
JDK and use it for Kotlin files compilation. By default it provides
current Gradle JDK.
Provided JDK major version is used as task input, so on providing
different JDK user will see cache miss.
All required interfaces are located inside api module.
^KT-45611 In Progress
2021-04-29 20:43:58 +03:00
Yahor Berdnikau
201b6dfa60
Print path to java executable Kotlin daemon was started with.
...
Useful for tests to validate toolchain correct behaviour.
^KT-45611 In Progress
2021-04-29 20:43:57 +03:00
Yahor Berdnikau
85456bd6d8
Add helper methods simplifying working with lazy properties from Kotlin.
...
Just allow to write Kotlin code easier and nicer when using Gradle
lazy properties.
^KT-45611 In Progress
2021-04-29 20:43:55 +03:00
Yahor Berdnikau
007f11e22e
Add initial test setup to enable and test Gradle build cache.
...
This will allow to write JUnit5 tests to verify tasks are re-using
build cache on rebuilding same project from clean state.
^KT-45611 In Progress
2021-04-29 20:43:54 +03:00
Ilya Kirillov
ddf451739b
FIR IDE: add member type-alias test for FileStructureTest
2021-04-29 17:51:28 +02:00
Ilya Kirillov
d438d2db40
FIR IDE: do not remove duplicated diagnostics
...
This hides the real problem why diagnostics are duplicated
2021-04-29 17:51:28 +02:00
Ilya Kirillov
77ae1fa1f2
FIR IDE: run lazy resolve phases in ContextIndependent ResolutionMode
2021-04-29 17:51:28 +02:00
Ilya Kirillov
663c0d975d
FIR IDE: add cases for diagnostics traversal test
2021-04-29 17:51:27 +02:00
Ilya Kirillov
602be42b24
FIR IDE: fix lazy resolve for generated synthetic accessors
2021-04-29 17:51:27 +02:00
Nikolay Krasko
66683d2952
Unwrap both parts of light element in KtLightElementBase.isEquivalentTo
...
Even if origins are same, wrapped light elements are not equivalent.
Revealed by running bunch of JavaAgainstKotlinBinariesCheckerTestGenerated
tests.
com.intellij.testFramework.LoggedErrorProcessor$TestLoggerAssertionError: Non-idempotent computation:
it returns different results when invoked multiple times or on different threads:
KtLightMethodForDecompiledDeclaration of KtLightClassForDecompiledDeclaration of PsiFile:A.class != KtLightMethodForDecompiledDeclaration of KtLightClassForDecompiledDeclaration of PsiFile:A.class
2021-04-29 18:20:38 +03:00
Andrey Zinovyev
c8a81911c0
[lombok] Add message about experimental status of the plugin
2021-04-29 18:05:27 +03:00
Ivan Gavrilovic
f0199d7277
[Gradle] Simplify Parcelize Gradle plugin
...
Do not iterate over all configurations, just
add the dependency to the compile and runtime classpath.
2021-04-29 17:26:36 +03:00
Ilmir Usmanov
cb89bd0e13
Generate SuspendFunction marker interface if supertype is suspend
...
Otherwise, is/as checks will not work.
#KT-18707
2021-04-29 17:11:31 +03:00
Margarita Bobova
5d296a01c2
Add changelog for 1.4.31 and 1.4.32
2021-04-29 16:13:13 +03:00
Dmitriy Novozhilov
dbaaf081d7
Fix warning in Kotlin/Native build
2021-04-29 16:07:24 +03:00
Dmitriy Novozhilov
df51856e65
Advance bootstrap to 1.5.20-dev-5753
2021-04-29 16:07:22 +03:00
Mikhail Glukhikh
8147a88353
Cleanup: OverrideResolver.kt
2021-04-29 15:24:57 +03:00
Mikhail Glukhikh
cc05d91bda
FE 1.0: add deprecation ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED_WARNING
...
#KT-45508 Fixed
2021-04-29 15:24:49 +03:00
Svyatoslav Scherbina
59b5475350
Fix WITH_COROUTINES tests compilation on Native after 5617d83c
2021-04-29 11:16:02 +00:00
Steven Schäfer
84d78035e4
JVM IR: Avoid double mangling of function reference invoke methods
2021-04-29 13:10:43 +02:00
Alexander Udalov
276ffd5a4b
JVM IR: fix ::class reference and type mapping for scripts
...
#KT-46284 Fixed
2021-04-29 00:33:34 +03:00
Alexander Udalov
d10f734594
Fix warnings after making getKotlinPluginVersion non-null
...
See 4cb6303fa8 .
2021-04-29 00:18:07 +03:00
Ilya Kirillov
7149d08995
FIR IDE: resolve supertypes before retrieving them
2021-04-28 22:11:05 +03:00
Ilya Kirillov
cccf9b7d54
FIR IDE: add JVM checkers
2021-04-28 17:57:45 +02:00
Ilya Kirillov
81a7271009
FIR: Decouple AbstractDiagnosticCollectorComponent and AbstractDiagnosticCollector
2021-04-28 17:57:45 +02:00
Nikolay Krasko
e43835c9f5
Bump konanVersion: 1.5.30
2021-04-28 17:58:40 +03:00
Ivan Kochurkin
525cc6df97
[FIR] Implement MANY_LAMBDA_EXPRESSION_ARGUMENTS diagnostics, fix tests
2021-04-28 16:21:48 +03:00
Udi Cohen
b8002cb54f
[Kapt] Support dumping processors stats to a file
...
Using the option -Kapt-dump-processor-timings
2021-04-28 11:48:19 +03:00
sebastian.sellmair
beba85a848
[Commonizer] Calculate 'commonModuleNames' in hierarchical context
...
^KT-46330 Verification Pending
2021-04-28 02:03:20 +03:00
Nikolay Krasko
f7fdffefd6
Add an explicit dependency on dist for UAST tests
2021-04-27 22:00:18 +03:00
Dmitry Petrov
b34e2c1474
JVM_IR KT-36646 fuze primitive equality with safe call
2021-04-27 19:41:31 +03:00
Dmitry Petrov
72849a3dc3
JVM_IR update test for KT-36637
2021-04-27 19:41:29 +03:00
Dmitry Petrov
bdf914e8d5
JVM_IR use static 'hashCode' for boxed primitives on JVM 1.8+
2021-04-27 19:41:28 +03:00
Dmitriy Novozhilov
07b15f9de6
[FIR] Support effective visibility with @PublishedApi
...
#KT-46270 Fixed
2021-04-27 18:39:10 +03:00
Dmitriy Novozhilov
32c3f85679
[FIR] Add inline checker for bodies of inline functions
...
This checker doesn't support `@PublishedAPI` yet, so some BB tests for it
were muted. #KT-46270
2021-04-27 18:39:09 +03:00
Dmitriy Novozhilov
7e052c1eb1
[FIR] Fix suppressing diagnostics for some expressions
2021-04-27 18:39:07 +03:00
Dmitriy Novozhilov
2a08923c51
[FIR] Add more utilities for builtin functional types
2021-04-27 18:39:06 +03:00
Dmitriy Novozhilov
8925b8c922
[FIR] Fix leaking mutable map type of resolved argument mapping
2021-04-27 18:39:05 +03:00
Dmitriy Novozhilov
1afb844e1a
[FIR] Fix FirExpressionWithSmartcastImpl.acceptChildren
2021-04-27 18:39:03 +03:00
Dmitriy Novozhilov
12331cb10c
[FIR] Build resolved declaration status for all non-raw declarations
2021-04-27 18:39:02 +03:00
Ivan Kochurkin
d54808e33f
[FIR] Implement CREATING_AN_INSTANCE_OF_ABSTRACT_CLASS diagnostics, fix tests
2021-04-27 18:27:39 +03:00
Alexander Likhachev
f2f2df90aa
[Gradle] Prevent early resolve of compiler classpath
...
#KT-45834 Fixed
2021-04-27 18:21:19 +03:00
Dmitry Petrov
660208740e
PSI2IR KT-44013 WA: function interface constructor call accepted by FE
2021-04-27 17:35:37 +03:00
Ivan Kochurkin
704b5a0e13
[FIR] Implement UNDERSCORE_IS_RESERVED, UNDERSCORE_USAGE_WITHOUT_BACKTICKS diagnostics (lighttree)
2021-04-27 17:03:53 +03:00
Ivan Kochurkin
ea2d9f7c0c
[FIR] Implement UNDERSCORE_IS_RESERVED, UNDERSCORE_USAGE_WITHOUT_BACKTICKS diagnostics (psi only)
2021-04-27 17:03:52 +03:00
Sergey Bogolepov
cc4adb798f
Add cacheable targets for macos_arm64 host.
2021-04-27 13:47:20 +00:00