Commit Graph

38039 Commits

Author SHA1 Message Date
Tianyu Geng f217bb94de Use more consistent names for inheritors of BooleanIsMissing 2021-11-04 23:04:35 +01:00
Tianyu Geng 2c2851af6e Analysis API: add test covering get missing when branches
Also fix FIR implementation to generate boolean branches in the same
order as FE1.0.
2021-11-04 23:04:35 +01:00
Tianyu Geng 8ba2e4d221 FIR: move JavaAnnotationMapper.javaToKotlinNameMap to common
so that FIR IDE logic can reference it
2021-11-04 20:52:50 +01:00
Nikolay Lunyak 4a3a621196 [FIR] Add isVisible check to resolveRootPartOfQualifier 2021-11-04 15:52:11 +00:00
Tianyu Geng 7de0937031 FIR IDE: get unstable smartcast from FE1.0-based analysis API
Note that the current FE1.0 implementation still has some limitations

1. only references used as receiver are being considered for smartcast.
2. Somehow the smartcast information is not retained if the for generic
typed receivers. See multiSmartcastAsReceiver_stable.descriptors.txt
2021-11-04 16:00:37 +01:00
Igor Laevsky 0915dac1f9 [Wasm] Handle unsigned arrays in the vararg lowering 2021-11-03 18:50:06 +03:00
Igor Laevsky 8dc81b6c57 [Wasm][Temporary] Stubs for typeOf and ::class constructs 2021-11-03 16:23:01 +03:00
Igor Laevsky 43eeaa925f [Wasm] Add ability to choose flavor for the wasm launcher 2021-11-03 16:23:01 +03:00
Ilya Goncharov f22de86954 [JS IR] Possibility to use export for nested inside object
[JS IR] Fix test data after master rebase

[JS IR] Use stdlib's listOfNotNull

[JS IR] Possibility to use export for nested inside object

- Add tests for such cases

Merge-request: KT-MR-4883

^KT-49363 fixed
2021-11-03 09:56:22 +00:00
Pavel Kunyavskiy 948dc4f374 Fix annotation class modality in stubs
^KT-49428
2021-11-03 07:22:28 +00:00
Pavel Kunyavskiy c5f6c2acbd Better pre-1.6.20 compatibility fix for AnnotationImplementation
^KT-49428
2021-11-03 07:22:28 +00:00
Pavel Kunyavskiy d127815626 Refactor DataClassMembersGenerator.kt for better work with LazyIr
^KT-49428
2021-11-03 07:22:28 +00:00
Denis.Zharkov 360d67410d FIR: Fix overridability rule for Java declarations with different return type kinds
See the class at org/jmock/Expectations
public <T> T with(Matcher<T> matcher);
public boolean with(Matcher<Boolean> matcher);

When we extending such class it we start assuming
that fake generic override overrides both of the overridden that is wrong
from POV of Java and it fails at FIR ultimate build

NB: It's hard to write a test because such Expectation-like
class is impossible to write in pure Java
2021-11-02 19:08:28 +03:00
Denis.Zharkov 2e37ec6f0c FIR: Fix false-positive ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL on invokeExtension calls 2021-11-02 19:08:27 +03:00
Denis.Zharkov 37b5237e97 FIR: Fix type alias case for callable reference resolution type 2021-11-02 19:08:26 +03:00
Mads Ager 6622846bc1 [JVM IR] Do not put destructuring params or underscores in LVT.
Putting them in the local variable table means that the debugger
needs to have special handling for parameters with specific names.
That forces us to generate mangled names for these.

Instead of also implementing the name mangling for FIR, this
change gets rid of the parameters from the LVT instead.
2021-11-02 15:13:14 +03:00
Sergej Jaskiewicz 42c213d950 [JS IR] Explicitly convert Long values to String in string concatenation
#KT-39891 Fixed
2021-11-02 10:42:28 +00:00
Mads Ager e5bff514b6 FIR2IR: Fix line number differences in try block 2021-11-01 23:59:59 +03:00
Jinseong Jeon 5aa8e2d0d1 FIR LC: fix nullable annotation on return type of suspend function 2021-11-01 19:19:39 +01:00
Jinseong Jeon 5880d80d26 FIR LC: add support for inline class 2021-11-01 19:17:26 +01:00
Jinseong Jeon 95a3e81098 LC: remove unnecessary referential equality check and semicolon in inline class 2021-11-01 19:17:25 +01:00
Vladimir Dolzhenko eaff4c6026 Reset elementFinders on clearPackageCaches()
Clean up references on a plugin unload to avoid class leakage

Relates to #KT-49475

Merge-request: KT-MR-4891
2021-11-01 14:21:15 +00:00
Ilya Goncharov 2584f45b1c [JS IR] Refactor export model generator
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:24 +00:00
Ilya Goncharov 9fdb0a23cd [JS IR] Add literal and union types to TS generation, support them for enum
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:24 +00:00
Ilya Goncharov 4fa2fa6c26 [JS IR] Export name and ordinal for enum classes
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:24 +00:00
Ilya Goncharov 8e5fb50506 [JS IR] Fix diagnostic test on exportness of enum classes
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:23 +00:00
Ilya Goncharov 69f6dc059d [JS IR] Export type for enum class and not extends kotlin.Enum in TS
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:22 +00:00
Ilya Goncharov 9bd44e01f5 [JS IR] Export enum members like from usual classes
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:20 +00:00
Ilya Goncharov 42cb0e60d7 [JS IR] Process enum classes correctly in export model generator
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:20 +00:00
Ilya Goncharov 025e335b0f [JS IR] Add more granularity to find enum related declarations
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:20 +00:00
Mads Ager 41aa0a7c7f [FIR] Fix line number differences between psi2ir and fir2ir. 2021-11-01 15:43:13 +03:00
Mads Ager 8a8c38cc48 [FIR] Enable stepping tests. 2021-11-01 15:43:08 +03:00
Mikhael Bogdanov 2258e26799 Fix INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER diagnostic in IDE 2021-11-01 13:30:58 +01:00
Mikhael Bogdanov 40158d1ce6 Update -Xjvm-default description 2021-11-01 13:30:58 +01:00
Mikhael Bogdanov 00d344d92a Update INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER message 2021-11-01 13:30:57 +01:00
Mikhael Bogdanov afc149d460 JvmDefault. Allow non default inheritance with special flag
#KT-47000
2021-11-01 13:30:57 +01:00
Stanislav Erokhin c9e7c5d156 [LC] Mute Light tests about repeatable annotation
It isn't supported in Light classes, so we should mute it.
Quite similar change was done in 724194dec0
2021-11-01 10:38:09 +00:00
Stanislav Erokhin c591601274 [LC] IDE LightClasses testdata update
Unfortunately, the same testdata is used in IDE, so we should change
testdata in compiler repo and this will affect IDE repo.
This commit is the cherry-pick of commits from IDE repo:
- 4310d730795a53a Fix UltraLightClassLoadingTestGenerated.testEnums():
       check by Java file as ULC produces a different but better result
       Yan Zhulanow 3/17/21, 8:57 AM
- fbe3c8ba0841f2d4 Disable comparison test for
       UltraLightClassSanityTestGenerated.
       testAnnotatedPropertyWithSites() Yan Zhulanow 3/18/21, 1:33 PM
- 8fc53027343b5b53 Ignore known (for ages) broken behaviour
       of LC Vladimir Dolzhenko 3/19/21, 11:17 PM
2021-11-01 10:38:09 +00:00
Stanislav Erokhin f455141ade [ULC] Fix rendering for Foo.class in annotation value
Previously it was Foo::class, but it isn't correct because in java it
is Foo.class

P.s. Array<Foo> cannot be passed as annotation parameter
2021-11-01 10:38:09 +00:00
Stanislav Erokhin 65abc94411 [ULC] Unify modifiers for RepeatableAnnotationContainer
All the other annotation classes has abstract modifier.
All nested interfaces has static modifiers.

This commit is not so important for compiler, but it is matter for IDE,
because when we load classes in IDE via
KtLightClassForDecompiledDeclaration -- there are Abstract and Static
on the Container class
2021-11-01 10:38:08 +00:00
Victor Petukhov b7a9a7d922 Make backTicked.kt test more reasonable, though real invoking the passed lambda 2021-11-01 13:03:41 +03:00
Victor Petukhov 4118f3146b Use proper isPlaceholder check for psi type references 2021-11-01 13:03:41 +03:00
Victor Petukhov c8dea3db35 Add test for using underscored type in different positions 2021-11-01 13:03:40 +03:00
Victor Petukhov d1acb09add Report unsupported on using underscored type argument if the corresponding feature is disabled 2021-11-01 13:03:40 +03:00
Victor Petukhov 8a99aa4b42 [FIR] Don't build placeholder projection for types 2021-11-01 13:03:40 +03:00
Victor Petukhov b29aeaa596 [FIR] Implement annotation checker for underscored type arguments 2021-11-01 13:03:37 +03:00
Victor Petukhov 697ef03d57 [FIR] Make FirPlaceholderProjection having source element 2021-11-01 13:03:31 +03:00
Victor Petukhov 5047751b85 [FIR] Support underscored type arguments in the light tree 2021-11-01 12:26:31 +03:00
Victor Petukhov c9fbbe74ae [FIR] Use common isPlaceholder check for type arguments in RawFirBuilder 2021-11-01 12:25:55 +03:00
Victor Petukhov 5508d40371 Put using underscored type arguments under a feature 2021-11-01 12:25:45 +03:00