Commit Graph

15638 Commits

Author SHA1 Message Date
Mikhail Zarechenskiy a63495aa0b Use language version settings of definitely known module 2017-09-15 08:16:25 +03:00
Yan Zhulanow d9f99971bb Disable old Parcelable quickfixes if @Parcelize annotation is present 2017-09-14 19:36:47 +03:00
Yan Zhulanow e6171dc4c5 Parcelable: Add quick fixes 2017-09-14 19:36:24 +03:00
Yan Zhulanow 9984b6f9d1 Minor: Refactoring 2017-09-14 19:29:10 +03:00
Yan Zhulanow 83bf257666 Kapt: Attach kapt stub location when reporting annotation processor errors 2017-09-14 19:16:55 +03:00
Yan Zhulanow 4ac8a98050 Kapt: Hide fake "Error while annotation processing" error in Android Studio build console 2017-09-14 19:16:54 +03:00
Yan Zhulanow 69051a4764 Simplify KotlinOutputParser, remove old reflection-based logic that didn't work well with the newer versions of Android Studio 2017-09-14 19:16:53 +03:00
Yan Zhulanow 8e72a1211b Kapt: Add IDEA integration (KT-19097, KT-17923, KT-19823) 2017-09-14 18:40:55 +03:00
Mikhail Zarechenskiy 68259f7939 Allow assigning array to vararg in named form in annotations
See more in KT-20171
2017-09-14 18:27:41 +03:00
Mikhail Zarechenskiy f905d56b38 Don't try to get KtFile on random element as it can throw exception
For example, this can be for copied elements (DummyHolder)
2017-09-14 18:27:40 +03:00
Mikhail Zarechenskiy b1d9abdf83 Propagate languageVersionSettings to resolution context 2017-09-14 18:27:34 +03:00
Denis Zharkov 4d95c30360 Restore -Xjsr305-annotations flag as a deprecated 2017-09-14 18:05:32 +03:00
Mikhail Glukhikh 92215b41b9 Replace resolveToDescriptor with unsafeResolveToDescriptor
Now unsafeResolveToDescriptor is equivalent to resolveToDescriptorIfAny
but throws exception in case no descriptor is found.
Old version of resolveToDescriptor is kept intact but made deprecated.
Some clarifying comments were added
2017-09-14 17:20:37 +03:00
Mikhail Glukhikh 0f9d31c9d1 Patch resolveToDescriptorIfAny() for parameter case
Now property descriptor is returned for primary constructor val / var,
otherwise parameter descriptor is returned.
2017-09-14 15:08:06 +03:00
Mikhail Glukhikh 04b8f1db6e Minor: convert to expression body applied (resolutionApi) 2017-09-14 15:08:05 +03:00
Mikhail Glukhikh 71c2489ade Use safe resolveToDescriptorIfAny() when possible (related to EA-105681) 2017-09-14 15:08:04 +03:00
Nikolay Krasko 94e3a51a45 Test no psi stub mismatch for light classes with suspend in overloads
IdeCompiledLightClassTestGenerated is relevant.
2017-09-14 12:28:26 +03:00
Nikolay Krasko 74043089ab Generate modifier list stub under nullable type for suspend functions (KT-20185)
Otherwise there's a PSI and Stub mismatch error produced.

 #KT-20185 Fixed
2017-09-14 12:28:26 +03:00
Alexander Udalov 70ae1596fb Support JvmPackageName annotation in binary format
The main changes are in jvm_package_table.proto and ModuleMapping.kt.
With JvmPackageName, package parts can now have a JVM package name that
differs from their Kotlin name. So, in addition to the old package parts
which were stored as short names + short name of multifile facade (we
can't change this because of compatibility with old compilers), we now
store separately those package parts, which have a different JVM package
name. The format is optimized to avoid storing any package name more
than once as a string.

Another notable change is in KotlinCliJavaFileManagerImpl, where we now
load .kotlin_module files when determining whether or not a package
exists. Before this change, no PsiPackage (and thus, no JavaPackage and
eventually, no LazyJavaPackageFragment) was created unless there was at
least one file in the corresponding directory. Now we also create
packages if they are "mapped" to other JVM packages, i.e. if all package
parts in them have been annotated with JvmPackageName.

Most of the other changes are refactorings to allow internal names of
package parts/multifile classes where previously there were only short
names.
2017-09-13 22:59:03 +03:00
Dmitry Jemerov cc8fbf6078 Store third-party annotations in a separate directory 2017-09-13 17:25:20 +02:00
Nikolay Krasko cad6fdb323 Reenable workaround for JVMTI_ERROR_WRONG_PHASE in debugger tests
It was fixed in custom intellij jdk and disabled in DescriptorTestCase.
2017-09-13 16:29:51 +03:00
Nikolay Krasko 75fa982370 Minor: split long line in KotlinDebuggerSettings.kt 2017-09-13 16:29:51 +03:00
Alexander Udalov 1b45e9d517 Minor, fix before vs after in some tests 2017-09-13 15:46:37 +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
Denis Zharkov b905ddeac9 Memoize deprecations-related computations
It might be helpful for performance as these methods are called
for each resolution candidate and in the same time they scan
the whole overridden tree of a callable member
2017-09-13 15:34:14 +03:00
e5l 5bb88b659b Rename flag Xjsr305-annotations->Xjsr305 2017-09-13 15:19:54 +06:00
Nikolay Krasko 32c02161cd Refactoring: improve isApplicable methods in surrounders 2017-09-12 18:27:47 +03:00
Nikolay Krasko b925df0e14 Minor: remove '\n' from if surrounder 2017-09-12 18:27:47 +03:00
Nikolay Krasko 239f88e5d3 Refactoring: use sealed classes for try-catch expression surrounders 2017-09-12 18:27:47 +03:00
Kirill Rakhman 08103d1cb4 Implement "Surround with try/catch(/finally)" and "Surround with if/else" for expressions
Fixes #KT-14175
Fixes #KT-19782
2017-09-12 18:27:47 +03:00
Mikhail Zarechenskiy e16d16fdb7 Do not report diagnostic about annotation with receiver target twice 2017-09-12 17:39:24 +03:00
Mikhail Glukhikh dafb52a44a CodeBlockModification...: count file as changed when no changed elements
It means that root PSI (KtFile itself) is changed

So #KT-19726 Fixed
So #KT-20157 Fixed
2017-09-12 17:28:32 +03:00
Mikhail Glukhikh dd1ac5bb6b Add a set of tests for internal callables find usages
Related to KT-19811
2017-09-12 16:51:02 +03:00
Mikhail Glukhikh 97233448d0 Enclosing element: do not handle parameters of for as function ones
So #KT-19626 Fixed
2017-09-12 16:13:56 +03:00
Mikhail Glukhikh 7ae722492f Unused symbol: do not use body of function literal as scope for members
So #KT-10546 Fixed
2017-09-12 16:13:34 +03:00
Toshiaki Kameyama 5eb69e0ae4 KT-20010 'Replace safe access expression with 'if' expression' IDEA Kotlin plugin intention may failed (#1288)
* 'Replace safe access expression with 'if' expression' IDEA Kotlin plugin intention may failed #KT-20010 Fixed

* #KT-20010 Fixed
2017-09-12 14:54:50 +02:00
Alexander Udalov ac1c7d9a6a Drop Incompatible.NoImpl, fix no "missing impl" on nested class
Header/impl declarations are now considered fully compatible even in the
case when the impl declaration has no "impl" modifier. The error about
no "impl" is now reported separately and only on the impl declaration,
never on the header declaration

 #KT-20087 Fixed
2017-09-12 14:41:11 +03:00
Vyacheslav Gerasimov 89257e6397 Implement light classes for Kotlin scripts 2017-09-12 13:10:38 +03:00
Kirill Rakhman 7fe1e4f83e Fix grammar in inspection description 2017-09-12 12:05:30 +03:00
Dmitry Jemerov cd44131f88 Add impl module roots also when gradle-aware make is enabled 2017-09-11 15:07:51 +02:00
Dmitry Jemerov 0caadcd2f1 Put Kotlin runner on the first place 2017-09-11 15:07:51 +02:00
Dmitry Jemerov 9d2b9df3b4 Correctly run multiplatform modules
When a JVM run configuration requests compiling a common module,
compile the corresponding JVM module instead.
2017-09-11 15:07:51 +02:00
Dmitry Jemerov 1d05e83401 Recognize common tests marked with annotations typealiased to @Test 2017-09-11 15:07:51 +02:00
Dmitry Jemerov 6d30123c21 Add test dependencies when creating multiplatform projects 2017-09-11 15:07:51 +02:00
Dmitry Jemerov aed01c8475 Consistent naming: common platform is common, not default 2017-09-11 15:07:51 +02:00
Dmitry Jemerov 62b3059425 Support running main() under JVM in multiplatform projects
#KT-20093 In progress
2017-09-11 15:07:51 +02:00
Dmitry Jemerov 0b143e982f Always delegate build/run actions in MPP projects to Gradle 2017-09-11 15:07:51 +02:00
Mikhail Glukhikh ae509d5980 Unused symbol: add test to fix behaviour #KT-16318 Obsolete 2017-09-11 12:12:20 +03:00
Mikhail Glukhikh 37d2386a0b Unused symbol: handle imports from nested objects correctly
So #KT-17437 Fixed
2017-09-11 12:12:18 +03:00
Mikhail Glukhikh 7e3d3bde74 Unused symbol: never use VALUE_ARGUMENT scope for members
So #KT-10546 Fixed
2017-09-11 12:12:17 +03:00