Commit Graph

98079 Commits

Author SHA1 Message Date
Nikolay Lunyak 9be819087a [FIR] KT-54410: Report API_NOT_AVAILABLE for classifiers
Callable symbols with SinceKotlin are filtered out by a
resolution stage, but in K1 classifiers and property accessors
report API_NOT_AVAILABLE. K2 filters out properties with
unavailable accessors, but does nothing for classifiers.
This change fixes it.

^KT-54410 Fixed
2023-01-25 07:14:19 +00:00
Anna Kozlova fd52cc4224 [AA] support qualified type in incomplete code
^ KTIJ-24373
when resolving selector expr of a dot qualified expression,
parent qualified expression is resolved
see `KtFirCallResolver.getContainingDotQualifiedExpressionForSelectorExpression`,
Fir is filled with the data. Then,
during final mapping from Fir -> psi, one need to perform the opposite:
take `selectionExpression` to get the initial KtCallExpression
2023-01-24 20:41:19 +00:00
Alexander.Likhachev 92d39f0b1d [Gradle] Inverse K/JS build services declaration
It's done by hardcoding the task classes unlike to approach with other build services (with adding interfaces like Uses<blah-blah-service>), because the J/S services are subject to rework in a short time. This way earlier task initialization shouldn't cause problems.
#KT-56131 Fixed
2023-01-24 19:15:59 +00:00
Alexander.Likhachev 7638b95a31 [Gradle] Add integration tests for KT-56131 2023-01-24 19:15:58 +00:00
Sebastian Sellmair 6d660451b5 [Gradle] LazyResolvedConfiguration: Ensure lenient resolution of artifacts
^KT-56153 Verification Pending
2023-01-24 18:52:40 +00:00
Jinseong Jeon fc2da32eb6 [references] introduce a dummy reference resolve helper
...because the implementation of reference resolution helper in IDE is
not always available (e.g., Android Lint CLI).
2023-01-24 17:54:00 +01:00
Egor Kulikov a24593da04 [FIR] Make annotations arguments lazy in RawFirBuilder
Process compiler annotations on all top level declarations
2023-01-24 16:02:55 +00:00
Egor Kulikov c5f13c5e7a [FIR] Make annotations arguments lazy in RawFirBuilder
Add more tests with annotations with arguments
2023-01-24 16:02:54 +00:00
Egor Kulikov ce262b0fb8 [FIR] Make annotations arguments lazy in RawFirBuilder
Fix style and typo
2023-01-24 16:02:54 +00:00
Egor Kulikov 195ecad004 [FIR] Make annotations arguments lazy in RawFirBuilder
Sixth step for ^KT-52615
2023-01-24 16:02:53 +00:00
Sebastian Sellmair f15feb644b [Gradle] Ensure cinterop* configurations contain target/compilation attributes
^KT-56115 Verification Pending
2023-01-24 15:53:30 +00:00
Ivan Kochurkin bf145ddee8 Extract common buildKotlinMetadataLibrary
Use it in FirMetadataSerializer and K2MetadataKlibSerializer
2023-01-24 15:27:15 +00:00
Ivan Kochurkin 1dde34b610 Extract common AbstractMetadataSerializer
With inheritors: MetadataSerializer, K2MetadataKlibSerializer, FirMetadataSerializer
2023-01-24 15:27:14 +00:00
Ivan Kochurkin 8a8823e81a Extract CommonAnalysisResult and use it in K2MetadataKlibSerializer and MetadataSerializer 2023-01-24 15:27:14 +00:00
Ivan Kochurkin 44b7859356 [FIR] Implement FIR metadata serialization
Add FirMetadataSerializer

Add CLI metadata tests on FIR
2023-01-24 15:27:14 +00:00
Ivan Kochurkin 46b9e15101 [FIR] Rename firMultiplatformCompilationWithLightTreeWithoutErrors
to firMultiplatformCompilationWithPsiWithoutErrors

Use `-Xuse-fir-lt=false` since now lt is default
2023-01-24 15:27:13 +00:00
Ivan Kochurkin 04fc2bde96 [FIR] Extract resolveAndCheckFir to firUtils
Use it in compilerPipeline and FirKotlinToJvmBytecodeCompiler
2023-01-24 15:27:13 +00:00
Ivan Kochurkin 5f1ed56554 [FIR] Extract createFirLibraryListAndSession to cliCompilerUtils
Use it in compilerPipeline and FirKotlinToJvmBytecodeCompiler
2023-01-24 15:27:13 +00:00
Ivan Kochurkin 1edc9f0a1d [FIR] Introduce FirCommonSessionFactory 2023-01-24 15:27:12 +00:00
Ivan Kochurkin e22359cc10 [FIR] Add MetadataSymbolProvider
Extract common code from K1 to MetadataUtil
2023-01-24 15:27:12 +00:00
Ivan Kochurkin c103da98dd [FIR] Add missing dependencies to :compiler:fir:checkers:checkers.native 2023-01-24 15:27:12 +00:00
Ivan Kochurkin 3f68694b0f Move MetadataPartProvider to deserialization.common
To make it possible to use it in FIR compiler
2023-01-24 15:27:11 +00:00
Sergey Bogolepov 60900b72b7 [K/N] Fix compilation of metadata klibs 2023-01-24 15:26:06 +00:00
Svyatoslav Kuzmich 983140ca04 [Wasm] stdlib NFC: suppress unchecked cast 2023-01-24 16:02:48 +01:00
Sebastian Sellmair c5d929eee4 [Gradle] Update MppCInteropDependencyTransformationIT UP-TO-DATE requirements
KT-56115
2023-01-24 14:47:28 +00:00
Sebastian Sellmair 103fb39306 [Gradle] CInteropMetadataDependencyTransformationTask: Ignore project dependencies
Included builds will still resolve using a regular
ArtifactMetadataProvider (but using a ProjectComponentIdentifier).

Such dependencies shall not try to go through cinterop metadata
transformation. Right now commonized dependencies from
included builds will just not be visible/exported to the
consumer builds.

Using cinterop declarations inside the API surface will
not be enabled until more stability guarantees for cinterops can
be provided

^KT-56115 Verification Pending
2023-01-24 14:47:28 +00:00
Sebastian Sellmair d94a9411e0 [Gradle] MppCompositeBuildIT: Run also with cinterop commonization enabled
KT-56115
2023-01-24 14:47:28 +00:00
Svyatoslav Kuzmich feca26e481 [Wasm] stdlib NFC: remove experimentalPackageStub.kt
Common sources now include `kotlin.experimental` and this file is no longer needed.
2023-01-24 14:55:00 +01:00
Svyatoslav Kuzmich e1f72d60dc [Wasm] stdlib API: Mark primitives constructor properties as private
These are implementation detail and were not meant to be public
2023-01-24 14:55:00 +01:00
Svyatoslav Kuzmich 354b231ea2 [Wasm] stdlib API: Mark internal compareTo functions as internal
Default public visibility was a mistake.
They were not intended to be public.
2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich e109662cdc [Wasm] Enable warnings in stdlib and treat them as errors 2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich 72d9b8ddae [Wasm] stdlib NFC: Fix or suppress remaining warnings 2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich 238da4c793 [Wasm] stdlib NFC: Suppress cast warnings in org.w3c
Also fix dukat build and update copyright year in generated files.
2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich 7fed003531 [Wasm] stdlib: Remove unchecked cast in PrimitiveClasses::functionClass
This half-stub function is used for compatibility with Kotlin/JS
lowering and doesn't need full KClassImpl<Any> return type.
2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich dba5d401bb [Wasm] fdlibm NFC: Remove dead code in expm1
Fixes warning that value of y is never used before it is read.

Removed dead code is not present in FreeBSD codebase since at least 1994
https://github.com/freebsd/freebsd-src/blame/34ac629b40e68e5394fe0a27e47c73a875d9f8cb/lib/msun/src/s_expm1.c#L141
2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich d6a713ad39 [Wasm] fdlibm NFC: Remove dead code in __ieee754_pow
Fixes warnings.
i0 and i1 are not used in the original C code.
2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich 3acf371f8a [Wasm] fdlibm NFC: Replace division by zero with inf and NaN constants
Fixes warnings.
2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich 181e1023ed [Wasm] fdlibm NFC: Suppress name shadowing for "mutable parameters" 2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich 5faa430904 [Wasm] fdlibm NFC: Remove unnecessary variable initializers in
Fixes warnings.
These initializers were not in the original C code anyway.
2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich ffb8138ae2 [Wasm] stdlib NFC: Suppress warnings in _WasmArrays.kt 2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich 14cf0a0b3f [Wasm] stdlib NFC: Remove dead code in Number2String.kt
This fixes compiler warning
`w_exp` corresponds to unused field of `w` struct
in the original C code
2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich d0b25e5a90 [Wasm] stdlib NFC: Suppress warnings for @WasmPrimitiveConstructor 2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich 8973ba294e [Wasm] stdlib API: Mark all Double and Float companion values as const
Make it consistent with core/builtins and K/N runtime
2023-01-24 14:54:59 +01:00
Svyatoslav Kuzmich 6efeee2037 [Wasm] stdlib API: remove bitwise Byte and Short operations from builtins
They shadow kotlin.experimental extensions
2023-01-24 14:54:59 +01:00
Stanislav Ruban 5cb31c4874 KT-55822: Add diagnostics test showing that issue is fixed in K2
^KT-55822: Fixed Target versions: K2
2023-01-24 13:44:28 +00:00
Justin Paupore 16f14a21e2 [AA] Render reflection functional types as class types.
Render KFunctionN and KSuspendFunctionN by their class names, rather
than using arrow syntax. These types have additional functionality
beyond purely being able to invoke them (e.g. getting the name of the
referred function), so using arrow syntax throws away that functionality
and may cause breakages in the resulting code.
2023-01-24 14:39:55 +01:00
Justin Paupore cd61f545a8 [AA] Clean up typos in KtTypeRenderer. 2023-01-24 14:39:55 +01:00
Justin Paupore eccbc66581 [AA] Add implementation for annotationApplicableTargets.
Adds implementation and tests for the new
KtClassOrObjectSymbol.annotationApplicableTargets property on
KtSymbolInfoProvider. This implementation delegates to the canonical
implementation in AnnotationChecker for FE1.0, and to the implementation
in FirAnnotationHelpers for FIR.

This change also includes direct tests for annotationApplicableTargets,
and a fix for FirClassLikeSymbol.getAllowedAnnotationTargets in
FirAnnotationHelpers.
2023-01-24 14:39:55 +01:00
Justin Paupore 3e80433356 [AA] Add stub annotationApplicableTargets extension.
Introduce an extension method to retrieve the set of applicable targets
for an annotation, given the annotation class's symbol.

This extension on `KtSymbolInfoProvider` causes a large amount of churn
in test data files, so this change starts off by introducing the
property and always making it return null. A future change will
introduce the actual behavior change, and will include the testdata
changes for the few tests that actually return useful data for this
property.
2023-01-24 14:39:54 +01:00
Mikhail Glukhikh 41966a745e Enum entries: add new tests with language feature ON & fix checker 2023-01-24 12:46:00 +00:00