Commit Graph

87184 Commits

Author SHA1 Message Date
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
pyos 6f4b5cc73a FIR: expect Java type parameter bounds to be converted first 2021-09-06 13:11:11 +03:00
pyos ba1fc81b96 FIR: remove extra layers of caching above JavaSymbolProvider
There needs to be exactly one postcompute-aware cache in order to avoid
breaking recursive calls to getClassLikeSymbolByFqName.
2021-09-06 13:11:10 +03:00
pyos 09c34eaa7b FIR: unmute some more blackbox tests 2021-09-06 13:11:09 +03:00
pyos 2847de10ac FIR: enhance Java super types 2021-09-06 13:11:09 +03:00
pyos 03304bce96 FIR: enhance Java type parameter bounds
This also fixes handling of self-recursive types.

TODO: fix jspecify/{strict,warn}Mode/Captured.fir.kt
2021-09-06 13:11:08 +03:00
pyos e2a48d3945 FIR: use frontend-independent Java type qualifier computation 2021-09-06 13:11:07 +03:00
pyos e385484994 FIR: when translating raw types, reuse computed upper bounds
Also, don't bother ensuring that the upper bound has the same tree size
as the lower bound; the new index computation can handle it when some
subtrees of the lower bound are replaced by star projections in the
upper bound.
2021-09-06 13:11:06 +03:00
pyos 4654bdb199 FIR: replace 3 flags in Java type conversion with 1 enum 2021-09-06 13:11:05 +03:00
pyos 74b3634e1f FIR: move Java type conversion functions to a separate file 2021-09-06 13:11:05 +03:00
pyos 9cb6b75665 FIR: remove a couple unused type enhancement abstractions 2021-09-06 13:11:04 +03:00
pyos 5704dffdbe FIR: attach annotations to Java-converted cone types 2021-09-06 13:11:03 +03:00
pyos 5355d04553 FIR: enhance in/out-variant type arguments 2021-09-06 13:11:03 +03:00
pyos 8e122397b0 FIR: fix type index computation during enhancement
1. in/out type parameters count;
2. star projections take up 1 space in the tree.
2021-09-06 13:11:02 +03:00
pyos 5fec9f34b1 FIR: revert a hack that allows overriding T!! with T
1. this should've been only done if the language feature for validating
    that is disabled;

 2. that feature probably won't matter by the time FIR is stable;

 3. it only worked because type enhancement of type arguments is broken
    anyway - a more correct hack would be to provide a custom
    ConeTypePreparator.
2021-09-06 13:11:01 +03:00
pyos c85329905c FE: remove ? enhancement code that is never used
Using `starProjectionType` to enhance `?` is pointless because
 1. we explicitly ignore nullability annotations for `?` below;
 2. mutability is irrelevant;
 3. `starProjectionType` never returns references to other type
    parameters due to how the type substitutor works.
2021-09-06 13:11:01 +03:00
pyos a8b09a2016 FE: extract FIR-reusable code from SignatureParts 2021-09-06 13:11:00 +03:00
pyos b31925e6c9 FE: slowly refactor extractQualifiersFromAnnotations 3 2021-09-06 13:10:59 +03:00
pyos 5c8d3180f7 FE: slowly refactor extractQualifiersFromAnnotations 2 2021-09-06 13:10:59 +03:00
pyos 9af8abb8b9 FE: slowly refactor extractQualifiersFromAnnotations 1
That code is convoluted, better take it slow to avoid accidentally
breaking (or fixing) anything.
2021-09-06 13:10:58 +03:00
pyos 8d39d155bb FE/FIR: extract common code for mutability qualifiers 2021-09-06 13:10:57 +03:00
pyos c753e547c6 FE/FIR: extract common code for type qualifier inheritance 2021-09-06 13:10:56 +03:00
pyos 19a9de32f8 FE: move SignatureParts out of SignatureEnhancement 2021-09-06 13:10:55 +03:00
pyos 56d37c8e1c FE: separate type enhancement and FunctionN@Java warnings 2021-09-06 13:10:55 +03:00
pyos f4f9b1b27b FE: refactor propagation of type qualifier defaults though arguments 2021-09-06 13:10:54 +03:00
pyos e0d0bf9ede FIR/FE: extract common code for type qualifier defaults 2021-09-06 13:10:54 +03:00
pyos 8bf5e86788 FIR/FE: extract common code for handling known nullability annotations 2021-09-06 13:10:53 +03:00
pyos 9349d4b0d2 FIR/FE: extract common AnnotationTypeQualifierResolver code
TODO: extract the equivalent code that uses it...
2021-09-06 13:10:52 +03:00
pyos 29a240b261 FE: refactor AnnotationTypeQualifierResolver
Preparing for commonization with FIR
2021-09-06 13:10:51 +03:00
Sergey Bogolepov ae2c8a3540 [K/N] Fix KT-48613 2021-09-06 09:58:34 +00:00
Dmitry Savvinov d6cb96aa24 Wire proper KotlinTypeRefiner into ClassicTypeSystemCotextForCS
^KT-48589 Fixed
2021-09-06 12:06:26 +03:00
Svyatoslav Scherbina 9e50f40586 Use SYNTHETIC_OFFSET for constructors generated by noarg IR plugin
This should fix debug information on Native.
2021-09-06 07:32:01 +00:00
Abduqodiri Qurbonzoda 97eb28144f Introduce Common readln() and readlnOrNull() top-level functions #KT-48456 2021-09-05 15:31:11 +00:00
Tianyu Geng 14b66872b5 FIR IDE: hoist up API to get Java getter/setter name of a property...
and expose API to get the getter and setter symbols for synthetic Java
properties.
2021-09-05 11:18:58 +03:00
Roman Golyshev bb3f55dec2 [FIR IDE] Improve handling aliased types in KtFirImportOptimizer 2021-09-03 22:40:37 +03:00
Alexander Udalov a06fc20680 JVM IR: erase parameter default value when copying it to bridge
#KT-48391 Fixed
2021-09-03 15:00:44 +02:00
Dmitry Petrov bcafece28e Minor: update testData 2021-09-03 15:54:19 +03:00
pyos b1a8e8c7e6 JVM_IR: do not generate accessors for intrinsics 2021-09-03 15:54:19 +03:00