Dmitry Petrov
d976eeabf7
Refactor GenerationState creation
2017-11-29 12:17:06 +03:00
Nicolay Mitropolsky
07601b2ec4
KtLightAnnotationForSourceEntry: varargs handling improved (KT-21335, EA-107118)
2017-11-23 10:37:24 +03:00
Nicolay Mitropolsky
23344783a5
KtLightAnnotationForSourceEntry: made more verbose with errors in arrays in params (KT-21335, EA-107118)
2017-11-23 10:37:24 +03:00
Alexey Sedunov
17abce2811
Misc: Support light-classless classes in inheritors search
...
In particular, support line markers for expect-classes
and navigation to expect-classes from their base class
#KT-20329 Fixed
2017-10-24 15:43:51 +03:00
Nicolay Mitropolsky
d609579e55
FakeFileForLightClass tries to use ktFile.originalFile.virtualFile
2017-10-06 23:53:33 +03:00
Dmitry Jemerov
a4f5a1335a
Fix convering parents of annotations on primary constructor parameters
2017-10-06 20:51:02 +02:00
Dmitry Jemerov
85254838f6
Allow building UAST for in-memory virtual files
2017-10-06 14:43:22 +02:00
Nicolay Mitropolsky
b839081349
Support for collections literals in LightAnnotations (KT-20543)
2017-10-02 18:44:23 +03:00
Alexander Podkhalyuzin
3f8170d369
Clean idea files generated on the gradle import, add them to .gitignore
2017-09-19 23:58:27 +02:00
Ilya Chernikov
27968c8e13
Set proper jvmTarget for projects
2017-09-19 21:37:27 +02:00
Ilya Chernikov
deda50dbbb
Continue switching projects to improved dsl: sourceSets and test running
2017-09-19 21:37:26 +02:00
Ilya Chernikov
61dfb75e0e
Implement Gradle Kotlin DSL build
2017-09-19 21:37:06 +02:00
Vyacheslav Gerasimov
14742a6048
UAST: Fix getContainingFile, should return KtFile instead of FakeFileForLightClass
...
#KT-20170 Fixed
2017-09-16 13:02:08 +03:00
Stanislav Erokhin
4dc47c734c
Rename has[Header|Impl]Modifier() to has[Expect|Actual]Modifier()
2017-09-15 18:25:27 +03:00
Stanislav Erokhin
1ebfe1af43
Refactoring. Replace hasModifier(HEADER_KEYWORD) to hasHeaderModifier()
2017-09-15 18:25:13 +03:00
Alexander Udalov
b01a3eb747
Drop JvmFileClassesProvider and inline implementations
...
Both of its implementations called the same static function; inline
those and move related utilities to JvmFileClassUtil
2017-09-13 15:46:36 +03:00
Vyacheslav Gerasimov
89257e6397
Implement light classes for Kotlin scripts
2017-09-12 13:10:38 +03:00
Nicolay Mitropolsky
be4b86e3d9
KtLightAnnotationForSourceEntry fix for smart-pointers creating
...
`LightElementValue` made PsiCompiledElement to make it properly anchorable when creating smartpointers, when still use `kotlinOrigin.containingFile` for it to be able to `registerProblem` on such elements. (refs KT-18054)
2017-09-04 15:20:20 +03:00
Dmitry Jemerov
f74416a151
Cache the result of hasTopLevelCallables() for a KtFile
...
#KT-19885 Fixed
2017-09-04 13:21:03 +02:00
Dmitry Jemerov
839f197a1e
KtFile: J2K and cleanup
2017-09-04 13:21:03 +02:00
Nicolay Mitropolsky
108a40261b
KtLightAnnotationForSourceEntry fix for reading unnamed java-annotation parameter
2017-08-29 17:32:07 +03:00
Nicolay Mitropolsky
6953ae79e2
Fix for KtLightParameter and KtLightParameterList equality
2017-08-28 15:57:44 +03:00
Pavel V. Talanov
7fecec1141
lightAnnotations: remove several brittle assertions
...
Add some test cases with "red" code
2017-08-23 17:12:56 +03:00
Nicolay Mitropolsky
a6b446cc4f
Correct 'asJava' view of annotations as annotation arguments
...
Fix light elements for nested arrays/annotations inside annotations
#KT-18378 Fixed
2017-08-23 17:12:55 +03:00
Vyacheslav Gerasimov
c549c63100
Light Classes: Correctly handle annotations for property parameters
...
When getting annotations for KtLightParameter which is property parameter we should return annotations for parameter instead of property
#KT-19671 Fixed
2017-08-21 15:01:51 +03:00
Mikhail Glukhikh
3623f581b8
Eliminate a set of warnings, mostly nullability ones
2017-08-18 15:10:27 +03:00
Alexey Sedunov
53d12e6cf7
Method Hierarchy: Refactoring
...
- Do not rely on light methods and Java method hierarchy
- Support val/var parameters
- Support built-in member functions
#KT-14346 Fixed
2017-08-02 13:08:06 +03:00
Alexey Sedunov
0c2ea5d799
Light Classes: Fix equivalence check
...
Do not consider PsiClass equiavent to KtLightClass
if it's not a light class as well
#KT-16180 Fixed
2017-08-02 13:08:06 +03:00
Alexander Udalov
41ea0e8ef8
Introduce AnnotationDescriptor.fqName
...
Could be used instead of ".annotationClass.fqName" to avoid the unneeded
resolution of the annotation class descriptor
2017-07-20 13:25:38 +03:00
Nikolay Krasko
dfef1f4921
Add reference equality shortcut for equals() in light members
2017-07-17 14:50:59 +03:00
Nikolay Krasko
44ed903303
Implement equivalence of light members by origin when possible
...
Previous implementation worked through equality that used equality
of method stubs (see LightMemberOriginForCompiledMethod). But method
stubs for compiled element can be recreated when caches are outdated,
including weak reference cleaning (see ClsJavaStubByVirtualFileCache).
This could cause misbehave of find usages when java reference has an
outdated version of light element in resolution cache.
2017-07-17 14:50:59 +03:00
Mikhail Glukhikh
dfe2c16bc7
More cleanup: lift return / assignment out
2017-07-10 12:59:58 +03:00
Alexey Sedunov
28c5978d81
Light Classes: Fix AIOOBE on KtParameter -> PsiParameter conversion
...
EA-88058 Fixed
2017-07-04 19:37:54 +03:00
Pavel V. Talanov
46512f34e4
Fix 'Find symbol' and 'Go to declaration' when jar is used in many libs
...
SourceNavigationHelper takes into account all the module infos
that given virtual file is a part of
#KT-15093 Fixed
2017-06-15 13:35:40 +03:00
Pavel V. Talanov
2b153d5c10
Improve search for facade light class by kotlin file
...
LightClassUtil#getWrappingClass works for clashing facade fq names
#KT-17855 Fixed
2017-06-07 11:19:23 +03:00
Pavel V. Talanov
19db4304bd
Use clsDelegate to calculate hasModifierProperty("final") for light psi
...
AllOpen plugin can make some changes and we don't have the tools to make
correct decision based on psi
#KT-17857 Fixed
2017-06-06 17:11:18 +03:00
Pavel V. Talanov
f3f2379e5a
KtLightMemberModifierList:hasExplicitModifier("default") returns false
...
#KT-18070 Fixed
2017-06-06 17:11:17 +03:00
Alexander Udalov
7febd846e8
Export 'intellij-core' in module 'frontend'
...
Remove intellij-core from dependencies of modules which already depend
on frontend or any module that exports frontend (such as frontend.java)
2017-06-06 14:29:26 +03:00
Pavel V. Talanov
798c80ed07
Use wrappers around java.util.* to emulate kotlin.collection.* behaviour
...
Backend: If kotlin class extends kotlin.collection.List
write it as it's super interface (light class mode only)
IDE: Provide wrapper classes to java resolve
that try to emulate backend behaviour
For example if kotlin class implements kotlin.collections.Map,
we provide a superinterface that has abstract 'getEntries' method
and 'entrySet' method that is considered default.
In reality all those methods are generated in the class itself.
In IDE supporting this case without hacks is not feasible performance-wise
since kotlin.collection.* may not be an immediate supertype and we need
to compute all supertypes just to calculate own methods of the class
2017-05-16 22:01:03 +03:00
Pavel V. Talanov
40561dabed
J2K JavaToKotlinClassMap
2017-05-16 22:00:58 +03:00
Pavel V. Talanov
6701eb70fb
Light classes, minor: introduce cannotModify() utility
2017-05-16 22:00:57 +03:00
Dmitry Jemerov
9c4f897d31
Index properties defined in primary constructor
...
#KT-15029 Fixed
2017-05-10 14:27:28 +02:00
Pavel V. Talanov
59012c0551
FakeFileForLightClass is not physical
...
Fix Spring tests
2017-05-03 21:38:49 +03:00
Pavel V. Talanov
9e25dfdd93
KtLightModifierList extends KtLightElementBase
...
Fix getContainingFile always returning null
2017-05-03 21:38:48 +03:00
Pavel V. Talanov
956ace3463
Light classes: modifierList#findAnnotation does not trigger exact resolve
2017-05-02 15:40:22 +03:00
Pavel V. Talanov
55a0e138fc
Refactor: extract AnnotationDescriptor.annotationClass utility
2017-05-02 15:40:20 +03:00
Pavel V. Talanov
0571c62943
KtLightElements: make light annotations lazier
...
Allow to get annotation list and to invoke `findAnnotation` without building delegate
Introduce KtLightNullabilityAnnotation which holds nullability information and is built
before delegate is built
2017-05-02 15:40:17 +03:00
Pavel V. Talanov
03b68666e4
KtLightClassForSourceDeclaration: use psi based resolve to speedup isInheritor checks
2017-05-02 15:40:17 +03:00
Pavel V. Talanov
bdc4014ded
Refactor: Introduce KtLightElementBase
2017-05-02 15:40:16 +03:00
Pavel V. Talanov
901aa9c18b
PsiBasedClassResolver: use ImpreciseResolveResult instead of Boolean?
2017-05-02 15:40:14 +03:00