Commit Graph

17520 Commits

Author SHA1 Message Date
Mikhail Glukhikh c0f5cafbd8 Set type reference: destructuring support #KT-14994 Fixed 2017-01-27 18:15:54 +03:00
Nikolay Krasko 370e7cd9f5 Stop considering injected files as Kotlin source roots (KT-15032)
We should have a special facade for them as descriptors are not
present in ordinal project facade.

Caused by change in idea 171 (https://github.com/JetBrains/intellij-community/commit/b3527d9a20f4b9391e98b426beb2548fb3efc0fe)

 #KT-15032 Fixed
2017-01-27 18:00:14 +03:00
Dmitry Jemerov 1361d5e915 EA-85853 - (KT-13415) AIOOBE: LightClassUtilsKt.toPsiTypeParameters 2017-01-27 14:48:05 +01:00
Dmitry Jemerov 59e2645293 EA-82902 - IOOBE: KtLightAnnotation$LightExpressionValue.unwrapArray 2017-01-27 14:48:05 +01:00
Mikhael Bogdanov 456037a30d Generate proper annotaions on parameters for @JvmOverloads;
Fix for KT-15743: Overloaded Kotlin extensions annotates wrong parameters in java

 #KT-15743 Fixed
2017-01-27 14:09:13 +01:00
Mikhael Bogdanov ab464ea86e Fix for KT-15726: Kotlin can't compile nested try-catch with return
#KT-15726 Fixed
2017-01-27 14:09:13 +01:00
Dmitry Petrov de14d4abc8 KT-15748 Type alias constructor return type should have a corresponding abbreviation 2017-01-27 15:16:04 +03:00
Dmitry Jemerov 1337a5216c Don't try to get text for invalid file (EA-86393 - PIEAE: PsiFileImpl.getText) 2017-01-27 12:47:41 +01:00
Dmitry Jemerov b987e37e82 Diagnostics for EA-86712 2017-01-27 12:47:41 +01:00
Dmitry Petrov e05f2eaff6 KT-15017 Throwing exception in the end of inline suspend-functions lead to internal compiler error
Suspend function call with a reachable (alive) begin marker and unreachable (dead) end marker
is an exit point for the corresponding coroutine.
It isn't a suspension point, and doesn't introduce a new state in the coroutine FSM.
2017-01-27 10:43:00 +03:00
Ilya Gorbunov 3be1174824 Replace @native with external in tests 2017-01-27 01:29:15 +03:00
Ilya Chernikov 4bb5e978a7 Implement SamWithReceiverAnnotations annotation and it's handling (KT-15848)
TODO: tests
2017-01-26 20:53:24 +01:00
Yan Zhulanow 3b4a8e0f33 Kapt3: Write qualified name of classes on error type conversion, handle declaration-site variance properly. 2017-01-27 01:20:01 +09:00
Alexey Sedunov 591910a216 Kotlin Facet: Import compiler arguments from Gradle project
#KT-15819 Fixed
 #KT-15929 Fixed
2017-01-26 18:06:14 +03:00
Mikhael Bogdanov 25d75bcd8b Delegates to java defaults methods in compatibility mode 2017-01-26 14:32:33 +01:00
Mikhael Bogdanov 0006a04b01 Report warning on hided override by delegation when compile to 1.0 version 2017-01-26 14:32:33 +01:00
Alexey Tsvetkov 470a7706aa Fix build 2017-01-26 15:49:40 +03:00
Alexey Tsvetkov f46217129b EA-95293: do not report OUTPUT messages to message collector if outputs collector is specified 2017-01-26 13:38:52 +03:00
Simon Ogorodnik cd73d17bd4 KT-15311 "Add Import" intention generates incorrect code
#KT-15311 fixed
2017-01-26 13:24:41 +03:00
Dmitry Petrov 1613ad0505 KT-15898 Cannot use type alias to qualify enum entry
Type alias static scope includes enum entries for underlying enum class.
2017-01-26 10:23:56 +03:00
Dmitry Petrov a974ed1049 Support custom accessors for top-level properties in scripts. 2017-01-26 10:12:13 +03:00
Dmitry Petrov ab2448307e Functions imported from objects should be properly mapped to "real" suspend function descriptors. 2017-01-26 09:39:53 +03:00
Dmitry Petrov 9d4047f5e4 Calls for suspend functions imported from object should be checked in CoroutineSuspendCallChecker. 2017-01-26 09:39:53 +03:00
Dmitry Petrov 500667ff45 Function and property descriptors imported from object should keep track of the original imported descriptor,
otherwise they break an assumption that 'getOriginal()' chain would eventually converge on some callable descriptor.
2017-01-26 09:39:53 +03:00
Mikhail Zarechenskiy b0c3c7463b Fix internal compiler error about arithmetic exception
#KT-8264 Fixed
2017-01-26 03:39:50 +03:00
Kirill Rakhman f74c0950d2 use property syntax 2017-01-26 00:56:33 +03:00
Alexey Andreev 1c8478e46b JS: fix translation of enum entries without parentheses that call secondary constructors, constructors with default parameters and varargs. See KT-15900, KT-14097 2017-01-25 18:09:23 +03:00
Alexey Andreev 0f87320f9e JS: regenerate test data 2017-01-25 18:09:23 +03:00
Alexey Andreev 31c758994d JS: remove diagnostic about callable reference to built-in 2017-01-25 18:09:22 +03:00
Alexey Andreev ad4fb44827 JS: report about using of external interfaces in class literals 2017-01-25 18:09:22 +03:00
Alexey Andreev deaac83e70 JS: report about wrong module usage in class literals. See KT-15253 2017-01-25 18:09:21 +03:00
Alexey Andreev f52eebd302 Add extension point for back-ends to perform platform-specific checks of class literals 2017-01-25 18:09:21 +03:00
Alexey Andreev 9000d54d8a JS: when checking calls to JsModule declarations, check arguments passed to reified type parameters. See KT-15253 2017-01-25 18:09:20 +03:00
Mikhael Bogdanov 4c7a07bed6 Optimize defaults format: avoid reduntant stack normalization operations 2017-01-25 15:56:56 +01:00
Mikhael Bogdanov fc4be17623 Fix for KT-14966: Regression: VerifyError on access super implementation from delegate
#KT-14966 Fixed
2017-01-25 15:56:55 +01:00
Mikhael Bogdanov 11578c602e Added inline tests for jvm 8 target 2017-01-25 15:56:55 +01:00
Simon Ogorodnik e220a20eed KT-15796 Import of class referenced only in KDoc not preserved after copy-paste
#KT-15796 fixed
2017-01-25 17:41:26 +03:00
Ilya Chernikov e3338c1e31 Fix testdata 2017-01-25 15:29:15 +01:00
Ilya Chernikov ec7e8873f4 Update daemon client with wrappers for basic compiler API
Other changes to extract results for compiler, tests.
2017-01-25 15:29:15 +01:00
Denis Zharkov 9ce3880ac6 Support getValue/setValue/provideDelegate suspend functions in JVM backend
- Determine if there are non-tail calls to getValue/setValue simply
by existance of such a property
(it might be too strict, but implementing more granular check may be rather hard)

- Change in ExpressionCodegen is relevant for provideDelegate,
that in case of local variables uses OnStack as StackValue
(see the comment near these changes)

 #KT-15933 Fixed
2017-01-25 13:54:01 +03:00
Denis Zharkov 9ca9a988a6 Fix accessor generation for suspend functions
1. JVM view of suspend accessors must be also an instance of AccessorForFunctionDescriptor,
thus `createSubstitutedCopy` should be correctly overidden.

2. accessibleFunctionDescriptor should unwap the initial suspend descriptor,
for the same reasons as for type aliases constructors and etc:
these descriptors are used as keys of the map of accessors, so
to avoid duplication for suspend view and initial suspend descriptor,
we always use the latter one as a key.

 #KT-15907 Fixed
 #KT-15935 Fixed
2017-01-25 13:54:01 +03:00
Denis Zharkov 0693bd6b62 Fix codegen issue on suspend functions with receiver
When the extension receiver of a named suspend function was marked as used
from the inner lambda, codegen used to throw a "Don't know how to generate outer expression for class" exception.

It may seem quite tricky, but currently for suspend lambda body
its extension receiver is treated as it's defined inside the relevant "doResume"
(there is an actual bytecode part that fills the relevant local variable)

The problem was that inside ExpressionCodegen for "doResume" of named
suspend function we couldn't determine that original function has
an extension receiver.

 #KT-15821 Fixed
 #KT-15820 Fixed
2017-01-25 13:54:01 +03:00
Denis Zharkov 131c008ba3 Minor. Refine naming for original suspend lambda descriptors
Also inline some methods with single usage
2017-01-25 13:54:01 +03:00
Denis Zharkov 02b40326cc Fix incorrect coroutines codegen behavior
If all the suspension calls in a suspend function were "hidden"
under the for-convention (iterator/next/hasNext) calls,
control-flow didn't find them, thus supposing that there is no
suspension points and there is no need to generate a coroutine state machine

The solution is to add relevant calls to CFG

 #KT-15824 Fixed
2017-01-25 13:54:01 +03:00
Alexey Andreev 8cbea903f4 JS: add checker that checks if JsQualifier has wrong format 2017-01-25 13:52:19 +03:00
Alexey Andreev ba65e58fdd JS: add checker to detect non-external declarations in files marked by JsModule or JsQualifier annotation 2017-01-25 13:52:19 +03:00
Alexey Andreev 115f6ced87 JS: fix support of throwable constructors without message and/or cause parameters 2017-01-25 13:52:16 +03:00
Alexey Andreev 6f4d8decc7 JS: add support of custom exceptions inherited from kotlin.Throwable that call super constructor from secondary constructor 2017-01-25 13:52:16 +03:00
Alexey Andreev f34093db9f JS: make kotlin.Throwable = Error. See KT-15312 2017-01-25 13:52:13 +03:00
Mikhail Zarechenskiy 68b223211c Fix bogus integer overflow warning for 'mod' operator
#KT-15875 Fixed
2017-01-25 02:24:28 +03:00