Commit Graph

203 Commits

Author SHA1 Message Date
Nicolay Mitropolsky 3bfa5c4706 Uast: parsing primary constructors superCalls (KT-21409) 2017-11-30 20:08:16 +03:00
Nicolay Mitropolsky fab8187574 UAST: Complex test data moved to separate file (KT-20990) 2017-11-06 19:59:50 +03:00
Nicolay Mitropolsky 9730d50e10 UAST: yet another fight with string literals in string literals (KT-20990) 2017-11-06 19:59:50 +03:00
Nicolay Mitropolsky a11cf253df UAST: correct processing of string literals in string literals (KT-20990) 2017-10-30 11:29:51 +03:00
nickl 6a659f33b5 UastKotlinPsiVariable psiParent made lazy to eliminate recursion when building UAST parents 2017-10-20 19:46:49 +03:00
xiexed 5c2962e195 UAST properly handles string "when conditions" in lazy parent (KT-20709) (#1338) 2017-10-11 15:16:15 +02:00
Dmitry Jemerov 703d053157 Additional fixes for consistent parent conversion 2017-10-06 20:51:04 +02:00
Dmitry Jemerov a4f5a1335a Fix convering parents of annotations on primary constructor parameters 2017-10-06 20:51:02 +02:00
Dmitry Jemerov 56168b4a09 Fix destructuring declaration test 2017-10-06 20:51:02 +02:00
Dmitry Jemerov c98c3a7033 Work in progress on consistent UAST structure 2017-10-06 20:51:00 +02:00
Dmitry Jemerov b638febc41 Fix conversion of destructuring declarations 2017-10-06 20:51:00 +02:00
Dmitry Jemerov 40daeb13d1 Evaluate parents of UAST elements lazily
Also add tests for UAST consistency in various cases
2017-10-06 20:51:00 +02:00
Vyacheslav Gerasimov bba2d27e82 UAST: Fix getType and getText for UastKotlinPsiVariable 2017-09-16 13:21:44 +03:00
Vyacheslav Gerasimov b6c32edc43 Implement Kotlin Script support in UAST
#KT-18353 Fixed
2017-09-12 13:10:38 +03:00
Vyacheslav Gerasimov 56a075eab6 UAST: Fix annotation arguments processing
multiple unnamed arguments represented as value named expression with array initializer
 call kind for array in annotation argument should be "array initializer" instead of "method call"

 #KT-16600 Fixed Target Versions 1.1.5
2017-09-01 13:31:50 +03:00
Vyacheslav Gerasimov 2e1edaf3d4 Uast: Fix getExpressionType for elvis expression
#KT-18997 Fixed Target Versions 1.1.5
2017-08-23 13:18:49 +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
Vyacheslav Gerasimov 4cf2bf6ca5 UAST: Implement getFunctionalInterfaceType for KotlinULambdaExpression 2017-08-14 15:41:40 +03:00
Vyacheslav Gerasimov 915f47133b UAST: Fix KotlinUMethod annotation handling, properly handle use site targets
#KT-16834 Fixed
 #KT-18893 Fixed
2017-08-09 15:34:34 +03:00
Vyacheslav Gerasimov 643e3587cc Kotlin UAST should visit property delegate expression
#KT-15164 Fixed
2017-06-06 20:47:01 +03:00
Mikhail Glukhikh d185adfedd Fix UAST test 2017-05-16 16:43:29 +03:00
Dmitry Jemerov 49a211b3cd Ensure that UElement.nameIdentifier.containingFile is a real file
This is needed to report inspection problems on UAST elements.
2017-04-20 11:02:56 +02:00
Dmitry Jemerov 03cef30717 Correctly honor expected type when converting string templates to UAST
#KT-17315 Fixed
 #KT-17316 Fixed
2017-04-19 11:46:13 +02:00
Vyacheslav Gerasimov 107879a78a Implement getTypeElement for UastKotlinPsiVariable
#KT-16849 Fixed
2017-04-10 12:40:33 +03:00
Pavel V. Talanov 4f701285b1 Light class builder: do not generate methods delegating to DefaultImpls in kotlin classes
Class APIs from java point of view stays the same so we can avoid generating those methods
Otherwise we have to calculate all supertypes when getMethods() is called,
    which imposes severe performance penalties
We have to pretend these methods are not 'abstract' (also we consider them 'default' for safety)
    so java highlighting does not report "class should be abstract" for all inheritors
We have to manually report "class should be abstract" on some of the java inheritors,
    specifically those that are implementing interfaces directly
	    as opposed to extending kotlin classes implementing those interfaces
2017-04-09 15:09:01 +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
Vyacheslav Gerasimov b8563f7fcf Fix KotlinUastTypesTest.testCycleInTypeParameters 2017-03-15 00:20:40 +03:00
Vyacheslav Gerasimov 830bf62d94 Fix SOE from UAST in containsLocalType
containsLocalType now properly handles start projections
#KT-16680 Fixed
2017-03-10 17:30:21 +03:00
Dmitry Jemerov ea228a2fa8 Fix testdata for SimpleKotlinRenderLogTest 2017-02-16 11:43:16 +01:00
Dmitry Jemerov 87187437ab Update UAST to version 1.0.11 2017-02-10 13:55:25 +01:00
Dmitry Jemerov 00003684e8 Add test for converting a string literal to UAST 2017-02-08 11:29:53 +01:00
Dmitry Jemerov 5dc178460e Update UAST to 1.0.10; move uast-kotlin tests to Kotlin project 2017-02-08 11:29:53 +01:00
Vyacheslav Gerasimov d90ec3e777 Fixed KotlinLintTestGenerated.testJavaPerformance + refactoring
Moved android lint tests from uast-kotlin to idea-android
2016-11-16 18:05:09 +03:00
Vyacheslav Gerasimov 2a0557f742 Added missing KtLambdaArgument to UElement conversion in KotlinUastLanguagePlugin
#KT-14470 Fixed
2016-11-03 17:21:39 +03:00
Vyacheslav Gerasimov 29b9521596 Android lint check for api requirements for classes in catch clause (KT-13243)
Added test for #KT-14047, #KT-13243 Fixed, #KT-14047 Fixed
2016-11-03 17:21:17 +03:00
Yan Zhulanow 7404b91cb3 Lint: Fix diagnostic tests 2016-11-01 19:36:31 +03:00
Yan Zhulanow 4c4d6a4ad4 Temporary remove outdated Uast tests 2016-11-01 19:36:30 +03:00
Nikolay Krasko 67f353903e Show lint diagnostics even if there're errors in the file (KT-12022)
It also affects working with KotlinChangeLocalityDetector. Right after error is fixed in local context file is still reported as having errors and diagnostics are not counted.

 #KT-12022 Fixed
2016-09-02 13:41:24 +03:00
Michael Bogdanov 3b419e8ba3 Fix for KT-11964: No TABLESWITCH in when on enum bytecode if enum constant is imported
#KT-11964 Fixed
2016-06-29 09:32:45 +03:00
Yan Zhulanow 6e6c9682ec Fix KT-12173 (Kotlin Lint False Positive for "Toast created but not shown" inside SAM adapter).
(cherry picked from commit 4940d3b)
2016-06-24 15:10:19 +03:00
Yan Zhulanow 8f75ababde KT-12674 "Calling new methods on older versions" errors for inlined constants
Inlined constants from Java should not be detected.
(cherry picked from commit b34ee4e)
2016-06-24 15:10:19 +03:00
Yan Zhulanow 206e439595 KT-12023 Kotlin Lint: Cast doesn't trigger minSdk error
Check Kotlin as/is types.
(cherry picked from commit c0db8e0)
2016-06-24 15:10:19 +03:00
Yan Zhulanow 4ee19cce93 Fix #KT-12047 (Kotlin Lint: "Missing @JavascriptInterface on methods" does not report anything)
(cherry picked from commit 61e8e01)
(cherry picked from commit dbc54e2)
2016-06-24 15:10:19 +03:00
Yan Zhulanow d1447faf2b Fix #KT-12015 (Kotlin Lint False Positive for Bundle.getInt()).
Android firstly checks API version against the function call receiver type, so we should do the same to be consistent.
(cherry picked from commit c3d01ec)
(cherry picked from commit 5c78acc)
2016-06-24 15:10:19 +03:00
Alexander Udalov da42023dd9 Support new callable reference expressions in UAST
Manually mute the class literal test in apiCheck.kt; support for new class
literal expressions is postponed because it's not straightforward to combine
both unbound (Type::class) and bound (instance::class) class literals in one
UClassLiteralExpression: in Java they're two very different expressions
(Type.class and instance.getClass())
2016-05-26 22:22:41 +03:00
Yan Zhulanow a2b1eb7ee8 Lint: Fix KT-11919 ("Missing Parcelable CREATOR field" rule is not accurate) 2016-04-21 20:08:46 +03:00
Yan Zhulanow 574aa5debe Lint: Fix KT-11924 (False positive on beginTransaction() should be completed with a commit() call) 2016-04-21 20:08:46 +03:00
Yan Zhulanow 5008c6d8fc Lint, Uast: Fix Java function descriptor calculation KT-11923 2016-04-21 20:08:46 +03:00
Yan Zhulanow c13c24becc Uast, Lint: Update and fix tests 2016-04-08 15:39:58 +03:00
Yan Zhulanow 6b30b8ce1f Other code review changes 2016-04-08 15:39:58 +03:00