Igor Yakovlev
07863b61d8
Fix UL classes failing tests
...
UltraLightClassLoadingTestGenerated.testInferringAnonymousObjectTypes
UltraLightClassLoadingTestGenerated.testObjects
2020-02-10 23:35:47 +03:00
Igor Yakovlev
3ec671d727
Fix getMirror for kotlin decompiled file
...
Possibly fixed EA142049
2020-02-06 20:24:20 +03:00
Vladimir Dolzhenko
cf9ceb4e99
Add more diagnostic context to LightClassUtil#findClass
...
Relates to #EA-5389872
2020-02-03 00:00:45 +01:00
Igor Yakovlev
f7dfbbbfbd
Remove const keyword requirement from UL final fields initializers
2020-01-28 13:01:03 +03:00
Victor Petukhov
5c6e710013
Revert "Workaround an inliner problem upon which the compiler code itself stumbled ^KT-35856 Fixed"
...
This reverts commit 59175912
2020-01-24 16:41:22 +03:00
Igor Yakovlev
ac9c106a77
Fix of UL classes muted tests
...
Add visibility modifier to companion field
Const initializer is now getting for const properties only
Fixed tests:
UltraLightClassLoadingTestGenerated.testAnnotations
UltraLightClassLoadingTestGenerated.testInheritance
UltraLightClassLoadingTestGenerated.testProperties
UltraLightClassSanityTestGenerated.IdeRegression.testImplementingMutableSet
UltraLightClassSanityTestGenerated.IdeRegression.testOverridingFinalInternal_extra
UltraLightClassSanityTestGenerated.IdeRegression.testOverridingInternal
UltraLightClassSanityTestGenerated.IdeRegression.testOverridingInternal_extra
UltraLightClassSanityTestGenerated.IdeRegression.testOverridingProtected_extra
UltraLightFacadeClassTestGenerated.testProperties
UltraLightClassLoadingTestGenerated.testObjects
2020-01-21 03:26:09 +03:00
Alexander Udalov
621936e951
Do not generate Throws attribute for delegated members from Kotlin interfaces
...
#KT-31763 Fixed
#KT-35834
2020-01-16 12:43:09 +01:00
Victor Petukhov
5917591205
Workaround an inliner problem upon which the compiler code itself stumbled
...
^KT-35856 Fixed
2020-01-10 12:13:46 +03:00
Igor Yakovlev
4efab51751
Fix allopen call from UL methods
...
Fixed #KT-35577
2019-12-20 16:57:53 +03:00
Igor Yakovlev
2639ed2c48
Fix invalid equality for UL methods
...
Potentially fixed #KT-34796
2019-12-15 23:42:31 +03:00
Alexander Shustanov
c9cba34d67
KT-35454 Weird implementation of KtUltraLightFieldImpl.isEquivalentTo
2019-12-13 20:07:45 +03:00
Igor Yakovlev
6792d22c31
Fix minor bugs for UL methods and parameters representation
...
Remove INSTANCE field for local object declarations
Remove private suspend functions create from UL
Add correct extension function parameter name
Add support for setparam annotation modifier
2019-12-10 18:26:08 +03:00
Alexander Udalov
fd627603a0
Refactor CompilationErrorHandler
...
It only had one implementation THROW_EXCEPTION, inline it everywhere
with a call to a static method
2019-12-03 10:48:34 +01:00
Igor Yakovlev
0ff77bd3c5
Add UL support for const fields initializers
...
Fixed #KT-34081
2019-12-02 20:41:47 +03:00
Igor Yakovlev
8f9895e64e
Add external keyword support for UL
...
Fixed #KT-34923
2019-11-21 22:49:23 +03:00
Vladimir Dolzhenko
03c7f4bf00
Wrap KtClassOrObject.isLocal, KtFile.isScript with runReadAction in LightClasses
...
#EA-211576 Fixed
(cherry picked from commit 75a59d4bced714af51abd7e354bc873313b28051)
2019-10-26 21:10:38 +02:00
Vladimir Dolzhenko
00055fc20a
Wrap KtClassOrObject.isLocal, KtFile.isScript with runReadAction in LightClasses
...
#EA-211576 Fixed
(cherry picked from commit 75a59d4bced714af51abd7e354bc873313b28051)
2019-10-26 09:42:49 +02:00
Vladimir Dolzhenko
96768cbf2d
Clean up after acquire lock for several seconds to create LightClasses to workaround dead-lock over resolve
...
Relates to #KT-34279
2019-10-25 22:05:28 +02:00
Vladimir Dolzhenko
d16a1b14d8
Acquire lock for several seconds to create LightClasses to workaround dead-lock over resolve
...
Relates to #KT-34279
2019-10-24 17:32:36 +02:00
Igor Yakovlev
bc66834c3c
Fix UL classes descriptors leaks
...
UL classes built upon descriptors and UL support classes are saving a descriptors.
This could lead to descriptors leakage so we have to eliminate any fields with descriptor references.
Fixed #KT-34337
2019-10-21 22:04:49 +03:00
Igor Yakovlev
8c65a9a2aa
Move AllOpen UL support to separate extension
2019-10-18 23:22:48 +03:00
Igor Yakovlev
58b8d8868a
Remove fallbacking of UL (to LightClasses) by complexity checking
2019-10-18 23:22:47 +03:00
Igor Yakovlev
3f9bffcc5f
Move UL compiler plugin support to separate extension point
2019-10-18 23:22:47 +03:00
Igor Yakovlev
6ce37fff95
Add UL support for AllOpen compiler plugin
2019-10-18 23:22:47 +03:00
Igor Yakovlev
558a700f51
Add UL support for ParcelableCodegenExtension compiler plugin
2019-10-18 23:22:47 +03:00
Igor Yakovlev
110a6700e4
Add UL support for NoArg compiler plugin
2019-10-18 23:22:47 +03:00
Dmitry Gridin
1a8796c79a
LightClassDataHolder: shouldn't catch ControlFlowException
2019-10-14 21:45:10 +07:00
Dmitry Gridin
7c1f2e8735
LightClassDataHolder: cleanup code
2019-10-14 21:45:10 +07:00
Mikhail Zarechenskiy
71cb5e07db
Minor, don't recreate Set with the same values
2019-10-11 18:47:54 +03:00
Nikolay Krasko
8cda36ef15
Fix IdeLightClassTestGenerated tests for idea <= 191
2019-10-08 01:04:54 +03:00
Vyacheslav Gerasimov
3f1d3dab14
193: Request StubComputationTracker as component from project
...
Fixes assert:
com.intellij.testFramework.LoggedErrorProcessor$TestLoggerAssertionError: org.jetbrains.kotlin.asJava.builder.StubComputationTracker requested as a service, but it is a component - convert it to a service or change call to project.getComponent()
2019-10-04 17:04:54 +03:00
Igor Yakovlev
d5e4227a1d
Revert commit and additional workaround to diagnostics problem
...
Another workaround of testClassObjectCopiedFieldObject test fix
Revert "Fix testClassObjectCopiedFieldObject test"
This reverts commit 8def1f07aa .
2019-10-02 20:18:24 +03:00
Igor Yakovlev
8def1f07aa
Fix testClassObjectCopiedFieldObject test
...
Fix of the test
PsiCheckerTestGenerated$DuplicateJvmSignature$Fields.testClassObjectCopiedFieldObject
additionally fixed the bug with blinking this test example in IDEA with UL classes enabled.
The story:
Extra diagnostics could be requested for any KtClassOrObject but for _nested_ classes result may depend on outer class members signature collecting. So the the order of outer/nested diagnostic reporting takes matter.
So for nested classes/objects we have to gen members of outer classes.
2019-10-01 13:53:21 +03:00
Igor Yakovlev
cef6b71897
Fix ultraLightClass method argument types erasure
...
Fix IdeRegression.testImplementingMap test
2019-10-01 13:53:20 +03:00
Igor Yakovlev
f8bd3518dc
UL method and parameter Move&Rename refactoring
2019-09-23 17:30:15 +03:00
Igor Yakovlev
fc70fd05fc
Enable kotlin.collections support for UL classes
...
Removed restriction for classes derived from Kotlin collections
Added type erasure for java collection overrided methods
2019-09-23 17:30:15 +03:00
Vladimir Dolzhenko
c3265a8bf0
Decrease Light classes code generation in multithreaded cases by guarding KotlinClassInnerStuffCache, LightClassDataHolder.ForClass cache values calculation with lock
2019-09-13 15:10:09 +02:00
Vladimir Dolzhenko
d3d85d50ab
Rewrite KotlinClassInnerStuffCache into Kt, p2
2019-09-13 15:09:02 +02:00
Vladimir Dolzhenko
6146b0eb53
Rewrite KotlinClassInnerStuffCache into Kt, p1
2019-09-13 15:08:40 +02:00
Igor Yakovlev
8fa67f0478
Add correct modification tracking on UltraLight classes
...
Fixed #KT-32820
2019-09-10 14:38:10 +03:00
Nikolay Krasko
63f43d9b2e
Revert "Use lazySync instead of lazyPub to avoid raise on creation LightClasses"
...
The commit causes deadlock in 183 branch in KotlinLintTestGenerated test.
This reverts commit d6c54b84
2019-09-03 12:42:56 +03:00
Igor Yakovlev
79a603768a
UltraLight implementation for local and anonymous declarations
2019-09-02 17:42:50 +03:00
Vladimir Dolzhenko
d6c54b845b
Use lazySync instead of lazyPub to avoid raise on creation LightClasses
2019-09-02 15:30:08 +02:00
Igor Yakovlev
1aa8e28dd8
Add JvmOverloads to KtLightClassImpl
...
Added @JvmOverloads annotation to primary constructor for binary compatibility issues
2019-08-15 15:49:14 +03:00
Igor Yakovlev
fd5bf33861
Removed asserts for mirror files for java stubs on kt files
...
The behavior of this part of code is following:
1) We wrap the kotlin light class to the object that wraps the kt files into compiled (!) cls stub (notice, that most of the time it is a single file wrapper)
2) Platform wishes to get the mirror psi of this "compiled" stub work with text of it.
3) Platform request mirror element that asserted to be ok ONLY for multifiles stub.
4) It leads to EA-209577
There is no idea why so, but the exception is high-rated, so this assertion was deleted.
Fixed EA-209577
2019-08-14 20:12:55 +03:00
Nikolay Krasko
83e422fc3b
Workaround copied kotlin element happened to be outside the KtFile
...
Can be reproduced after revert with
IdeLightClassTestGenerated$Local.testDollarsInNameLocal test.
2019-08-01 18:21:13 +03:00
Nikolay Krasko
5614afed14
Fix over-caching content in light classes for local declarations (KT-32820)
...
Use combination of OOCB and file tracker for local classes.
#KT-32820 Fixed
2019-08-01 18:16:36 +03:00
Nikolay Krasko
ce3ad8f4da
Use kotlin specific OOCB tracker for light classes inner cache
...
ClassInnerStuffCache from the platform caches everything with platform
OUT_OF_CODE_BLOCK tracker.
2019-08-01 18:16:35 +03:00
Nicolay Mitropolsky
5f9660cd33
KtLightParameter introduced as interface
2019-07-24 10:11:45 +03:00
Nicolay Mitropolsky
50158e508a
org.jetbrains.kotlin.asJava.elements.LightParameter converted to Kotlin
...
to avoid clashes in `getMethod` with `KtLightParameter`
2019-07-24 10:11:44 +03:00