Commit Graph

19276 Commits

Author SHA1 Message Date
Denis Zharkov dbf9ff29a9 Support data classes in ultra-light classes 2018-12-05 16:34:44 +03:00
Denis Zharkov 28d3a62567 Separate nullability annotation processing for ultra-light classes
KtLightNullabilityAnnotation is specifically designed for old light classes
and includes a bunch of hacks that are applicable for them

So, we have to introduce own hack into it
(see org.jetbrains.kotlin.asJava.classes.KtUltraLightParameter#getTypeForNullability)
that is a bit of hard to support when extending hierarchy
2018-12-05 16:34:44 +03:00
Denis Zharkov 30c60c7b1f Do not render nullability in UltraLightChecker when it's irrelevant
It's necessary because after next changes,
they become different for ultra and old light classes.
The former (ultra) is more correct but it doesn't help when
we need to compare our implementation with reference
2018-12-05 16:34:44 +03:00
Denis Zharkov d7d0407afb Fix parameters nullability for generated overloads in light classes
When making KtLightNullabilityAnnotation after test org.jetbrains.kotlin.idea.caches.resolve.IdeLightClassTestGenerated.NullabilityAnnotations#testJvmOverloads
started failing the wrong assumption was made that for
@JvmOverloads-generated overloads their last parameter is always nullable
(see removed isNullableInJvmOverloads function) and that lead to a bug,
namely KT-28556.

The actual problem of this test started failing was incorrect definition
of kotlinOrigin in KtLightParameter for case of JvmOverloads:
wrong KtParameter was being chosen before

This commit fixes the issue by propagating how actually generated
parameters in codegen relate to source KtParameters'

^KT-28556 Fixed
2018-12-05 16:34:44 +03:00
Vyacheslav Gerasimov a112bebf78 Build: Configure cache-redirector in allprojects block 2018-12-04 15:38:56 +03:00
Simon Ogorodnik 2556d64459 Provide findModuleDescriptor for ResolutionFacadeWithDebugInfo
Fixes Move refactoring tests
Broken after introduction of ResolutionFacadeWithDebugInfo
2018-12-04 15:13:40 +03:00
Dmitry Zhuravlev ab259c2d6f Consider Kobalt libraries as external for Kotlin 2018-12-04 13:51:23 +03:00
Toshiaki Kameyama 7bf51f1533 Expand selection for class members #KT-28289 Fixed 2018-12-04 11:17:27 +03:00
Mikhail Glukhikh 7cbc8e8b76 Introduce "Redundant else in if" inspection #KT-19668 Fixed 2018-12-03 09:39:22 +03:00
Mikhail Glukhikh ca87e53f04 Introduce DeferredIsResultInspection #KT-25620 Fixed 2018-12-01 11:07:02 +03:00
Mikhail Glukhikh a7ad1113b2 Redundant async: do not suggest for calls with 'start'
The reason with 'withContext' does not have such parameter anymore
2018-11-30 15:14:27 +03:00
Mikhail Glukhikh 3d15cbcced Redundant async inspection: run "optimize imports" after quick-fix 2018-11-30 15:14:27 +03:00
Mikhail Glukhikh fd3c6496fb Redundant async inspection: support case with explicit scope
#KT-28504 Fixed
2018-11-30 15:14:27 +03:00
Mikhail Glukhikh 9f5255da02 SimplifyCallChainFix: take Conversion instead of raw text, polish a bit 2018-11-30 15:14:27 +03:00
Mikhail Glukhikh b6630699aa SimplifyCallChainFix: implement 'modifyArguments' as lambda 2018-11-30 15:14:26 +03:00
Mikhail Glukhikh 5947ca1142 Redundant async cleanup: use CAPS for constant names 2018-11-30 15:14:26 +03:00
Mikhail Glukhikh e6a1b96c53 Redundant async inspection: support case with GlobalScope
Partial implementation of KT-28504
2018-11-30 15:14:26 +03:00
Mikhail Glukhikh 138e36aa66 Simplify call chain fix: extract 'apply' 2018-11-30 15:14:26 +03:00
Mikhail Glukhikh c4717d17d9 Redundant async: extract generateConversion, integrate arguments inside 2018-11-30 15:14:26 +03:00
Mikhail Glukhikh d909162a89 Rename "Result is Result" inspection to "Direct use of result type" 2018-11-30 15:14:26 +03:00
Sergey Rostov 74f6c8ac5c Move resources: remove includes from src to resources, include resource folder in custom build scripts 2018-11-30 15:01:02 +03:00
Sergey Rostov df2e4524d7 Move resources from /src to separate /resources directory.
Previously this files was stored in /src directory and was included in
resources mainly by SourceSet.projectDefault from sourceSets.kt:

val processResources = tasks.getByName(processResourcesTaskName) as ProcessResources
processResources.from("resources") { include("**") }
processResources.from("src") { include("META-INF/**", "**/*.properties") }

Also there are some custom rules like this:

resources.srcDir("../idea-analysis/src").apply { include("**/*.properties") }
resources.srcDirs("idea-repl/src").apply { include("META-INF/**") }

All this rules are synthesized in script
https://github.com/snrostov/kotlin-migrate-resources/blob/master/src/main/kotlin/main.kt

This commit created using that script. See README.md for more details on
 script.
2018-11-30 15:01:01 +03:00
Denis Zharkov 2182be82e6 Fix message text for INCOMPATIBLE_ENUM_COMPARISON
^KT-28516 Fixed
2018-11-30 10:34:00 +03:00
Mikhail Glukhikh 05b1a99022 Fix "redundant async" for coroutines 1.*, forbid explicit scopes case
Related to KT-28504
#KT-28445 Fixed
2018-11-29 21:17:57 +03:00
Mikhail Glukhikh 93fff99d8d Extract stub library file from "Result is Result" inspection tests 2018-11-29 21:17:33 +03:00
Mikhail Glukhikh 6b60d49e09 Extract stub library file from "Redundant async" inspection tests 2018-11-29 21:17:16 +03:00
Mikhail Glukhikh 4e1d8fcfd0 Allow to convert nullable local / top to late-init since version 1.2
Enhancement for KT-12743
2018-11-29 19:58:11 +03:00
Toshiaki Kameyama 4cf266e99f Add intentions to convert nullable <--> lateinit var #KT-12743 Fixed 2018-11-29 19:45:10 +03:00
Mikhail Glukhikh 9049af3bdf Quick-fixes for SMARTCAST_IMPOSSIBLE: refactor
Enhancement for KT-27184
2018-11-29 19:26:58 +03:00
Toshiaki Kameyama cf3215b96e Add quick fixes for SMARTCAST_IMPOSSIBLE in 'if' #KT-27184 Fixed 2018-11-29 19:26:58 +03:00
Toshiaki Kameyama a0162adbf9 Nested lambda has shadowed implicit parameter: do not report when outer lambda 'it' is not used
#KT-26710 Fixed
2018-11-29 19:19:19 +03:00
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
Nikolay Krasko 93b7f05287 Add exceptions to VfsRootAccess in gradle tests 2018-11-29 16:23:21 +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 226ade615c Show build number in internal mode (KT-28254)
^KT-28254 Fixed
2018-11-29 13:31:09 +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
Ilya Chernikov 7719a5849f Refactor templates from dependencies loading:
move into background thread
avoid parallel execution
other refactorings

#KT-27669 fixed
2018-11-29 09:47:15 +01:00
Ilya Chernikov c67df19281 Improve classpath calculation for locally-defined script templates
Since at least in gradle-imported projects, the template could be found
in several modules, some of them - incomplete (parent/buildscript module)
the previous logic of filtering for already processed templates and roots
is incorrect, and therefore removed.
Also fixes the exception in our project "cannot load script definition"
2018-11-29 09:47:15 +01:00
Natalia Selezneva 4b5ba83c77 Tests: synchronize script dependencies in the beginning of the test because it invalidates the tested psi file
Fix for StandaloneScriptRunConfigurationTest.testOnFileMoveWithNonDefaultWorkingDir
2018-11-28 16:04:50 +03:00
Natalia Selezneva 25043a720c Tests: allow document modification during highlighting for scripts in LocalInspectionTest
Fix 'java.lang.AssertionError: PSI/document/model changes are not allowed during highlighting'
For script when there are some new dependencies we are restarting highlighting (see ScriptDependenciesCache)
2018-11-28 16:04:49 +03:00
Natalia Selezneva 902c4688a2 Tests: register jdk in project table to avoid leaking of VirtualPointer 2018-11-28 16:04:49 +03:00
Natalia Selezneva 1b0919a019 Fix navigation on stdlib in non-gradle projects (KT-28398)
In non-gradle project kotlin-stdlib-sources.jar contains sources for common and jvm part, so both (expect and actual) declarations are present in the same library sources scope.
We are moving expect declarations in the bottom of this list to avoid navigation on expect declaration when actual declaration is present in the same scope
^KT-28398 Fixed
2018-11-28 16:04:49 +03:00
Natalia Selezneva 8033ec469c Revert wrong testdata fix in NavigateToStdlibSourceTest 2018-11-28 16:04:49 +03:00