Commit Graph

97641 Commits

Author SHA1 Message Date
Yahor Berdnikau d3ecb9a75f Allow to reference Gradle API javadoc in generated documentation
^KT-55520 In Progress
2023-01-13 16:16:09 +00:00
Yahor Berdnikau 4de60879f0 Explicitly enable Dokka javadocs generation
Actually we don't need javadoc generation for our internal stuff like
':kotlin-gradle-plugin'. But ':kotlin-gradle-plugin-api' is a public api
 and should have properly generated javadocs.

^KT-55520 In Progress
2023-01-13 16:16:08 +00:00
Yahor Berdnikau 18e9496ea4 Update dokka to 1.7.20 version
^KT-55520 In Progress
2023-01-13 16:16:08 +00:00
Ilya Kirillov bba8064413 [FIR] mute lazy resolving contract check in a test where it was recently enabled 2023-01-13 15:57:06 +00:00
Ilya Kirillov 89f37816a8 [FIR] disable lazy resolve contract checks for FIR2IR 2023-01-13 15:57:06 +00:00
Ilya Kirillov a55b4a977b [FIR] refactoring: extract registration of lazy declaration resolve contract checking to a separate function in tests 2023-01-13 15:57:05 +00:00
Ilya Kirillov 747ab5fdb3 [FIR] get rid of FirFrontendFacadeForDiagnosticTests 2023-01-13 15:57:05 +00:00
Pavel Kirpichenkov 40f7360694 [cinterop] Deprecate CInteropSettings#getDependencyConfigurationName
KT-55908
KT-54974
2023-01-13 14:24:18 +00:00
Pavel Kirpichenkov 1d68012668 [MPP] CInterop import improvements
- Make cinterop header non-empty in a related test
- Remove ios target from the test to fix CI runs on linux hosts
- Use build dir repository instead of mavenLocal in the test
- Assert cinterop files from published projects
- Some minor refactorings

KT-54975
2023-01-13 14:24:17 +00:00
Pavel Kirpichenkov 9f15cc11a7 [MPP] Fix import of cinterops for non-leaf single target source sets
KT-54975
2023-01-13 14:24:17 +00:00
Pavel Kirpichenkov 7bae2303aa [MPP] Support import of project-to-project cinterop dependencies
KT-54975
2023-01-13 14:24:17 +00:00
Pavel Kirpichenkov 424d1e23fc [MPP] Improve displayed names for cinterop dependencies in import
KT-54974
2023-01-13 14:24:16 +00:00
Pavel Kirpichenkov 1c79e5a71a Don't create individual Gradle configurations for every cinterop
Common configuration serves two purposes:
* Dependencies are the same for all cinterops of a single compilation
and can therefore be resolved only once in the single configuration
* Compilations without cinterops should be able to receive cinterop
dependencies from other projects, the updated configuration can be used
for that

KT-54975
2023-01-13 14:24:16 +00:00
Pavel Kirpichenkov 0e195b3ad0 [MPP] Simplify test
KT-54975
2023-01-13 14:24:15 +00:00
Pavel Kirpichenkov 7308583388 [MPP] Fix propagation of cinterops from associate compilations and leafs
KT-54975
2023-01-13 14:24:15 +00:00
Pavel Kirpichenkov 8a83870306 [MPP] Declare import resolver dependencies on tasks
KT-54975
2023-01-13 14:24:15 +00:00
Pavel Kirpichenkov 8bdd9b3837 [MPP] Add IT for cinterop commonization
KT-54975
2023-01-13 14:24:14 +00:00
Pavel Kirpichenkov 7e2a7579e8 [MPP] Initial support for cinterop import with KGP resolvers
KT-54975
2023-01-13 14:24:14 +00:00
Aleksei.Glushko 20e80401b2 [K/N] Hide throwable constructor frames from stack traces.
Merge-request: KT-MR-8242
Merged-by: Alexey Glushko <aleksei.glushko@jetbrains.com>
2023-01-13 14:14:40 +00:00
Mikhail Glukhikh f20e5daa92 K2: fix property VS field resolve in anonymous class case
Related to KT-55017, KT-50082
2023-01-13 13:49:20 +00:00
Artem Kobzar 6a6308bef2 [K/JS] add miss StartProjection for the substitution inside lowerings ^KT-55852 Fixed 2023-01-13 13:28:42 +00:00
Mikhail Glukhikh 9542a8a07a Inherit LowLevelFirFrontendFacade from FirFrontendFacade to remove duplicates 2023-01-13 12:56:01 +00:00
Ivan Kochurkin c9a8f433fb [FIR2IR] Temporary fix of createIrEnumEntry
Check if a bound entry with the same signature is already exist
2023-01-13 12:56:01 +00:00
Mikhail Glukhikh ecc81098a6 Unbind FIR mangler from use-site session (by Simon Ogorodnik) 2023-01-13 12:56:01 +00:00
Mikhail Glukhikh 2237c964b5 ExpectActualCollector: pass parent isExpect through visitor to save perf 2023-01-13 12:56:00 +00:00
Mikhail Glukhikh a1f051acf1 Fir2IrLazyProperty: drop unnecessary accessor rebinding attempts 2023-01-13 12:56:00 +00:00
Mikhail Glukhikh 890e3d1c10 FIR2IR/MPP: use single SymbolTable during MPP compilation 2023-01-13 12:56:00 +00:00
Mikhail Glukhikh 33daca6809 FIR2IR: don't merge symbol tables as it's no more needed 2023-01-13 12:55:59 +00:00
Mikhail Glukhikh 6b7a5c9aa0 FIR2IR: don't create a new symbol table for conversion with dependents 2023-01-13 12:55:59 +00:00
Mikhail Glukhikh 52a3ba6aae FIR2IR: split local storage to separate class/callable storages 2023-01-13 12:55:58 +00:00
Ivan Kochurkin 31e2f0ba95 [FIR][Serialization] Set containingClassForStaticMemberAttr in generateConstructors 2023-01-13 12:55:58 +00:00
Ivan Kochurkin 8936220876 [IR] Implement IR actualizer and use it for K2 test and CLI scenario
Implement calculateExpectActualMap for Fir2IrComponents

^KT-51753 Fixed
2023-01-13 12:55:58 +00:00
Ivan Kochurkin 15ad9d134c [IR] Fix isProperExpect for IrTypeParameter 2023-01-13 12:55:57 +00:00
Ivan Kochurkin f17e1314f6 [FIR2IR] Implement tables merging in Fir2Ir classes and SymbolTable
- Pass dependent (usually common code) components to further FIR2IR converters
- Don't reinitialize builtin
2023-01-13 12:55:57 +00:00
Ivan Kochurkin 5d273ce839 [FIR & FIR2IR] Prepare test and CLI infrastructure to support MPP
- Move out getAnalyzerServices from FirFrontendFacade to TestSetupUtils
- Simplify DependencyListForCliModule. Now it takes BinaryModuleData as input
- FirOutArtifact contains several FirOutputArtifactPart
- Simplify FirFrontendFacade
2023-01-13 12:55:57 +00:00
Ivan Kochurkin 3029e47609 [FIR] Add BinaryModuleData 2023-01-13 12:55:56 +00:00
Ivan Kochurkin 80aafe5437 [FIR] FirModuleDescriptor: read platform from session.moduleData 2023-01-13 12:55:56 +00:00
Ivan Kochurkin 041f9c4700 [Testing] Simplify test functions 2023-01-13 12:55:56 +00:00
Ivan Kochurkin bcfdbaa6a6 [FIR] Use ModuleCompilerAnalyzedOutput instead of FirResult
Remove FirResult since it has the same semantics value
2023-01-13 12:55:55 +00:00
Kirill Rakhman 57dda3bf92 FIR: fix FirAnnotationChecker for FirProperty
This change is necessary for testTypeAliasExpansionRepeatedAnnotations
to work properly (otherwise we don't check a property at all). Before
current changes, the test worked thanks to accessors analysis which is
now OFF because of source kind check.
2023-01-13 12:54:18 +00:00
Kirill Rakhman 5a08d8da8d FIR: don't check annotations on returnTypeRefs that are not of real kind
This fixes an exception in FirAnnotationChecker where we tried to report
repeated annotations on implicit type refs that have no source.
2023-01-13 12:54:18 +00:00
Vladimir Sukharev c0961e91b8 [K2/N] KT-55598: Run special backend checks in K2/Native pipeline
Merge-request: KT-MR-8204
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-01-13 09:57:11 +00:00
Mads Ager 6b01886334 [K/N] Avoid string copying when setting up bridge debug info.
The name of the function was copied at least 4 times. This reduces
a 56 seconds codegen phase in a non-optimized build by 2 seconds.
2023-01-13 09:28:31 +00:00
Sebastian Sellmair ef1e4662f1 [Gradle] Remove unnecessary sourcesElementsPublishedConfiguration from external target API 2023-01-13 08:59:51 +00:00
Vladimir Sukharev 45de88abae [K/N][KT-39120] Build platform libraries with -fmodules
Merge-request: KT-MR-8175
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-01-13 07:33:42 +00:00
Alexander Udalov d85b23ebb9 Kapt+JVM_IR: do not attempt to transform error types in InsertImplicitCasts 2023-01-13 02:38:40 +01:00
Alexander Udalov 690fe7ac9a Kapt+JVM_IR: support error types in suspend functions
JVM IR generates the continuation parameter with the name `$completion`
instead of `continuation`.
2023-01-13 02:38:40 +01:00
Alexander Udalov 4f2551497d Kapt+JVM_IR: do not require KtFile for each generated class
In particular, JVM IR doesn't provide KtFile for a multifile facade in
JvmDeclarationOrigin (JVM backend provides KtFile of a random multifile
part). This led to multifile classes being completely ignored in the
JVM_IR version of kapt. Now they are generated correctly and the changed
test passes, but there's a _ir.txt expectation file because the order of
'foo' and 'bar' is different (which is not a problem).
2023-01-13 02:38:40 +01:00
Alexander Udalov 725c066c78 Kapt: dump declaration origins produced by backend
This will be useful in diagnosing behavior differences between JVM and
JVM_IR versions of kapt.
2023-01-13 02:38:40 +01:00
Alexander Udalov 6d0628900e Kapt+JVM_IR: support annotations with error types
This is a hack to implement KT-32596 in the JVM IR version of kapt.
Basically we allow psi2ir to generate annotations whose classifier is
error class, which happens when it's unresolved. Because there's no
physical IR for an error class, we create stub IR for it via
SyntheticDeclarationsGenerator in case we'll need it.

With this hack, annotations with unresolved classifiers magically
survive all the way until the codegen (with a minor change in
IrBasedDescriptors) where they are generated as
`@error.NonExistentClass`, which then gets corrected by the kapt's
"correct error types" mode as in all other cases of error types.
2023-01-13 02:38:40 +01:00