Commit Graph

7241 Commits

Author SHA1 Message Date
Nikolay Krasko e4da6c268a Generate new Gradle dependency directives when is version above 3.4 (KT-22571)
^KT-22571 Fixed
2018-11-29 16:23:24 +03:00
Juan Chen 7aa195b017 Use "implementation" in build scripts when configuring Kotlin (KT-22571)
Currently "compile" is used when adding kotlin dependencies to build
scripts, which is deprecated.
2018-11-29 16:23:23 +03:00
Nikolay Krasko 76a3c58aaf Better check when to apply old syntax for configuration (KT-28513, KT-22571)
^KT-28513 Fixed
2018-11-29 16:23:22 +03:00
Toshiaki Kameyama d3908aeb2e Add "map.get() with not-null assertion operator" inspection #KT-25171 Fixed 2018-11-29 14:42:18 +03:00
Mikhail Glukhikh c5c0cbccde Redundant companion reference: simplify name conflict checking code
Before this commit, function with same name but different signature
wasn't counted as name conflict, now it is - just because that exact
check in this place could be too complex and error-prone

Enhancement for KT-27539
2018-11-29 14:32:08 +03:00
Toshiaki Kameyama 1db7a0e0cc Redundant companion reference: don't report in case of name conflicts
#KT-27539 Fixed
2018-11-29 14:32:08 +03:00
Nikolay Krasko 05b2443988 Make assignment indent conforms with indent for expression bodies (KT-28484)
Do not make plain list of binary expression for assignment expressions.

 #KT-28484 Fixed
2018-11-29 13:31:07 +03:00
Nikolay Krasko 699e3397d9 Warn about bad options in usage parsers in tests 2018-11-29 13:31:04 +03:00
Mikhail Glukhikh 9b4bcabbd3 Fold initializer & if to elvis: add test, rename tests, simplify code
Enhancement for KT-27016
2018-11-29 13:20:54 +03:00
Toshiaki Kameyama fd6f34f8ca "Replace 'if' with elvis operator": don't suggest on super type check
#KT-27016 Fixed
2018-11-29 13:20:54 +03:00
Mikhail Glukhikh 8fb213021c Create expect: remove false positive in inaccessible type detector 2018-11-28 12:36:29 +03:00
Mikhail Glukhikh d3fada89b7 Generate enum entries in create actual / expected fixes as all other
This makes code a bit cleaner
2018-11-28 12:00:54 +03:00
Toshiaki Kameyama a621171d9b KT-24515 Intention to add an exception under the cursor to @Throws annotations 2018-11-27 22:21:25 +09:00
Andrey Uskov 620969652a Fixed dependency resolution of root project
#KT-28389 Fixed
2018-11-27 13:46:56 +03:00
Toshiaki Kameyama 4abcd9a053 Make internal: don't suggest for @JvmField property inside companion object of interface #KT-27138 Fixed 2018-11-26 18:39:54 +03:00
Toshiaki Kameyama 726b9272f3 Move out of companion object: don't suggest for @JvmField property inside companion object of interface #KT-28443 Fixed 2018-11-26 18:01:43 +03:00
Mikhail Glukhikh cb7f7b1de5 Report "use of non-const Kotlin property" also on some assignments
#KT-25536 Fixed
2018-11-26 15:54:20 +03:00
Mikhail Glukhikh 651faa4ab2 Report "use of non-const Kotlin property" also on Java case labels
#KT-25536 Fixed
2018-11-26 15:54:07 +03:00
Denis Zharkov 23c43cd124 Support retrieving class of enum entry in ultra-light classes 2018-11-26 11:36:43 +03:00
Denis Zharkov 91c86f7f56 Fix refactorings that remove parameter based on ultra-light classes
This commit fixes the exception attached to the bottom of the message
The problem is that when creating ChangeSignatureProcessor for old PsiMethod
that points to the parameter that is already removed from PSI, some pieces
of platform code run resolution on the light PSI that eventually checks
if the source element is valid.

For KtUltraLightParameter, it inherits "isValid" from LightElement and
the latter is defined as getNavigationElement().isValid(),
while here navigationElement points to already removed parameter,
and marked as invalid.

The simplest solution was to define KtUltraLightParameter::isValid
as it was before ultra-light classes, i.e. checking if parent is valid
(see KtLightElementBase::isValid)

com.intellij.psi.PsiInvalidElementAccessException: Element: class com.intellij.psi.impl.compiled.ClsJavaCodeReferenceElementImpl #JAVA  because: File language:Language: JAVA != Provider base language:Language: kotlin
invalidated at: no info
	at com.intellij.psi.util.PsiUtilCore.ensureValid(PsiUtilCore.java:482)
	at com.intellij.psi.impl.source.PsiClassReferenceType.resolveGenerics(PsiClassReferenceType.java:190)
	at com.intellij.psi.impl.source.PsiClassReferenceType.resolve(PsiClassReferenceType.java:138)
	at com.intellij.psi.util.PsiUtil.resolveClassInType(PsiUtil.java:445)
	at com.intellij.psi.util.PsiUtil.convertAnonymousToBaseType(PsiUtil.java:484)
	at com.intellij.psi.impl.light.LightTypeElement.<init>(LightTypeElement.java:33)
	at com.intellij.psi.impl.PsiElementFactoryImpl.createTypeElement(PsiElementFactoryImpl.java:142)
	at com.intellij.refactoring.changeSignature.JavaChangeInfoImpl.fillOldParams(JavaChangeInfoImpl.java:218)
	at com.intellij.refactoring.changeSignature.JavaChangeInfoImpl.<init>(JavaChangeInfoImpl.java:127)
	at com.intellij.refactoring.changeSignature.JavaChangeInfoImpl.<init>(JavaChangeInfoImpl.java:86)
	at com.intellij.refactoring.changeSignature.ChangeSignatureProcessor.generateChangeInfo(ChangeSignatureProcessor.java:121)
	at com.intellij.refactoring.changeSignature.ChangeSignatureProcessor.<init>(ChangeSignatureProcessor.java:88)
	at org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinChangeInfo$getOrCreateJavaChangeInfos$3.invoke(KotlinChangeInfo.kt:400)
	at org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinChangeInfo$getOrCreateJavaChangeInfos$5.invoke(KotlinChangeInfo.kt:469)
	at org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinChangeInfo.getOrCreateJavaChangeInfos(KotlinChangeInfo.kt:498)
	at org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinChangeSignatureUsageProcessor.processUsage(KotlinChangeSignatureUsageProcessor.kt:847)
	at com.intellij.refactoring.changeSignature.ChangeSignatureProcessorBase.doChangeSignature(ChangeSignatureProcessorBase.java:218)
2018-11-26 11:36:25 +03:00
Toshiaki Kameyama e409007749 Join Lines: join initializer + if null check to elvis (KT-22388)
#KT-22388 Fixed
2018-11-24 02:30:10 +03:00
Mikhail Glukhikh 2af9efa4a0 Fix failing test (related to KT-28381, KT-28382 commits) 2018-11-23 15:43:39 +03:00
Mikhail Glukhikh 88cea0a88c Navigation to implementation: do not try to find expect enum inheritors
Before this commit, expect enum could find actual enum entries
as its implementation, now it cannot.
#KT-28206 Fixed
2018-11-23 15:35:19 +03:00
Mikhail Glukhikh 5502d2de6a Fix KNPE in "Move member to companion" for expect class #KT-28383 Fixed 2018-11-23 15:35:19 +03:00
Mikhail Glukhikh 41b75346fe Forbid "introduce backing property" for expect classes #KT-28382 Fixed 2018-11-23 15:35:19 +03:00
Mikhail Glukhikh 10cc4959cc Forbid "move property to constructor" for expect classes #KT-28381 Fixed 2018-11-23 15:35:18 +03:00
Toshiaki Kameyama d06b04f025 Add intention to convert SAM lambda to anonymous object #KT-25718 Fixed 2018-11-23 01:05:42 +03:00
Toshiaki Kameyama f1a0cefde0 Convert concatenation to template: remove 'toString()' call #KT-6025 Fixed 2018-11-22 15:55:32 +03:00
Andrey Uskov ef6aae0f4a Migrate importing tests to new configuration management 2018-11-22 12:51:47 +03:00
Toshiaki Kameyama e5f0f2489f Introduce backing property: fix false positive for const property #KT-28341 Fixed 2018-11-21 17:51:34 +03:00
Mikhail Glukhikh 1585461a68 Fix create expected for classes with anonymous initializers 2018-11-21 15:13:02 +03:00
Mikhail Glukhikh 99388c304f Fix create expected for non-actual nested class case 2018-11-21 15:13:02 +03:00
Mikhail Glukhikh a4214f13c8 Forbid create expected on class member when class has no expected itself
Related to KT-27075
2018-11-21 15:13:01 +03:00
Mikhail Glukhikh 8b7c7dbe25 Create expected quick-fix: check types accessibility before creation
Related to KT-27075
2018-11-21 15:13:01 +03:00
Mikhail Glukhikh f31428257d Add a set of new tests for KT-27075 (create expected class) + some fixes 2018-11-21 15:13:01 +03:00
Mikhail Glukhikh 2277dcc76f Introduce quick-fix "create expected class / function / property"
#KT-27075 Fixed
2018-11-21 15:13:01 +03:00
Mikhail Glukhikh 5c6f776c09 Add actual: handle already existing declarations more precisely
#KT-23693 Fixed
2018-11-21 15:13:00 +03:00
Mikhail Glukhikh 46a5d76254 Create actual: add delegation to secondary constructor, if needed
#KT-26518 Fixed
2018-11-21 15:13:00 +03:00
Mikhail Glukhikh 90a2f70fd1 Use OverrideMemberChooserObject to generate also primary constructors
Relates to KT-27093 and similar problems
2018-11-21 15:13:00 +03:00
Mikhail Glukhikh cd041cca71 Use OverrideMemberChooserObject to generate also abstract actual decls
Relates to KT-27093 and similar problems
2018-11-21 15:13:00 +03:00
Mikhail Glukhikh 3612c2983e Use OverrideMemberChooserObject to generate actual decls in quick-fixes
This can fix a lot of issues related to inexact generation, in particular
#KT-27093 Fixed
2018-11-21 15:12:59 +03:00
Toshiaki Kameyama c49770d9a7 Unused symbol: don't report for type parameter in open class #KT-23639 Fixed 2018-11-20 11:18:18 +03:00
Toshiaki Kameyama bc4d353134 Unused symbol: fix message for interface #KT-28286 Fixed 2018-11-20 11:14:45 +03:00
Natalia Selezneva 1b715ab253 "Add non-null asserted (!!) call": Fix for array access expression (KT-27071)
^KT-27071 Fixed
2018-11-19 11:09:32 +03:00
Toshiaki Kameyama 89ba7a7ae8 Make abstract: do not suggest for inline classes #KT-28268 Fixed 2018-11-17 18:07:15 +03:00
Toshiaki Kameyama e671318653 Formatting: add line break between '{' and enum entry (KT-28227)
#KT-28227 Fixed
2018-11-17 01:26:27 +03:00
Toshiaki Kameyama 8b2fef3812 Remove explicit type specification: don't propose for ext function type
#KT-8875 Fixed
2018-11-16 16:35:04 +03:00
Toshiaki Kameyama 8089d2e9e3 Replace deprecated symbol usage in whole project: enable on annotation declared without parentheses #KT-12479 Fixed 2018-11-16 13:07:36 +03:00
Toshiaki Kameyama 75755afc00 Remove redundant spread operator: don't remove inner argument spread operator #KT-27699 Fixed 2018-11-16 13:06:25 +03:00
Nikolay Krasko 2d1c76344c Store presence of spread operator for value argument in stubs 2018-11-15 18:55:56 +03:00