Commit Graph

85621 Commits

Author SHA1 Message Date
Roman Artemev 28ffcf1e81 [KLIB] Fix typo 2021-09-07 20:41:26 +03:00
Alexander Udalov 5dbf5b1d45 Cleanup type enhancement, remove ValueParameterData
`ValueParameterData.hasDefaultValue` is now always equal to the original
value parameter's `declaresDefaultValue` flag, so `ValueParameterData`
usages can be simplified to just `KotlinType`.
2021-09-07 19:05:48 +02:00
Alexander Udalov 7e43000d9b JVM: do not lose default parameter values during enhancement
The change in signatureEnhancement.kt in 432f581cb2 was incorrect.
Contrary to its name, the removed method `hasDefaultValueInAnnotation`
checked not only if the enhancement annotation has default value (which
is what the removed feature was about), but also if the parameter itself
declares default value. This was mistakenly substituted by just `false`
on line 234. The correct change is to use the `declaresDefaultValue`
flag of the original parameter.

It's kind of weird though that in case there's a nullability annotation
on the whole package (like in KT-48316) type enhancement is being done
on everything, including annotation constructors, whose parameter types
can't have any enhancement information. Maybe this should be improved
independently.

 #KT-48316 Fixed
2021-09-07 19:05:48 +02:00
Dmitry Petrov e28d4a1877 JVM_IR allow remapped variables in inplace arguments transformation 2021-09-07 19:46:03 +03:00
Svyatoslav Scherbina 09c8ca860a Fix output path for :kotlin-native:distEndorsedSources 2021-09-07 15:59:16 +00:00
sebastian.sellmair 1076654bd9 [Gradle] Shared Native compilations: Don't explicitly add stdlib dependency
Shared Native Compilations seem to already implicitly add a
dependency on the stdlib. Adding it again will result in a
'library included more than once' warning.

^KT-46257 Verification Pending
2021-09-07 14:17:40 +00:00
sebastian.sellmair 8fe176f605 [Gradle] CommonizerHierarchicalIT: Add assertions for ^KT-46257 2021-09-07 14:17:40 +00:00
Roman Golyshev 19d11f9149 [FIR IDE] Do not create KtPsiBasedSymbolPointer for generated members
For example, if a class has default constructor (`class Foo`),
both KtClassSymbol and KtConstructorSymbol will be pointing to the same
PSI - thus creating effectively the same `KtSymbolPointer`. Later
it will be impossible to deduce which symbol we had in mind

Currently, `Show Parameters Info` works incorrectly for
such generated declarations  because of that - it throws CCE while
trying to cast class symbol to function (constructor) symbol
2021-09-07 13:36:11 +00:00
Dmitry Gridin 8b5d6827c9 [ULC] fix compatibility with java analyzer for repeatable annotation
* imitate `getReferenceName` to provide interop with existed java analyzer [AnnotationsHighlightUtil.java:238](https://github.com/JetBrains/intellij-community/blob/ad7c664356b2f21af1fa204d5b7b014d8af10fd3/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java#L238)

^KTIJ-19318
2021-09-07 12:47:25 +00:00
Dmitry Gridin 11e71e4e27 [ULC] support repeatable annotation and container
^KTIJ-19318
2021-09-07 12:47:24 +00:00
sebastian.sellmair a3d60f8ed2 [Commonizer] Minor: Don't unnecessarily capture size as local property 2021-09-07 11:36:48 +00:00
sebastian.sellmair f3e55aeac0 [Commonizer] Rename type parameter from 'Context' to 'T'
NullableContextualSingleInvocationCommonizer:
Naming the type parameter 'Context' might provoke different/
misleading intuitions for many.

https://jetbrains.team/im/code/KFc0x1LxezP?message=BDpl60SJkVM&channel=2Ty4Ld4L0Aer

^KT-48567
2021-09-07 11:36:48 +00:00
sebastian.sellmair 2e053be703 [Commonizer] ReturnTypeCommonizer: Only allow covariant nullability for covariant types
The return type of any property with a setter can be considered invariant
and should enable covariant nullability commonization

^KT-48567
2021-09-07 11:36:47 +00:00
sebastian.sellmair 9e34382db5 [Commonizer] Implement TypeNullabilityCommonizer and ReturnTypeCommonizer
^KT-48567 Verification Pending
2021-09-07 11:36:47 +00:00
sebastian.sellmair b13f3599cf [Commonizer] Initial implementation for nullable return type commonization
^KT-48567
2021-09-07 11:36:46 +00:00
sebastian.sellmair f56419cbf8 [Commonizer] Implement ReturnTypeNullabilityCommonizationTest
^KT-48567
2021-09-07 11:36:46 +00:00
Dmitriy Novozhilov 661d89c67f [FIR] Fix diagnostic message rendering for OVERRIDE_DEPRECATION 2021-09-07 14:11:46 +03:00
Dmitriy Novozhilov 9f4abd8ff7 [FE 1.0] Fix diagnostic message rendering for OVERRIDE_DEPRECATION 2021-09-07 14:11:45 +03:00
Dmitriy Novozhilov 9844671ded [FIR] Add KDoc about thread safety rules of FirDeclarationAttributes 2021-09-07 12:38:02 +03:00
Dmitriy Novozhilov a13696072d [FIR-IDE] Properly calculate return type for fake overrides 2021-09-07 12:38:01 +03:00
Dmitriy Novozhilov 37a34e12d0 [FIR] Make Forced FakeOverrideTypeCalculator thread safe 2021-09-07 12:38:00 +03:00
Dmitriy Novozhilov 4f99140c2d [FIR] Split fake override storage to three different components 2021-09-07 12:38:00 +03:00
Dmitriy Novozhilov 9a8ad059d5 [FIR] Minor: rename firSession to session 2021-09-07 12:37:59 +03:00
Dmitriy Novozhilov c8bd6d3203 [FIR] Store SAM constructors in global session component 2021-09-07 12:37:58 +03:00
Dmitriy Novozhilov b832242c36 [FIR] Use NullableMap in FirSamResolver 2021-09-07 12:37:58 +03:00
Dmitriy Novozhilov 5bcd854bee [FIR] Store intersection overrides in global session component 2021-09-07 12:37:57 +03:00
Dmitriy Novozhilov 38a2af0c92 [FIR] Store substitution overrides in global session component 2021-09-07 12:37:56 +03:00
Igor Chevdar e67a78abaf [K/N][codegen] Fix for https://youtrack.jetbrains.com/issue/KT-48543
Sometimes an interface contains final methods, they shouldn't be in its itable
cause they can't be called virtually
2021-09-07 12:04:26 +05:00
Sergey Bogolepov 479e7a5169 [K/N] Fix KT-48566 by falling back to the old behavior
In 1.5.20 HostManager.host started to check host architecture and it
leads to regressing in case of os+arch combination that is not supported
by HostManager.
Before 1.5.20 HostManager.host was determined only by OS. It is
not correct, but Gradle plugin uses HostManager even if there are
no Native targets. We fallback to this behavior to workaround this
regression.
2021-09-07 04:42:01 +00:00
Georgy Bronnikov bf62e98a1a JVM_IR: protect LookupTracker use by a lock 2021-09-06 23:39:12 +03:00
Dmitry Petrov 860c80d210 JVM_IR add bytecode shape check to all relevant for-loop tests 2021-09-06 22:16:41 +03:00
Dmitry Petrov d9e4dec810 JVM_IR reuse loop variable as index variable should happen after LDL
We can't apply "reuse loop variable as index variable" transformation
before local declarations lowering, otherwise it will affect captured
loop variable behavior, resulting in KT-48626.

Since it's JVM-specific, move it to JvmOptimizationLowering.
2021-09-06 22:16:40 +03:00
Sergej Jaskiewicz f62ffeaa0a [JS, Frontend] Forbid @JsExporting inline/value classes
Previously the compiler would just crash.

#KT-46202 Fixed
2021-09-06 16:13:00 +03:00
Sergej Jaskiewicz 5eaea04bc8 [JS, Frontend] Fix a typo in an error message
The single apostrophe was eaten, resulting in the wrong
spelling "cant".
2021-09-06 16:13:00 +03:00
Sergej Jaskiewicz cb3d5f90e6 [JS IR] Export protected members too
#KT-47524 Fixed
#KT-47525 Fixed
2021-09-06 12:46:25 +00:00
Philipp Smorygo 6abd3bf589 Fix CocoaPodsIT 2021-09-06 12:32:25 +00:00
Roman Golyshev 90c88273c3 [FIR IDE] Refactor functions for qualifiers traversing in KtFirReferenceShortener
The code is more coherent when `qualifiedTypesWithSelf` and
`qualifiedExpressionsWithSelf` both do not contain unqualified psi
elements
2021-09-06 14:58:24 +03:00
Roman Golyshev 7a37a7b2a0 [FIR IDE] Refactor KtFirReferenceShortener::findClassifierElementsToShorten
Instead of filtering lambda, pass only qualified elements to the
function (because non-qualified elements cannot possibly be shortened)
2021-09-06 14:42:04 +03:00
pyos 9ee0d6b60a FE: don't use an experimental stdlib function
...for compatibility? idk.
2021-09-06 13:11:21 +03:00
pyos 0d78bcebca FE: rename an extension to avoid conflicts with FIR member 2021-09-06 13:11:20 +03:00
pyos 476513fe96 FIR: rename type parameter: Annotation -> TAnnotation 2021-09-06 13:11:18 +03:00
pyos c522543e44 FIR: mute a blackbox test that fails due to another case of #3747 2021-09-06 13:11:17 +03:00
pyos 9bb7a29baa FIR: disregard enhancements for warnings
Warnings are not implemented yet, so don't produce errors either.
2021-09-06 13:11:16 +03:00
pyos a475453a01 FIR: enable useCorrectedNullabilityForFlexibleTypeParameters
It's necessary for correct substitution of `T & Any` with `T = V..V?`.
2021-09-06 13:11:16 +03:00
pyos bbc476f44e FIR: in computeJvmDescriptor, convert type parameter bounds too
Note the sheer amount of TODOs, though - I'm honestly surprised that
function works at all.
2021-09-06 13:11:15 +03:00
pyos a2e2545e3f FIR: update loadJava tests 2021-09-06 13:11:14 +03:00
pyos 8163acb964 FIR: rearrange some stuff in Java type conversion code 2021-09-06 13:11:14 +03:00
pyos 090b90f62e FIR: load type qualifiers from module, package, and parent classes 2021-09-06 13:11:13 +03:00
pyos 24210aacc8 FIR: use JSR-305 state from command line flags 2021-09-06 13:11:13 +03:00
pyos bff4b8639b FIR: remove FirJavaEnhancementContext 2021-09-06 13:11:12 +03:00