Commit Graph

91548 Commits

Author SHA1 Message Date
Dmitry Petrov 78be4f302a JVM prune exception edges in inliner-specific DFA 2022-03-04 06:00:21 +00:00
Ilmir Usmanov 254ada88d1 Minor. Add test with inline class inside inline class's init block 2022-03-04 05:23:23 +03:00
Ilya Kirillov 092550aaee [Symbol LC] fix invalid caching for FirLightClassBase
Previously, value created by FirLightClassesLazyCreator was never recalculated based on dependencies changes
2022-03-03 20:12:56 +03:00
Ilmir Usmanov f89588011e Make FunctionalArgumentInterpreter stateless
So, we can use fast basic interpreter.
2022-03-03 17:32:16 +03:00
Mikhail Glukhikh eb42a01926 Inject languageVersionSettings into VarianceChecker 2022-03-03 12:57:05 +00:00
Mikhail Glukhikh ebed224f82 FE 1.0: use TYPE_VARIANCE_CONFLICT deprecation factory 2022-03-03 12:57:04 +00:00
Mikhail Glukhikh 7781413a93 FE 1.0: report TYPE_VARIANCE_CONFLICT also on qualifier type arguments
#KT-51439 Fixed
2022-03-03 12:57:04 +00:00
Dmitry Petrov fdb01d96f0 JVM_IR JavaSamConversionEqualsHashCode 2022-03-03 09:01:42 +00:00
Jinseong Jeon 870cdfd226 AA: add an API to configure proj env w/o explicit KtFiles
We can retrieve source files from compiler configuration.
Then, we can search for corresponding KtFiles for them.
2022-03-02 21:11:54 +01:00
Jinseong Jeon 47b0e66ca1 AA: remove unnecessary source path retrieval/cache
Instead, use source module's contentScope
2022-03-02 21:11:54 +01:00
Jinseong Jeon a68fd25982 AA: relax the assertion about referenced ClassId and qualified access
If an import alias is involved, they could be not identical.
Since an import alias ends with a simple identifer, we can simply drop
the first segment of qualified access and try the assertion again.
2022-03-02 20:30:31 +01:00
Ilya Kirillov 7fbfb1bd95 Fix cooperative development setup for kt-master 2022-03-02 13:46:24 +01:00
Dmitry Petrov 8576265108 Enable KotlinFunInterfaceConstructorReference in LV 1.7 2022-03-02 13:12:08 +03:00
Yahor Berdnikau aca2e46e62 Fix failing kapt test
Dependency test is using was not available. Updated it to the latest
stable version.
2022-03-02 11:05:26 +01:00
Ilya Goncharov 8b34be9490 rra/ilgonmic/update-lock-files
[Gradle, JS] Update npm versions

[JS] Update package.json's and lock files

Merge-request: KT-MR-5852
Merged-by: Ilya Goncharov <Ilya.Goncharov@jetbrains.com>

^KT-51503 fixed
2022-03-01 10:24:56 +00:00
Pavel Kunyavskiy dae24ff6d1 [K/N] Support IrDefinitelyNotNullType in type erasure 2022-03-01 08:03:28 +00:00
Nikolay Krasko 0b4aea4103 Fix exhaustive when error in :ring:compileKotlinNative 2022-03-01 02:28:52 +03:00
Artem Kobzar ac542d4c01 feat(JS/IR isInterfaceImpl perf): improve isInterfaceImpl performance by memoize an result. 2022-02-28 20:28:10 +00:00
Vyacheslav Gerasimov f8f1b3fd41 Build: Remove allowUntrustedServer & allowInsecureProtocol
#KTI-791
2022-02-28 15:56:31 +03:00
Yahor Berdnikau cb474f9b43 Remove 'jdkHome' option from Gradle options
Toolchain feature is replaced it.

^KT-46541 Fixed
2022-02-28 10:08:50 +00:00
Anton Lakotka 3cc3bf2a6b [Gradle] JsCompilationDependenciesHolder should not implement HasKotlinDependencies through delegation
`HasKotlinDependencies::dependencies` methods is meant to read
``*ConfigurationName` properties in implementations.
Therefore, implementation through delegate isn't possible since
delegate *can't* read overrided properties, instead it sees its own.

^KT-51457 Verification Pending
2022-02-28 09:50:02 +00:00
Anton Lakotka bf11704a98 [Gradle] Add test for KT-51457
^KT-51457 In Progress
2022-02-28 09:50:01 +00:00
Aleksei.Cherepanov ee756638a0 Fix creation of temp file in case of bad parent dir for Gradle
newTmpFile can fail, if you pass non-existent path as temp parent directory or java.io.tmpdir is empty or invalid. Now we try to create non-existent dirs and provide more info if it also fails. Also fix error throwing in JPS part(46c0c4f9)

#KT-51374 Fixed
2022-02-28 08:50:02 +00:00
Dmitriy Novozhilov 4022918ea2 [FIR2IR] Properly generate arguments for annotation constructors calls in default values of annotation constructors 2022-02-28 11:42:35 +03:00
Dmitriy Novozhilov 18fc2802e5 [FIR] Make FirTypeParameter.containingDeclarationSymbol not null
Also fix initializing this property in all places
2022-02-28 11:42:34 +03:00
Dmitriy Novozhilov 35a2a6bcec [FIR] Store containingDeclarationSymbol for type parameters of substitution overrides 2022-02-28 11:42:33 +03:00
Pavel Kirpichenkov 1e925b5937 [MPP] Allow commonization of platform types in leaf targets
Costs little right now and is more robust for potential future uses of
platform types in native libraries or cinterops.

KT-41509
2022-02-28 10:59:44 +03:00
Pavel Kirpichenkov 867390b889 [MPP] Move integer names used by commonizer to its module
KT-41509
2022-02-28 10:59:42 +03:00
Pavel Kirpichenkov 91a0af2aa1 [MPP] Provide platform integers support library implicitly in KGP
KT-41509
2022-02-28 10:59:40 +03:00
Pavel Kirpichenkov f257297505 [MPP] Commonize to platform integers considering target's bit width
Commonized type should match the platform's `platform.posix.ssize_t`
type alias' width. The implementation hard-codes platform widths for
all the targets, this can be potentially changed to search for ssize_t
in dependencies and get width from its type.

Use real targets in platform int commonization tests.

KT-41509
2022-02-28 10:59:38 +03:00
Pavel Kirpichenkov 8f4d04dad2 [MPP] Add preliminary version of platform integer commonizer
Doesn't take target's size_t alias into account just yet

KT-41509
2022-02-28 10:59:36 +03:00
Pavel Kirpichenkov b8ee473107 [Commonizer] Improve error messages for tests 2022-02-28 10:59:34 +03:00
Dmitriy Novozhilov 324e4bf254 Revert "Build: Remove allowUntrustedServer & allowInsecureProtocol"
This revert is temporary and it should be returned after fix of problem
  with public TC configurations
2022-02-28 10:56:04 +03:00
Alexander Udalov 157db778fd Rework support of Iterator.iterator optimization in ForLoopsLowering
- Fix the predicate used for finding the member function `next`: check
  that there's no extension receiver parameter, don't filter out
  abstract functions.
- Do not copy iterator expression, instead change the type in all
  references to the iterator variable.
- Fix some style issues.

 #KT-47171 Fixed
2022-02-28 01:39:31 +01:00
Xin Wang 1b776bd5b6 JVM_IR: Specialize iterator if possible
fixes KT-47171
2022-02-28 01:39:31 +01:00
Roman Golyshev 8bcdc70adc FIR IDE: Add IDE tests for sample compiler plugin 2022-02-25 23:08:26 +03:00
Roman Golyshev fed08aaff5 FIR IDE: Consider COMPANION_GENERATION phase in lazy resolve 2022-02-25 23:08:26 +03:00
Roman Golyshev 6e649dd29c FIR IDE: Add a way to use test compiler plugin in FIR IDE tests
Compiler plugins can be enabled
by WITH_FIR_TEST_COMPILER_PLUGIN directive
2022-02-25 23:08:26 +03:00
Roman Golyshev ffcbc583d0 FIR: Split EnvironmentConfigurator to an interface and abstract class
It is needed to make it easier to write wrappers for configurators
2022-02-25 23:08:26 +03:00
Roman Golyshev 1a77643ad0 FIR IDE: Add static implementation of KotlinAnnotationsResolver 2022-02-25 23:08:26 +03:00
Roman Golyshev f700b87f6c FIR: Prevent registering compiler plugins twice 2022-02-25 23:08:25 +03:00
Roman Golyshev 62f0487efa FIR: Set resolve phase to BODY_RESOLVE for the generated declarations
In the future it should be checked that plugins can return only
`BODY_RESOLVE`d declarations
2022-02-25 23:08:25 +03:00
Roman Golyshev 765af5f18a FIR IDE: Register plugins-related session components in IDE session
Move registering CLI-specific plugin-related components to
`registerCliCompilerOnlyComponents`
2022-02-25 23:08:25 +03:00
Roman Golyshev 8d9d46dae3 FIR IDE: Lift extensions registration higher in session creation process
We want to do that before creating symbol providers
2022-02-25 23:08:25 +03:00
Roman Golyshev b1b99e1673 FIR IDE: Add the simplest support for PLUGIN KtDeclarationOrigin 2022-02-25 23:08:25 +03:00
Roman Golyshev 6d6a3fbe21 FIR IDE: Consider generated names in KtFirPackageScope
If scope doesn't return generated names from `getPossibleCallableNames`,
it's impossible to query them from the scope, since you have to know the
name of callable/classifier to query it
2022-02-25 23:08:25 +03:00
Roman Golyshev 13cc0ddf97 FIR: Implement FirIdePredicateBasedProvider 2022-02-25 23:08:25 +03:00
Roman Golyshev 08b6353431 FIR: Add IDE implementation for FirRegisteredPluginAnnotations
It works on `KotlinAnnotationsResolver`, which means that it uses
PSI indices to search for the annotations
2022-02-25 23:08:25 +03:00
Roman Golyshev 76707afc90 FIR: Add KotlinAnnotationsResolver service 2022-02-25 23:08:25 +03:00
Roman Golyshev 029331c23b FIR: Introduce AbstractFirRegisteredPluginAnnotations
It will be needed to implement an alternative implementation of this
service
2022-02-25 23:08:25 +03:00