Commit Graph

46570 Commits

Author SHA1 Message Date
Mikhail Glukhikh cbcd35e2f5 Implement Kotlin sub-classes tooltip to handle MPP correctly
Before this commit, Java tooltip was in use which could not
work correctly with expect / actual classes
So #KT-21011 Fixed
2018-06-14 15:42:37 +03:00
Mikhail Glukhikh 90b6f369e0 Module-specific list cell renderer: wrap into runReadAction
This should fix KotlinGoto*ModuleTestGenerated.testExpectClassSuperclass
and related exception in IDEA
Additional fix for KT-23685
2018-06-14 13:55:31 +03:00
Mikhail Glukhikh 3d4b407d0c MPP wizard: introduce structure: root <- common <- js / jvm
This commit also removes deprecated structure with common root
So #KT-20554 Fixed
2018-06-14 13:14:45 +03:00
Ilya Chernikov cf294b57f0 Update changelog with changes in 1.2.50 2018-06-14 12:02:40 +02:00
Alexander Udalov 5d76e463d3 Fix exception from reflection on local delegated properties
The problem was that in JvmSerializerExtension.writeLocalProperties, we
only serialized metadata for local properties, but indices generated in
MemberCodegen.generatePropertyMetadataArrayFieldIfNeeded were among all
delegated properties in the class (not only local). This behaved
incorrectly as long as there was a local and a non-local delegated
property in the same class. For example, if there were 5 non-local
properties and then one local, that local property would get the index 5
and the synthetic signature "<v#5>". But there would only be one
Property entry in the metadata, and so reflection would fail here trying
to load the 5th element of the list which contains only one element.

Now, the index for a local delegated property is computed only as the
number of _local_ delegated properties above it in the class, i.e. the
first local delegated property gets index 0 (and synthetic signature
"<v#0>"), the next one -- index 1, and so on.

 #KT-23413 Fixed
2018-06-14 11:07:26 +02:00
Alexander Udalov b8722ad213 Fail with KotlinReflectionInternalError on non-found local delegated property
Instead of IndexOutOfBoundsException from the protobuf internals which
was thrown when loading extension with a non-existing index out of the
list of all extensions (KT-23413)
2018-06-14 11:07:26 +02:00
Pavel V. Talanov 2d7df21b0f JavaElementFinder: fix classes not being sorted as intended
This is tested by `whole project` inspection tests

 #KT-24704 Fixed
2018-06-14 10:51:13 +02:00
Vyacheslav Gerasimov aae0f5123e Build: Specify metadata source for ivy repositories
Otherwise composite build with Kotlin Native fails unable to resolve metadata files
2018-06-13 20:43:16 +03:00
Vyacheslav Gerasimov 992a31af88 Build: introduce javaPluginConvention extension on project
`ExtensionAware.the<T>()` introduced in gradle 4.7 made existing calls `the<JavaPluginConvention>()` invalid (on wrong receiver)
2018-06-13 19:43:03 +03:00
Vyacheslav Gerasimov 94c636adc3 Build: Fix usage of jvmArgs which became nullable 2018-06-13 19:43:03 +03:00
Vyacheslav Gerasimov 4b3a989b90 Build: Workaround IndexOutOfBoundsException on configuration with gradle 4.7
Using delegated property syntax somehow causes IndexOutOfBoundsException from kotlin-reflect, needs further investigation

Should be reverted after #KT-23413 is resolved
2018-06-13 19:43:03 +03:00
Ilya Gorbunov 0065a74c7e Update to gradle 4.7, fix nullability issue in buildSrc
JavaExec args list is nullable now, so use orEmpty before copying it.
2018-06-13 19:43:03 +03:00
Mikhail Glukhikh 37124e0c0d Make collectSlowLineMarker handle parents to deal with changes correctly
So #KT-20825 Fixed
So #KT-21113 Fixed
Related to IDEA-141330 fix
2018-06-13 19:23:41 +03:00
Mikhail Glukhikh 232d340118 Expect/actual companion object: set gutter on leaf element
May fix KT-21113
2018-06-13 19:23:40 +03:00
Mikhail Glukhikh 0a2ed054f1 Add module-specific cell renderers to navigate to actuals correctly
So #KT-23685 Fixed
2018-06-13 19:23:39 +03:00
Mikhail Glukhikh efd6b7a035 KotlinGotoTargetRenderProvider: .java -> .kt 2018-06-13 19:23:38 +03:00
Mikhail Glukhikh ab32a9a564 Minor enhancement of "actual" gutter
This makes hint about Ctrl+Alt+B available
2018-06-13 19:23:37 +03:00
Mikhail Glukhikh f139847e47 Cleanup: KotlinLineMarkerProvider 2018-06-13 19:23:36 +03:00
Mikhail Glukhikh cfd1a54463 Do not create expect / actual gutters for primary constructor
So #KT-22177 Fixed
So #KT-21063 Obsolete
2018-06-13 19:19:26 +03:00
Mikhail Glukhikh b235af0656 Can be private: correct detection of calls inside inline accessors 2018-06-13 19:17:50 +03:00
Mikhail Glukhikh 542f0a61d1 Unused receiver: optimization 2018-06-13 18:12:37 +03:00
Mikhail Glukhikh faa8d92560 Unused receiver: do not report on actual declarations #KT-24562 Fixed 2018-06-13 18:12:36 +03:00
Mikhail Glukhikh 38632c2937 Can be private: correct detection of calls inside inline function
So #KT-22180 Fixed
So #KT-22094 Fixed
2018-06-13 18:12:34 +03:00
Mikhail Glukhikh a8737a1278 Can be private -> could be private (violation of naming convention) 2018-06-13 18:12:33 +03:00
Mikhail Glukhikh 88974ee32b Can be private: simplification
Related to KT-22030
2018-06-13 18:12:31 +03:00
Toshiaki Kameyama 7786896e9b Can be private: don't report when object or subclass calls the function
Questionable
So #KT-22030 Fixed
2018-06-13 18:12:30 +03:00
Mikhail Glukhikh 6c8276b701 Do not report "can be private" on annotated declarations #KT-24422 Fixed 2018-06-13 18:12:28 +03:00
Mikhail Glukhikh d1155070a7 Do not report "can be private" on expect or actual declarations
So #KT-24374 Fixed
So #KT-24537 Fixed
2018-06-13 18:12:27 +03:00
Mikhail Glukhikh 11acea51b7 Reformat: can be private inspection 2018-06-13 18:12:25 +03:00
Mikhail Glukhikh a09f6e14a5 Do not suggest "convert to object" for sealed sub-classes with state
So #KT-24816 Fixed
2018-06-13 18:12:18 +03:00
Alexander Udalov 813d7fcb6a Fix bytecode for equals/hashCode of data classes once again
#KT-24790 Fixed
2018-06-13 16:06:20 +02:00
Alexander Udalov 8749bd901b Fix MalformedParameterizedTypeException on classes from kotlin-reflect
This allows GraalVM's `native-image` to work correctly on
kotlin-reflect.jar. The size of the artifact has increased only by 66
bytes

 #KT-23962 Fixed
2018-06-13 16:01:34 +02:00
Alexander Gorshenev 6d7dd58f70 Separated idl2k frontend and backend invocations. 2018-06-13 15:45:54 +03:00
Ilmir Usmanov 6b777356e8 Add test with java reflection 2018-06-13 15:08:32 +03:00
Ilmir Usmanov de7aa23119 Make private inline suspend functions effectively inline-only 2018-06-13 15:08:26 +03:00
Ilmir Usmanov 8a5ae16947 Generate separate methods for inline and noinline uses of inline suspend functions
Previously, inline suspend functions were effectively inline only,
but ordinary inline functions can be used as noinline.
To fix the issue, I generate two functions: one for inline with suffix
$$forInline and without state machine; and the other one without any
suffix and state machine for direct calls.
This change does not affect effectively inline only suspend functions,
i.e. functions with reified generics, annotated with @InlineOnly
annotation and functions with crossinline parameters.
 #KT-20219: Fixed
2018-06-13 15:08:19 +03:00
Alexander Udalov bb4972b00e Regenerate tests 2018-06-12 14:01:33 +02:00
Alexander Udalov fab45365c9 Update .idea/misc.xml for IDEA 2018.2 2018-06-12 14:01:33 +02:00
Nicolay Mitropolsky 79487a6a21 KotlinLanguageInjector: injecting into returned literals (#KT-21673) 2018-06-09 22:56:25 +03:00
Anton Bannykh 675d02093d mute new test + regenerate tests 2018-06-09 19:59:19 +03:00
Anton Bannykh 5fdc304a51 JS_IR: mute coroutine tests 2018-06-09 19:15:38 +03:00
Anton Bannykh 96355e2732 JS IR: mute codegen box tests automatically 2018-06-09 19:15:38 +03:00
Anton Bannykh 7e1713af44 Tests: keep "// !" directives first when auto-muting box tests 2018-06-09 19:15:38 +03:00
Anton Bannykh 1e169b0838 JS_IR: add common codegen box tests (same as for old backend) 2018-06-09 19:15:38 +03:00
Vyacheslav Gerasimov 7fb2452dba 182: Fix toNullability clash in j2k 2018-06-09 16:51:24 +03:00
Vyacheslav Gerasimov 411afb0303 182: Suppress compiler proguard warnings from intellij-core dependencies 2018-06-09 14:45:55 +03:00
Vyacheslav Gerasimov 272f8b832b 182: Set since build to 182.3040 2018-06-09 14:44:50 +03:00
Yan Zhulanow e57463e5fd 182: Fix compatibility with the Android plugin from AS 3.1
(cherry picked from commit 0592121)
2018-06-09 14:44:50 +03:00
Vyacheslav Gerasimov 4dbcb2e50e 182: Switch 182 to SNAPSHOT builds (until next EAP)
Android plugin 3.1 is merged to IJ 182, we need to provide compatible plugin
2018-06-09 14:44:50 +03:00
Ростов Сергей d9c9e6ef0a jps, mpp: fix GenerateTests.kt.172 2018-06-09 11:18:55 +03:00