Pavel V. Talanov
c73e58516b
Refactor LightClassDataProvider: drop LightClassDataProvider class
...
Move code to inheritors
Improve api to avoid getting empty file lists in random places
2017-03-15 20:55:37 +03:00
Pavel V. Talanov
feae5079ed
Light classes: refactor, introduce lazyPub util to reduce verbosity
2017-03-15 20:55:07 +03:00
Pavel V. Talanov
ba185d7616
LightClassDataProvider: refactor, extract class filters to separate classes
2017-03-15 20:55:05 +03:00
Pavel V. Talanov
48cae0e480
KtLightField/Method: Use equality in equivalence checks
...
Avoid computing delegate to determine equivalence
2017-03-15 20:55:03 +03:00
Pavel V. Talanov
fa58f1b4d7
KtLightMethod(Field): use dummyDelegate to determine modifier properties
2017-03-15 20:54:59 +03:00
Pavel V. Talanov
abf206a134
KtLightMethod(Field): do not use clsDelegate in hashCode && equality checks
2017-03-15 20:54:58 +03:00
Pavel V. Talanov
fee29c47c8
KtLightMethod: use dummy delegate to compute parameter count and isContructor
2017-03-15 20:54:56 +03:00
Pavel V. Talanov
3e7357a5d7
IDELightClassTest: provide tools to check laziness of light class construction
...
StubComputationTracker knows which context was used to construct light class
2017-03-15 20:54:55 +03:00
Pavel V. Talanov
daef8a0eed
Light classes in IDE: Make light class delegate construction a two step process
...
Step 0: Light class object is created, no delegates are computed
Step 1: constructs dummy delegate which can not be relied upon to know signature of any member
It can be used to construct light field and light method objects
(which can correctly respond to some queries) before constructing real delegate
Step 2:
Construct real delegate if dummy delegate is not enough to respond to a query
This speeds up multiple scenarios where getMethods() and getFields() are called on numerous classes
Dummy delegate's faster consruction is achieved by using specially setup dumb analysis instead of ide analysis
Introduce LazyLightClassDataHolder: which manages creation of Step 1 and Step 2 delegates
Introduce MemberIndex: keeping track of member creation order, helps matching light class delegates created in different contexts
KtLightMethod and Field: make use of dummy delegate
KtLightMethod no longer extends LightMethod since it requires eager delegate construction
KtLightMethod now implements PsiAnnotationMethod for convenience (ClsMethodImpl implements PsiAnnotationMethod)
2017-03-15 20:54:55 +03:00
Pavel V. Talanov
ed9e94c632
KtLightModifierListWithExplicitModifiers: fix equals
2017-03-15 20:53:59 +03:00
Pavel V. Talanov
d01aaeb65c
Refactor light classes: Delegate LightClassDataHolder construction to LightClassGenerationSupport
2017-03-15 20:53:58 +03:00
Pavel V. Talanov
00e84fb483
Light classes: Refactor construction
...
Introduce LightClassDataHolder: which now is reponsible for constructing clsDelegate
Move out light big chunk of delegate building logic out of LightClassDataProvider into LightClassBuilder
LightClassData only holds information about single class
2017-03-15 20:53:37 +03:00
Pavel V. Talanov
22fb9ec5e1
Refactor light classes: move light members creation to their respective classes
2017-03-15 20:52:51 +03:00
Pavel V. Talanov
15b063d236
J2K LightClassGenerationSupport: rename file
2017-03-15 20:52:50 +03:00
Pavel V. Talanov
dd2d9c1dc2
J2K LightClassGenerationSupport: convert code
2017-03-15 20:52:49 +03:00
Pavel V. Talanov
71161e218b
Refactor LightClassData: remove redundant entities
2017-03-15 20:52:48 +03:00
Pavel V. Talanov
1441aea2ea
Light classes: allow light classes for inner/nested classes to be build separately
...
Avoid analyzing/generating bytecode for outers
2017-03-15 20:51:22 +03:00
Mikhail Glukhikh
045a23ae10
Cleanup: apply "Convert lambda to reference"
2017-03-15 17:36:02 +03:00
Mikhail Glukhikh
b121bf8802
Cleanup: fix some compiler warnings (mostly deprecations, javaClass)
2017-03-15 17:35:31 +03:00
Mikhail Glukhikh
d0cc1635db
Cleanup: apply "Use synthetic property access syntax"
2017-03-15 16:13:40 +03:00
Vyacheslav Gerasimov
bad15249e7
Fixed exception in android lint
2017-02-03 18:06:05 +03:00
Dmitry Jemerov
1361d5e915
EA-85853 - (KT-13415) AIOOBE: LightClassUtilsKt.toPsiTypeParameters
2017-01-27 14:48:05 +01:00
Dmitry Jemerov
59e2645293
EA-82902 - IOOBE: KtLightAnnotation$LightExpressionValue.unwrapArray
2017-01-27 14:48:05 +01:00
Dmitry Jemerov
b987e37e82
Diagnostics for EA-86712
2017-01-27 12:47:41 +01:00
Stanislav Erokhin
59efedf610
Rename platform to header.
2016-12-13 18:00:00 +03:00
Dmitry Jemerov
7e92cf2af7
Don't create light classes for platform declarations
...
#KT-15137 Fixed
2016-12-12 20:47:45 +01:00
Dmitry Jemerov
d6cd1486c6
Implement supertype access methods in KtLightClassForFacade without delegate access (EA-92490 - ISE: KtLightClassForFacade.getClsDelegate)
2016-12-12 17:50:27 +01:00
Alexey Sedunov
1bde0e12fd
Rename: Fix exceptions on moving file with facade class to another package
...
#KT-14325 Fixed
2016-11-30 14:35:40 +03:00
Alexey Sedunov
9967d4c4e2
Move: Fix EA-1266148
2016-11-30 14:35:31 +03:00
Dmitry Jemerov
763782083c
Implement KtLightTypeParameter.isEquivalentTo() without referencing delegate (this is faster and more correct)
2016-11-23 18:29:25 +01:00
Dmitry Jemerov
c56a72d442
Retrieve virtual file for PsiFile via FileViewProvider, which always has a non-null vFile (EA-89047 - assert: LightClassDataProvider.getRepresentativeVirtualFile)
2016-11-23 18:29:23 +01:00
Dmitry Jemerov
89313b3495
Fix exception when companion object is on the top level of a file (EA-89388 - CCE: LightClassUtil$getWrappingClasses$.invoke)
2016-11-23 18:29:23 +01:00
Dmitry Jemerov
d803831548
A facade light class inherits only java.lang.Object (EA-91597 - NPE: KtLightClassForFacade.getClsDelegate)
2016-11-23 18:29:20 +01:00
Yan Zhulanow
c2ddd943f9
Lint: Update diagnostics because of the new Uast. Also, these diagnostics are from AS 2.2.
2016-11-01 19:36:31 +03:00
Simon Ogorodnik
3382ab3d9c
Fix for KT-14141: Go to Symbol shows Kotlin extensions from Java's point of view
2016-10-27 20:38:05 +03:00
Alexander Udalov
2f81d48f5e
Use ClassId instead of FqName in JavaToKotlinClassMap
...
Extract mapJavaToKotlin which returns ClassId and needs no KotlinBuiltIns
instance
2016-10-25 15:42:32 +03:00
Alexey Sedunov
394859afc5
Light Classes: Avoid empty scope on KtLightParameter
...
#KT-13882 Fixed
2016-10-18 16:48:09 +03:00
Dmitry Jemerov
ce0d81f670
to avoid running resolve under ClsTypeElement lock, return empty modifier list if we're currently calculating the return type (the modifier list is requested to apply type annotations, and we don't care about them anyway)
...
#KT-12966 Fixed
2016-10-10 12:48:51 +02:00
Dmitry Jemerov
e55c82d3f3
don't try to resolve declaration to descriptor if we don't have any annotations
2016-10-10 12:46:35 +02:00
Alexey Sedunov
3f6e60fb51
Call Hierarchy: Show Kotlin usages of Java methods
...
#KT-12398 Fixed
2016-10-05 11:32:43 +03:00
Dmitry Jemerov
d8b0c7aaec
Binding trace filtering: do not calculate diagnostics if no one is going to query them
2016-10-04 18:50:30 +02:00
Simon Ogorodnik
18feb8f622
Return Kotlin fields and methods through KotlinShortNameCache
...
#KT-12205 Fixed
2016-09-28 13:36:20 +02:00
Pavel V. Talanov
b275dacad8
Light classes: getOwnInnerClasses() filters out inner classes with null names
...
#KT-13927 Fixed
2016-09-26 19:51:57 +03:00
Yan Zhulanow
884e653490
Kapt: Add ability to get constant value from KtLightAnnotation
...
(cherry picked from commit 7180961)
2016-08-29 16:31:16 +03:00
Alexey Sedunov
fbd6edce92
Light Classes: Support property accessors with non-conventional names
...
#KT-13032 Fixed
2016-08-17 12:28:46 +03:00
Alexey Sedunov
ab7d48a34e
Light Classes: Do not compute annotations for light elements with invalid
...
origin (possible fix for KT-13199)
2016-08-10 11:45:40 +03:00
Pavel V. Talanov
30892e0154
KtLightClassForDecompiledDeclaration is now marked by KtLightClassMarker
...
Rename: KtJavaMirrorMarker -> KtLightClassMarker
Introduce code to be able to tell light classes from source and binaries apart in 'frontend.java'
2016-08-03 17:29:06 +03:00
Pavel V. Talanov
5600433baf
KtLightClassForSourceDeclaration.create(): check for enum entry earlier
2016-07-28 18:00:59 +03:00
Pavel V. Talanov
82a2b94490
LightClassDataProvider: FqName calculation is redundant now
2016-07-28 18:00:58 +03:00
Pavel V. Talanov
4ee0f7052f
StubClassBuilder: correctly calculate short name when building delegates for light classes
2016-07-28 18:00:56 +03:00