Commit Graph

30935 Commits

Author SHA1 Message Date
Yan Zhulanow 3dc091d92c Uast: support internal class names in Java and method signatures in Java and Kotlin 2016-04-08 15:39:58 +03:00
Yan Zhulanow 5bc31112c1 Lint: Remove IntellijApiDetector 2016-04-08 15:39:58 +03:00
Yan Zhulanow 3258ebae39 Java Uast: Support try-with-resources 2016-04-08 15:39:58 +03:00
Yan Zhulanow 9d34df2475 Java Uast: Support static imports 2016-04-08 15:39:58 +03:00
Yan Zhulanow 06a88f417c Uast: support beforeVisit() and afterVisit() in visitor 2016-04-08 15:39:58 +03:00
Yan Zhulanow 3a7f29bfc5 Lint: Support visitResourceReference() in Uast 2016-04-08 15:39:58 +03:00
Yan Zhulanow 514e3859da Uast: Rename JavaPsiElemenStub -> JavaDumbUElement, KotlinPsiElementStub -> KotlinDumbUElement.
Use it everywhere in `nameElement`
2016-04-08 15:39:58 +03:00
Yan Zhulanow 6c40fda7b7 Support equals() on UElements (comparation by psi) 2016-04-08 15:39:58 +03:00
Yan Zhulanow 985c8660b7 Uast Java, Kotlin: Support all binary operators in Uast 2016-04-08 15:39:58 +03:00
Yan Zhulanow 3f6796f0c2 Uast: Support all basic Java types needed for Lint 2016-04-08 15:39:58 +03:00
Yan Zhulanow 862f824bcc Kotlin Uast: Support object literals 2016-04-08 15:39:58 +03:00
Yan Zhulanow 78ce025ca3 Uast: Ability to get the default class type from UClass 2016-04-08 15:39:58 +03:00
Yan Zhulanow 5c07e6de9d Kotlin Uast, Refactoring: Extract toSource() function 2016-04-08 15:39:58 +03:00
Yan Zhulanow ed1e1c6a2b Uast, Minor: make lateinit mutable propertiy setters internal 2016-04-08 15:39:58 +03:00
Yan Zhulanow 18e963422b Lint: Remove diagnostics unrelated to uast.
All these diagnostics are already present in the Android plugin, so there's no need in them here.
2016-04-08 15:39:58 +03:00
Yan Zhulanow ed10829091 Uast: Allow to search for a static members (in Kotlin static members are located inside the companion objects).
Companion objects support.
2016-04-08 15:39:58 +03:00
Yan Zhulanow f1e5c85ba3 Uast: Support Kotlin anonymous initializers 2016-04-08 15:39:58 +03:00
Yan Zhulanow 335712141d Java Uast, Minor: Convert Java Uast properties with backing field to properties with getter (optimization) 2016-04-08 15:39:58 +03:00
Yan Zhulanow f130dc96f7 Lint: Implement Kotlin Java synthetic property calls as Java method calls via the additional checker 2016-04-08 15:39:58 +03:00
Yan Zhulanow d1939d52bc Replace UastConverter with UastLanguagePlugin, allow additional checkers 2016-04-08 15:39:58 +03:00
Yan Zhulanow 4ef6016ee8 Lint: Rename all Lint inspections to KLint to provide unique short names 2016-04-08 15:39:58 +03:00
Yan Zhulanow f4422b3b19 Kotlin Uast: Support type parameters on functions 2016-04-08 15:39:58 +03:00
Yan Zhulanow 668172d68e Lint, Minor: Group lint-related modules 2016-04-08 15:39:58 +03:00
Yan Zhulanow 4df9e9261e Lint: Rewrite Lint diagnostics using Uast. 2016-04-08 15:39:58 +03:00
Yan Zhulanow 126cc778e4 Lint: copy diagnostics from IDEA (br143) 2016-04-08 15:39:58 +03:00
Yan Zhulanow 92d2e7a0a9 Kotlin Uast: Initial implementation 2016-04-08 15:39:58 +03:00
Yan Zhulanow a13a1e1e4a Java Uast: Initial implementation 2016-04-08 15:39:58 +03:00
Yan Zhulanow 16de31aebe Uast: Unified AST (Kotlin, Java) interfaces set.
Goal: support Android Lint diagnostics in Kotlin by switching Lint scanners from the Java Lombok AST to the abstract AST (uast) with Java and Kotlin PsiElement-backed implementations.
2016-04-08 15:39:58 +03:00
Dmitry Petrov aca7050656 KT-11499 Normalize stacks on return from an inline function when the function is inlined at call site. 2016-04-08 14:52:55 +03:00
Michael Bogdanov a6044c81ff Write proper start label for loop parameter 2016-04-08 14:32:51 +03:00
Zalim Bashorov 441a442f34 Minor: update testdata 2016-04-08 13:45:37 +03:00
Zalim Bashorov f5ca949f2c IC: improve logging in tests and fix DataContainerVersionChangedTestGenerated#testWithError
Test logging improvements:
  * print which chunk building in the round for multimodule projects
  * print actions after cache changed
2016-04-08 13:45:37 +03:00
Kirill Rakhman da5c963a43 Fix let implement quickfix label for object expressions
Fixes #KT-11782
2016-04-08 10:37:25 +03:00
Valentin Kipyatkov cdab9d5103 KT-11710 "Replace 'if' with elvis operator": incorrect code generated for 'if' expression
#KT-11710 Fixed
2016-04-07 18:50:32 +03:00
Valentin Kipyatkov 6a65442095 KT-11811 There is no intention "Make protected" for a val declared in parameters of constructor
#KT-11811 Fixed
2016-04-07 18:50:32 +03:00
Valentin Kipyatkov a9fe999e0e Fixed StackOverflow in CanBeValInspection.kt 2016-04-07 18:50:31 +03:00
Valentin Kipyatkov 22a4bbe1aa KT-11805 Invert if-condition intention breaks code in case of end of line comment
#KT-11805 Fixed
2016-04-07 18:50:30 +03:00
Valentin Kipyatkov b258af5288 KT-11724 False suggestion to replace with compound assignment
#KT-11724 Fixed
2016-04-07 18:50:30 +03:00
Alexander Udalov 7c90fbe4de Compute return type for property getters more safely
Do not call `isError()` on property's type right after creation of
PropertyGetterDescriptor because the property has no getter yet (it's created
but not yet stored to the property, that happens a bit later), and `isError()`
leads to computation of the delegate type, which for delegated properties
performs some complex resolution (see `VariableTypeResolver#process`) which
relies on the fact that the property already has a getter.

Since the purpose of the original change (883e2e4d) was to support a quick fix
which would add the type to a property in an expression like "val x get() =
...", check the type (or initializer) presence in the PSI instead, this is
safer and is still suitable for the quick fix.

Also fix arguments to "wrong getter type" diagnostic: previously something
useless like "expected Int, actual Int" was reported

 #KT-11809 Fixed
2016-04-07 15:35:58 +03:00
Dmitry Petrov f1b061d662 Optimize coercion to Unit.
POP operations are backward-propagated.

Operation can't be transformed if its result is moved within stack
(by DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, or SWAP).

Unnecessary operations are replaced with NOPs (for debugger).
Unnecessary NOPs are removed.

KT-9922 Suboptimal generation for simple safe call with unused return value
KT-11116 Optimize methods returning Unit
2016-04-07 11:40:58 +03:00
Alexander Udalov c4a568efff Minor, add test cases for obsolete protected-related issues 2016-04-07 00:07:11 +03:00
Alexander Udalov 9eec5daf51 Minor, fix a few typos in NameResolution.adoc 2016-04-06 23:21:13 +03:00
Nikolay Krasko 9e88db7e58 Fix bad test modification 2016-04-06 21:46:02 +03:00
Nikolay Krasko 46a1028494 Temporary ad-hock jps-tests enable with testdata modification 2016-04-06 21:46:00 +03:00
Alexey Andreev 9fd19dd7fd KT-7819 Add test to ensure that lambda capturing this literal can be inlined 2016-04-06 16:16:56 +03:00
Alexey Andreev 05887f45f7 KT-7819 Implement non-local returns 2016-04-06 16:16:55 +03:00
Alexey Andreev a6e1bd1d89 KT-7819 Borrow tests for non-local returns from JVM backend 2016-04-06 16:16:55 +03:00
Pavel V. Talanov f7db1f934c IDELightClassGenerationSupport#getContextForClassOrObject: do not rely on resolution facade being unchanged
ResolutionFacade should only recompute its underlying structures in case of psi change (which is ok) or some exception, but relying on it being unchanged has led to numerous exceptions in backend when building light classes (EA-70985, EA-80756)
Changing this code may not be the solution but it can possibly move failures to other parts of the system, where they can be easier diagnosed
2016-04-06 16:09:17 +03:00
Nikolay Krasko 74091a12cf Update since to IDEA 2016.1 2016-04-06 14:20:55 +03:00
Nikolay Krasko 4b22685dc5 Change asm library path 2016-04-06 14:20:53 +03:00