Svyatoslav Kuzmich
5e5712afbb
[JS IR] Make JsExport not fail on companion objects (KT-37829)
2020-10-08 14:07:50 +03:00
Victor Petukhov
9f716ba37c
Jspecify: Rename DefaultNotNull to DefaultNonNull
2020-10-08 14:00:10 +03:00
Victor Petukhov
c3bada44cf
Jspecify: Rename NullnessUnknown to NullnessUnspecified
2020-10-08 14:00:10 +03:00
Victor Petukhov
2685c7efce
Jspecify: Rename codeanalysis annotations to jspecify ones
2020-10-08 14:00:10 +03:00
Denis Zharkov
59bd7364ab
Enhance bounds for type parameters after loops disconnection
...
Otherwise behavior might change because enhancement may force computation
for other type parameters in cases like:
class A<X extends Y, Y extends X> {}
See the test:
org.jetbrains.kotlin.checkers.DiagnosticsTestGenerated.Tests.J_k#testRecursiveRawUpperBound3
2020-10-08 14:00:10 +03:00
Denis Zharkov
6661814e40
Do not enhance star projections for bounds of raw types
...
We have an invariant that their lower bound is always
SomeType<Any?> and their upper bound is SomeType<*>.
Ehancing the latter to SomeType<out Any> making
lower bound not being a subtype of upper bound that breaks contract
for flexible types (fails with exception)
2020-10-08 14:00:10 +03:00
Denis Zharkov
16b4a2c465
Do not enhance type parameter bounds if they contain a raw type
...
Otherwise enhancement algorithm starts forcing lazy mutually recursive
computations that leads to RECURSION_IN_SUPERTYPES in complex cases
2020-10-08 14:00:09 +03:00
Denis Zharkov
c1b34a83e9
Fix enhancement behavior in case of error-typed upper bounds
2020-10-08 14:00:09 +03:00
Denis Zharkov
2964d52640
Add test case for codeanalysis annotation
2020-10-08 14:00:09 +03:00
Denis Zharkov
dfb1cb8642
Minor. Rename UnknownNullness -> NullnessUnknown
2020-10-08 14:00:09 +03:00
Denis Zharkov
0b958c8ac5
Fix annotation name in test data to DefaultNullnessUnknown
2020-10-08 14:00:09 +03:00
Denis Zharkov
f3a490ee16
Support compiler flag -Xcodeanalysis-annotations
2020-10-08 14:00:09 +03:00
Denis Zharkov
c734bac676
Minor. Reformat JavaNullabilityChecker.kt
2020-10-08 14:00:08 +03:00
Denis Zharkov
ce2b7bded6
Minor. Reformat AbstractForeignAnnotationsTest.kt
2020-10-08 14:00:08 +03:00
Denis Zharkov
90a9ca6cb3
Minor. Rename flag in JvmAnalysisFlags: jsr305 -> javaTypeEnhancementState
2020-10-08 14:00:08 +03:00
Denis Zharkov
93d9301847
Minor. Extract JavaTypeEnhancementStateParser::parseJsr305State
2020-10-08 14:00:08 +03:00
Denis Zharkov
e7208f0c05
Rename Jsr305Parser -> JavaTypeEnhancementStateParser
2020-10-08 14:00:08 +03:00
Denis Zharkov
6c37574fce
Rename Jsr305State -> JavaTypeEnhancementState
...
Also, rename some of the properties
It's needed to store status for codeanalysis annotation in that class
2020-10-08 14:00:08 +03:00
Denis Zharkov
2f04a1505d
Support enhancement for unbounded wildcards from codeanalysis annotations
2020-10-08 14:00:07 +03:00
Denis Zharkov
392ef9aa2b
Support type arguments enhancement from type parameters bounds
...
Currently, only works for codeanalysis annotations because
type parameters bounds are enhanced only for them
2020-10-08 14:00:07 +03:00
Denis Zharkov
e9e05c53e1
Support enhancement for type parameter based types
...
Load them as non-flexible when a relevant type parameter has non-flexible upper bound
(Currently, it only works for case of codeanalysis annotations)
2020-10-08 14:00:07 +03:00
Denis Zharkov
fa2578c795
Prepare type enhancement for codeanalysis annotations
...
- Rename NullabilityQualifierWithApplicability -> JavaDefaultQualifiers
- Use JavaDefaultQualifiers instead of JavaTypeQualifiers for default qualifiers
This change is intended to make code more clear and to allow add some additional
parameters specific for default qualifiers needed for codeanalysis annotations
2020-10-08 14:00:07 +03:00
Denis Zharkov
e27501497b
Support codeanalysis annotations on type parameters bounds
2020-10-08 14:00:06 +03:00
Denis Zharkov
82d39dd86a
Add basic support for default codeanalysis annotations
2020-10-08 14:00:06 +03:00
Denis Zharkov
517cc84f4d
Add initial support for codeanalysis annotations
2020-10-08 14:00:06 +03:00
Vladimir Dolzhenko
165a147dd8
Improved IDE performance tests vega specs
2020-10-08 12:26:45 +02:00
Roman Golyshev
0682084ca3
[FIR Completion] Generate part of performance tests for FIR completion
2020-10-08 11:10:50 +03:00
Mikhail Glukhikh
beac3757bc
[IR text test] Minor: add forgotten .fir.txt file
2020-10-08 10:33:58 +03:00
Vladimir Dolzhenko
46535bbd9d
Add IDE performance tests vega specs
2020-10-08 00:07:17 +02:00
Dmitriy Dolovov
280fcb5c4b
IDE: IndexNotReadyException while creating new Kotlin file in Dumb mode
...
^KT-42518
2020-10-07 22:36:52 +03:00
Alexander Udalov
2f003bdcb5
Minor, add regression test
...
#KT-42527
2020-10-07 21:31:43 +02:00
pyos
af98720720
JVM_IR: move MoveOrCopyCompanionObjectFields down a bit
...
More specifically, it should be done *just before*
JvmPropertiesLowering, as walking the IR tree between them will result
in visiting the moved backing fields twice (once via the companion's
parent, once via the IrProperty).
Ideally, this group of 3 lowerings should be merged into 1 as they are
completely inseparable, but this is slightly harder to do properly.
#KT-42527 Fixed
2020-10-07 21:31:19 +02:00
pyos
dd1682510f
JVM_IR: generate accessors for inherited abstract members too
...
#KT-41468 Fixed
2020-10-07 21:23:18 +02:00
Alexander Udalov
68157f09fa
Minor, add temporary workaround for KT-42492
2020-10-07 19:33:40 +02:00
Roman Golyshev
7833698038
[FIR IDE] Fix idea-fir-performance-tests module references
2020-10-07 19:45:03 +03:00
Ilya Kirillov
efef18c2ca
FIR IDE: mute not passing highlighting test
2020-10-07 19:45:02 +03:00
Ilya Kirillov
96422ea3fe
FIR IDE: introduce highlighting performance test
2020-10-07 19:45:01 +03:00
Denis Zharkov
5cc12b49fc
Hide java.lang.CharSequence::isEmpty from Kotlin built-in class
...
Also, prohibit using it as a synthetic property
^KT-42467 In progress
2020-10-07 17:48:19 +03:00
Denis Zharkov
90044f9672
Use correct naming for additional built-in member lists
2020-10-07 17:48:19 +03:00
pyos
98088f739d
PSI2IR: do not generate when subjects multiple times
...
`in x` is represented as `<subject expression> in x` in psi, so
generating the entire call and then replacing the argument with a read
of a temporary results in redundant regenerations of the subject.
#KT-42054 Fixed
#KT-42455 Fixed
2020-10-07 17:22:25 +03:00
Alexander Udalov
e280416fe2
Minor, add regression test
2020-10-07 14:31:01 +02:00
pyos
8ef0fdf021
JVM_IR: remove two outdated comments
2020-10-07 14:30:36 +02:00
pyos
f7441813a9
JVM_IR: move SuspendLambdaLowering to a separate file
2020-10-07 14:30:36 +02:00
pyos
a6c62d3339
JVM_IR: do not inherit delegated property trackers
...
This is no longer needed now that lambdas are generated before
`$$delegatedProperties`.
2020-10-07 14:30:36 +02:00
pyos
05c856f1f7
JVM_IR: move SuspendLambdaLowering next to FunctionReferenceLowering
...
#KT-42253 Fixed
#KT-39434 Fixed
2020-10-07 14:30:36 +02:00
pyos
44e0bfe90b
JVM_IR: split AddContinuationLowering
...
One half handles suspend lambdas, the other - named functions.
2020-10-07 14:30:36 +02:00
pyos
4f171a9eb5
JVM_IR: move FunctionReference lowering before PropertyReference
...
so that `$$delegatedProperties` are generated in the lambdas' classes.
2020-10-07 14:30:36 +02:00
pyos
1190457759
JVM_IR: fix copying of receivers when unboxing inline class parameters
...
If an extension receiver is copied into a normal parameter, this may
later cause default argument masks to be shifted.
2020-10-07 13:21:50 +02:00
pyos
adcbfc7b4c
IR: add an emptiness check to all unsigned until loops
...
Unlike signed integers, a larger unsigned type does not mean a lower
minimum value, so `x - 1` can overflow even if `x` is casted to a larger
type.
#KT-42186 Fixed
2020-10-07 12:53:00 +02:00
pyos
4a03006162
Generate min/max constants as non-const in ranges tests
...
in order to make them appear as unknown values to codegen.
2020-10-07 12:53:00 +02:00