Commit Graph

44519 Commits

Author SHA1 Message Date
Yan Zhulanow 54251ddac0 REPL, Refactoring: Rename ReplErrorLogger to ReplExceptionReporter
ReplErrorLogger is not really a class that logs errors, ReplWriter exists for that purpose (I don't think ReplWriter has a good API as well, though). The only thing it does is that is passes exceptions got from the compiler to IDE. So, in my opinion, the old name is rather confusing and it doesn't describe what the class actually do.

Also rethrow exceptions explicitly.
2018-03-06 22:27:45 +03:00
Svyatoslav Scherbina 5abade0e32 Fix missing type parameters of property accessors in external IR stubs 2018-03-06 16:43:20 +03:00
Alexey Sedunov e145a64d50 Rename: Forbid rename of synthetic declaration references
#KT-20241 Fixed
2018-03-06 15:15:44 +03:00
Alexey Sedunov 9761e33110 Refactor: Use RefactoringErrorHintException to report errors in test mode 2018-03-06 15:15:44 +03:00
Alexey Sedunov df4c80f43a Shorten References: Allow import insertion when function and property have the same name
#KT-22745 Fixed
2018-03-06 15:15:44 +03:00
Alexey Sedunov df4cd14161 Move: Relax private/protected visibility checks for usages in Java code 2018-03-06 15:15:43 +03:00
Alexey Sedunov 4fd221fc0c Rename: Filter out destructuring references to parameters
They shouldn't be renamed in any case

 #KT-15039 Fixed
2018-03-06 15:15:43 +03:00
Alexey Sedunov 85b381db7c Rename: Identify elements with the same origin when checking import ambiguity
#KT-13284 Fixed
2018-03-06 15:15:43 +03:00
Alexey Sedunov 6c17bbe42c Rename: Check redeclaration for local variables
Also add tests for other local declarations

 #KT-13255 Fixed
2018-03-06 15:15:42 +03:00
Alexey Sedunov 4609b2ae37 Navigation: Resolve typealiased SAM-references to type alias declaration
#KT-15302 Fixed
2018-03-06 15:15:42 +03:00
Alexey Sedunov 5bff4b9f39 Rename: Allow deleting name of companion object
#KT-20178 Fixed
2018-03-06 15:15:42 +03:00
Alexey Sedunov 0e3e387446 Rename: Adapt VariableInplaceRenameHandler to Kotlin
#KT-16510 Fixed
2018-03-06 15:15:42 +03:00
Alexey Sedunov 7149a0855a Rename: Use OverloadChecker for redeclaration conflict analysis
#KT-19561 Fixed
 #KT-22812 Fixed
 #KT-13907 Fixed
2018-03-06 15:15:41 +03:00
Alexey Sedunov 12d5a72697 Move: Show more accurate message when moving subclass of a sealed class
#KT-23065 Fixed
2018-03-06 15:15:41 +03:00
Alexey Sedunov 5f43bd56b4 Extract Function: Use 'public' visibility for function extracted from public inline
#KT-15228 Fixed
2018-03-06 15:15:41 +03:00
Alexey Sedunov d690aedb89 References: Fix resolution of delegate reference for local variables
#KT-22229 Fixed
2018-03-06 15:15:40 +03:00
Alexey Sedunov 96de29dfcb Create from Usage: Support accessors for local delegated properties
#KT-19730 Fixed
2018-03-06 15:15:40 +03:00
Mikhail Glukhikh 2eddce57ff MPP wizard: add combo-box with JDK for JVM platform, if any
Related to KT-23097
2018-03-06 14:32:31 +03:00
Mikhail Glukhikh 2108634ddb MPP wizard: add check-boxes to create JVM / JS module
Related to KT-23097
2018-03-06 14:32:31 +03:00
Mikhail Glukhikh cc8a2b3123 MPP wizard: add common module at the same level with platform ones
Related to KT-23097
2018-03-06 14:32:31 +03:00
Mikhail Glukhikh 720c84d1d6 Fix style: KotlinGradleMultiplatformWizardStep 2018-03-06 14:32:31 +03:00
Mikhail Glukhikh fe7b7fb0bd Create actual fix: add empty brackets for classes in super-type lists
Related to KT-21082
2018-03-06 14:32:30 +03:00
Mikhail Glukhikh ef3e0b01c4 Create actual fix: use target module instead of target platform 2018-03-06 14:32:30 +03:00
Mikhail Glukhikh 90e4413fc9 Create actual: put top-level actual declarations in the same file
When multiple expect declarations are in the same file,
and some of them already have actual declarations for this platform,
then "Create actual fix" put other declarations into the same file
with existing actual declarations

So #KT-17058 Fixed
So #KT-21082 Fixed
2018-03-06 14:32:30 +03:00
Mikhail Glukhikh 3ec2dac10b Create actual fix: reformat 2018-03-06 14:32:30 +03:00
Pavel V. Talanov 27d7bb595f CliLightClassGenerationSupport: correctly find facade files
This fixes a problem where JvmPackageName annotation could force file
    facades to be in the package different to declared kotlin package
2018-03-06 12:07:12 +01:00
Pavel V. Talanov 00ee5e3d16 Refactor: extract mapping package to files to a separate component
Make it extensible
2018-03-06 12:07:08 +01:00
Pavel V. Talanov fae0f611a0 Test java resolve against kotlin file with JvmPackageName annotation 2018-03-06 12:07:07 +01:00
Pavel V. Talanov 498431311c Light classes: test "JvmPackageName" and actual declarations 2018-03-06 12:06:59 +01:00
Pavel V. Talanov d2b90b84f8 KotlinFileStubForIde: save full facadeFqName
Prefix is not necessarily same as packageFqName since JvmPackageName was introduced
2018-03-06 12:05:53 +01:00
Nikolay Krasko 9e061555af Use anchor for element to avoid working with invalid element (KT-22631)
Element in constructor can be invalidated when dumb mode begins/ends.
Working with invalid elements can produce nodes without icons and bad
presentation.

 #KT-22631 Fixed
2018-03-06 13:04:26 +03:00
Nikolay Krasko bb9933a8f9 Reformat: structureView package 2018-03-06 13:04:25 +03:00
Pavel V. Talanov 6c4537accc Create InvalidLightClassDataHolder for expect classes
This fixes an exception from duplicateJvmSignature reporter
Fixes "QuickFixTestGenerated$Override.testDontOfferToImplementMembersForExpectedClass" on teamcity
2018-03-05 18:07:38 +01:00
Pavel V. Talanov 89c82a85d0 Do not build light classes for expect classes
#KT-15482 Fixed
2018-03-05 18:07:36 +01:00
Toshiaki Kameyama 3f96e1dabc Move statement up/down fails for multiline declarations with lambdas (KT-21013)
#KT-21013 Fixed
2018-03-05 16:10:59 +03:00
Alexander Udalov f41165c566 Minor, use elvis in deprecationUtil.kt 2018-03-05 13:43:10 +01:00
Alexander Udalov e92e7c6f80 Do not report RequireKotlin-related diagnostics in snapshot compilers
Otherwise it's difficult to use a newly added API annotated with
RequireKotlin with the latest, not yet released, version.

For example, suppose there's a new function added in kotlin-stdlib,
since Kotlin 1.3, which requires 1.3 (Kotlin < 1.3 is supposed to report
an error on usages):

    @SinceKotlin("1.3")
    @RequireKotlin("1.3", COMPILER_VERSION, message = ...)
    fun foo() {}

Until Kotlin 1.3 is released, the latest available compiler in Maven has
the version 1.3-SNAPSHOT, which is _less_ than 1.3 according to Maven
rules which are used in getDeprecationByVersionRequirement. Therefore,
errors will be reported on usages of foo, and there's no Kotlin compiler
version which can be used to verify if the function works correctly,
which is inconvenient.

Since SNAPSHOT versions are effectively "pre-release" in a way, it's OK
for them to skip reporting these diagnostics
2018-03-05 13:39:13 +01:00
Alexander Udalov bbaea6a062 Refactor deprecation by version requirement
- Get rid of ApiVersion in favor of MavenComparableVersion
- Don't crash on invalid versions in RequireKotlin
- Extract to a separate function
2018-03-05 13:39:13 +01:00
Nikolay Krasko 90802f2d7c Refactoring: remove ModuleResolverProvider, inline createModuleResolverProvider 2018-03-05 15:20:53 +03:00
Nikolay Krasko de68607d5f Refactoring: move JavaResolveExtension.kt to util package 2018-03-05 15:20:53 +03:00
Svyatoslav Scherbina 7a2d761a7d Add minor improvements to psi2ir and IR utilities:
* Generate missing IR parameter declarations in external stubs
* Use origin = FAKE_OVERRIDE in external IR stubs for fake overrides
* Set .parent in external IR stubs
* Set .parent in IR generated by some utility methods
2018-03-02 15:41:48 +03:00
Dmitry Petrov 13a7270129 Generate type parameter declarations for property accessors
This requires "scoped" type parameter symbols, because in the ugly world
of descriptors property accessors have no type parameters of their own.
2018-03-02 14:35:35 +03:00
Dmitry Petrov 31996f1139 Update "defaultness" for property accessor with inherited visibility
Property accessor that overrides a non-default property accessor with
visibility different from the property visibility was incorrectly
considered "default". Corresponding metadata was written incorrectly,
and 'internal' setter call caused NSME

 #KT-23044 Fixed Target versions 1.2.40
2018-03-02 10:54:32 +03:00
Dmitry Petrov 8e8c5fae01 Minor: reformat code 2018-03-02 10:54:32 +03:00
Yan Zhulanow 6950c256ce Pill: Replace most of the hardcoded library coordinates with info from Gradle 2018-03-02 03:15:33 +03:00
Yan Zhulanow 6e65a4810e Make a project-wide embeddedComponents configuration for embedding external binaries to project artifacts 2018-03-02 03:15:32 +03:00
Yan Zhulanow 3c06dd7464 Pill, Minor: Move run configurations to the resources source set 2018-03-02 03:15:31 +03:00
Yan Zhulanow 3894afcf0b Pill, Minor: Remove the hardcoded repository, use the available utilities 2018-03-02 03:15:30 +03:00
Yan Zhulanow b24d87f7ed Pill: Merge two "root" and "non-root" Pill plugins 2018-03-02 03:15:30 +03:00
Yan Zhulanow 3da479c1d5 Pill, Small: Pass libraries to 'parse()' directly 2018-03-02 03:15:29 +03:00