Commit Graph

17216 Commits

Author SHA1 Message Date
Denis Zharkov ce333b0a58 Minor. Remove exception handling part from CoroutineMethodTransformer
There is no handleException operator anymore
2016-12-22 11:19:08 +03:00
Denis Zharkov 8475869fb3 Support common calls on suspend function typed values
Also support multiple value parameters in suspend function type

 #KT-15379 Fixed
 #KT-15380 Fixed
2016-12-22 11:15:52 +03:00
Denis Zharkov d0ba048342 Refine coroutine/suspend functions ABI
- `invoke` method must always start a suspend functions
- For creation of coroutine that has not been started yet, there are
two special internal interfaces `SuspendFunction0`/`SuspendFunction1`
2016-12-22 11:08:42 +03:00
Denis Zharkov 75174b4fba Fix issue on dumping override of suspend function
The meaning of `setDropOriginalInContainingParts()` call is that
it makes copyBuilder forget the original parts, in particular
the valueParameter.original.containingDeclaration does not reference
original descriptor no more

Otherwise the following exception is happening:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.RangeCheck(ArrayList.java:547)
	at java.util.ArrayList.get(ArrayList.java:322)
	at org.jetbrains.kotlin.descriptors.impl.ValueParameterDescriptorImpl.getOverriddenDescriptors(ValueParameterDescriptorImpl.kt:119)
	at java.util.ArrayList.RangeCheck(ArrayList.java:547)
	at java.util.ArrayList.get(ArrayList.java:322)
	at org.jetbrains.kotlin.descriptors.impl.ValueParameterDescriptorImpl.getOverriddenDescriptors(ValueParameterDescriptorImpl.kt:119)
	at org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt$hasDefaultValue$1.getNeighbors(DescriptorUtils.kt:192)
	at org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt$hasDefaultValue$1.getNeighbors(DescriptorUtils.kt)
	at org.jetbrains.kotlin.utils.DFS.doDfs(DFS.java:98)
	at org.jetbrains.kotlin.utils.DFS.doDfs(DFS.java:99)
	at org.jetbrains.kotlin.utils.DFS.dfs(DFS.java:27)
	at org.jetbrains.kotlin.utils.DFS.dfs(DFS.java:37)
	at org.jetbrains.kotlin.utils.DFS.ifAny(DFS.java:47)
	at org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt.hasDefaultValue(DescriptorUtils.kt:189)
	at org.jetbrains.kotlin.renderer.DescriptorRendererImpl.renderValueParameter(DescriptorRendererImpl.kt:803)
	at org.jetbrains.kotlin.renderer.DescriptorRendererImpl.renderValueParameters(DescriptorRendererImpl.kt:767)
	at org.jetbrains.kotlin.renderer.DescriptorRendererImpl.renderFunction(DescriptorRendererImpl.kt:683)
	at org.jetbrains.kotlin.renderer.DescriptorRendererImpl.access$renderFunction(DescriptorRendererImpl.kt:42)
	at org.jetbrains.kotlin.renderer.DescriptorRendererImpl$RenderDeclarationDescriptorVisitor.visitFunctionDescriptor(DescriptorRendererImpl.kt:1039)
	at org.jetbrains.kotlin.renderer.DescriptorRendererImpl$RenderDeclarationDescriptorVisitor.visitFunctionDescriptor(DescriptorRendererImpl.kt:1002)
	at org.jetbrains.kotlin.descriptors.impl.FunctionDescriptorImpl.accept(FunctionDescriptorImpl.java:760)
2016-12-22 11:08:42 +03:00
Denis Zharkov 90c8e35331 Minor. Drop unused parts 2016-12-22 11:08:42 +03:00
Alexey Sedunov 12f2c04a0b Misc: Fix argument copying 2016-12-22 02:47:34 +03:00
Alexey Andreev f42a15bc4f Fix test data for light analysis test 2016-12-21 17:31:29 +03:00
Nikolay Krasko 6ca5ba3615 Don't call getClassDescriptor for local declarations (KT-15259)
#KT-15259 Open
2016-12-21 13:13:10 +03:00
Dmitry Petrov 8fe9de1d35 Generate toArray methods defined in classes inherited from collections as public even if they are declared with different visibility in Kotlin. 2016-12-21 10:50:17 +03:00
Alexander Udalov e8c9e81235 Minor, move and rename test data directory 2016-12-20 17:29:30 +03:00
Alexander Udalov ca886ecb8d Do not report "delegation member hides override" when hidden member is final
This situation is erroneous because OVERRIDING_FINAL_MEMBER_BY_DELEGATION is
already reported, no need to report another error
2016-12-20 17:29:17 +03:00
Alexander Udalov 482b43631c Refactor DelegationChecker and related code
- move getDelegates from CodegenUtil to DelegationResolver, reuse it in
  DelegationChecker
- use getAllOverriddenDescriptors + filterOutOverridden instead of a manual DFS
2016-12-20 17:28:50 +03:00
Denis Zharkov 2dd7d89048 Fix built-ins overridability issue
See the comment for clarification

 #KT-15097 Fixed
2016-12-20 16:35:26 +03:00
Alexey Andreev eb5c79c70d JS: support int overflow behaviour in augmented assignment 2016-12-20 15:47:38 +03:00
Alexey Andreev c411a8febe JS: update tests 2016-12-20 15:47:37 +03:00
Mikhail Zarechenskiy 24d5bdd62c Fix test data after migration to 'rem' 2016-12-20 15:20:47 +03:00
Mikhail Zarechenskiy 1baf719cb4 Update operations map, remove TODO 2016-12-20 15:20:38 +03:00
Nikolay Krasko c076ad5a8d Don't assign type parameters from original proto if type is substituted with Any (KT-15128)
#KT-15128 Fixed
2016-12-20 15:16:23 +03:00
Mikhail Zarechenskiy 35e732a97f Place inference from getters under the language feature 2016-12-20 14:14:19 +03:00
Mikhael Bogdanov c38b55612b Support properties in @PublishedApi bridge quickfix 2016-12-20 09:42:13 +01:00
Mikhael Bogdanov 6ca1d47207 Published-api checker refactoring, support java package-protected visibility 2016-12-20 09:42:13 +01:00
Dmitry Petrov 0fa2c54ae8 Identity comparison for primitives is deprecated (warning).
Identity comparison for primitive vs non-primitive is a warning (due to implicit boxing).
2016-12-20 11:00:58 +03:00
Alexey Tsvetkov 434f33f9e9 Minor: remove default value of retryOnConnectionError parameter 2016-12-19 22:55:28 +03:00
Alexey Tsvetkov 254d051a1f Minor: replace map().flatten()->flatMap() 2016-12-19 22:55:27 +03:00
Alexey Tsvetkov c89e62c45a Minor: rename enableIC->withIC 2016-12-19 22:55:27 +03:00
Alexey Tsvetkov 69d1ee7b11 Run kapt with daemon 2016-12-19 22:55:26 +03:00
Alexey Tsvetkov de2736489b Unify Gradle and Kotlin daemon cache version checking 2016-12-19 22:55:25 +03:00
Alexey Tsvetkov d5e42e3271 Clear jar cache with daemon 2016-12-19 22:55:24 +03:00
Alexey Tsvetkov 69e8cf6a25 Compile multiplatform projects with daemon 2016-12-19 22:55:24 +03:00
Alexey Tsvetkov 8228d5828e Fix multiproject Gradle IC with daemon 2016-12-19 22:55:22 +03:00
Alexey Tsvetkov fb869277d9 Set property "idea.plugins.compatible.build" every time production environment is created
Gradle can wipe system properties between the build.
If this property is not set, "idea.properties is not found exception"
can be thrown when creating KotlinCoreEnvironment.
2016-12-19 22:55:22 +03:00
Alexey Tsvetkov 51a8f6ee4f Implement server side IC 2016-12-19 22:55:21 +03:00
Alexey Tsvetkov f411bb0b4b Refactoring: extract withDaemon 2016-12-19 22:55:21 +03:00
Alexey Tsvetkov 9654607f42 Refactoring: pass MessageCollector, OutputItemsCollector in CompilerEnvironment 2016-12-19 22:55:20 +03:00
Alexey Tsvetkov 145608ec0f Minor: remove redundant call 2016-12-19 22:55:20 +03:00
Alexey Tsvetkov c1812d7d92 Move IC tests to compiler
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:55:19 +03:00
Alexey Tsvetkov cbe680d876 Move file utils
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:55:17 +03:00
Alexey Tsvetkov 8bd8f5eacf Make IC classes public
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:55:14 +03:00
Alexey Tsvetkov a569f7e75a Remove remaining gradle api references
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:55:06 +03:00
Alexey Tsvetkov 939020ec60 Replace org.jetbrains.kotlin.com.intellij with com.intellij
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:54:38 +03:00
Alexey Tsvetkov f40a3eff20 Move IC from Gradle to compiler
Reasons for moving:
1. Integration with Kotlin daemon for Gradle.
Gradle bundles Kotlin compiler (kotlin-compiler-embeddable) since Gradle 3.2.
There is no plugin isolation in Gradle, so strange compilation errors/exceptions may happen.
We decided to fix this problem by compiling out-of-process using Kotlin daemon.

Reasons for moving IC to the compiler:
* Better isolation from Gradle process.
* Incremental compilation logic is not scattered across two process and multiple modules.
* Makes it possible to implement standalone CLI IC
2016-12-19 22:46:12 +03:00
Alexey Tsvetkov 4fdca24db4 Remove source annotations removing (not needed with KAPT3) 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov 0be4299c8a Refactoring: extract JPS specific code from compiler-runner 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov eac76915be Minor: remove ImmutableMapBuilder reference from CompilerOutputParser 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov c8394cd0cc Convert CompilerOutputParser: convert to kotlin 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov d587c3091c Convert CompilerOutputParser: rename file 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov 896d81143c Introduce compiler-runner module 2016-12-19 22:46:12 +03:00
Stanislav Erokhin 04fddc7139 Discriminate header classes in member scope.
We made it because of non-stable name resolution when project is multi platform. For such projects in platform module we have two classifiers with the same name, but impl class or type alias should win!
2016-12-19 22:43:10 +03:00
Yan Zhulanow f8edf51c1b Allopen, Noarg: Support transitive meta-annotations 2016-12-19 21:18:11 +03:00
Dmitry Jemerov bc22b67995 Index and locate .kotlin_metadata files in IDE 2016-12-19 17:40:13 +01:00