Alexander Udalov
3a0100f604
Minor, move isInlineOnlyOrReified to module descriptors
2016-12-16 13:12:40 +03:00
Stanislav Erokhin
8968bc3dd6
RestrictSuspension -> RestrictsSuspendExtensions
...
(cherry picked from commit 9e0c733)
2016-12-15 23:58:24 +03:00
Dmitry Petrov
f19581dc4d
Suspend lambdas can't have value parameters (UNSUPPORTED in M04).
2016-12-15 23:58:16 +03:00
Stanislav Erokhin
c5aeaae8e6
Support explicit this receiver (this.foo()) for RestrictSuspension function call.
2016-12-15 23:58:15 +03:00
Stanislav Erokhin
f9d550732e
Minor. remove useless call.
2016-12-15 23:58:13 +03:00
Mikhail Zarechenskiy
4b892b1c9c
Report corresponding diagnostic on suspend lambda
2016-12-15 23:58:13 +03:00
Stanislav Erokhin
b88c8ea2e7
Support checks for annotation RestrictSuspension.
2016-12-15 23:58:12 +03:00
Mikhail Zarechenskiy
664485f4bb
Introduce keys to control applicability of coroutines
...
By default now we produce warnings on coroutines
2016-12-15 23:58:07 +03:00
Dmitry Petrov
30710955dc
Minor: 'vararg' is a modifier on value parameters of functional types.
2016-12-15 23:58:06 +03:00
Dmitry Petrov
a3338b2230
Allow only 'out' modifier for value parameter modifiers in functional type
...
(comments also mention 'lazy' and 'ref'; these value parameter modifiers are unsupported, anyway).
2016-12-15 23:58:02 +03:00
Dmitry Petrov
eec96f1954
Extension functions & inference.
2016-12-15 23:58:01 +03:00
Stanislav Erokhin
42440f50dc
Remove soft keyword coroutine & isCoroutine from ValueParameterDescriptor.
2016-12-15 23:57:56 +03:00
Stanislav Erokhin
55983a7808
Support type inference for coroutines.
2016-12-15 23:57:55 +03:00
Stanislav Erokhin
0132f3eea7
Remove kotlin.coroutine package from default imports.
2016-12-15 23:57:51 +03:00
Stanislav Erokhin
642ea81625
Remove annotation Suspend. Use modificator instead.
2016-12-15 23:57:47 +03:00
Dmitry Petrov
6d73e13798
Generic type arguments inference for lambdas as suspend functions.
2016-12-15 23:57:46 +03:00
Dmitry Petrov
bc069cd686
Lambda in position with suspend function expected type:
...
simple case - val initializer.
2016-12-15 23:57:44 +03:00
Dmitry Petrov
6e1340da82
Introduce 'SuspendFunction$n<...>' types.
2016-12-15 23:57:41 +03:00
Dmitry Petrov
a15d423db4
Support modifiers on types in parser
...
(required for 'suspend' on functional types).
TYPE_REFERENCE element now has MODIFIER_LIST child, which hosts annotations and modifiers for the corresponding type reference.
Annotations and modifiers written before an extension function type are now parsed as annotations and modifiers for the functional type, not the receiver type.
So, '@Ann A.(B) -> C' was '(@Ann A).(B) -> C', and became '@Ann (A.(B) -> C)'.
NB: DSL_SCOPE_VIOLATION testData updated accordingly.
Type projection variance modifiers ('in', 'out') belong to a separate modifier list under corresponding type projection (not under a type reference).
'A<in suspend T>' is 'A<(in (suspend T))>', 'A<suspend in T>' is an error.
In stub builder, create a modifier list node to host annotations and modifiers (none so far; TODO properly serialize/deserialize types with modifiers).
2016-12-15 23:57:41 +03:00
Denis Zharkov
1ab003c029
Support another one coroutine convention in front-end
...
- There will be no `coroutine` keyword for builders
- They accept a special suspend function type instead
(it's return type is straightforward, not Continuation<Unit>)
- Instances of these types may be run with special built-in functions
- These built-ins functions are parametrized
with handleResult/handleException/interceptResume, so these operators
become unnecessary (and controllers too)
NB: `@Suspend` annotation is subject to replace with the `suspend` modifier
on types
2016-12-15 23:32:11 +03:00
Denis Zharkov
66c2333eb5
Drop checks related to 'coroutine' modifier
2016-12-15 23:32:10 +03:00
Denis Zharkov
b1d1128466
Minor. Move createFunctionType to core
...
As it will be used in the type mapper soon
2016-12-15 23:32:09 +03:00
Mikhail Glukhikh
295360ad3e
Navigation from header to implementation and vice versa #KT-15204 Fixed
2016-12-15 15:50:19 +03:00
Nikolay Krasko
868495437c
Filter out first dependency from module dependencies
2016-12-15 14:33:14 +03:00
Ilya Gorbunov
3bedbfae33
Move kotlin.comparisons.Comparator to kotlin package and remove the former from default imports.
2016-12-15 13:39:10 +03:00
Alexander Udalov
e50b102e89
Treat absence of version in SinceKotlinInfo as infinite version
...
This may be needed in the future to make some declarations erroneous for all
versions of compilers
2016-12-15 11:46:18 +03:00
Alexander Udalov
ede60efda5
Support SinceKotlinInfo for deserialized classes
2016-12-15 11:46:18 +03:00
Alexander Udalov
6393ac5871
Check language version for deprecation via SinceKotlinInfo
2016-12-15 11:46:17 +03:00
Alexander Udalov
feeed98323
Introduce SinceKotlinInfo, load from serialized metadata
...
This is a way for future compilers to cause previous compilers to report
diagnostics on usages of some declarations. Diagnostic can have a message
(and/or error code), level (error, warning, or completely hide the declaration
from the resolution), and Kotlin version, since which the diagnostic should no
longer be reported
2016-12-15 11:46:17 +03:00
Alexander Udalov
212240a008
Collect all deprecations, do not stop on the first found one
...
#KT-15245 In Progress
2016-12-15 11:46:17 +03:00
Alexander Udalov
82703d9cfd
Minor refactoring in deprecationUtil.kt
...
Split getDeclaredDeprecatedAnnotation into two methods for clarity
2016-12-15 11:46:16 +03:00
Alexander Udalov
122c631fcf
Refactor getDeprecation() -> getDeprecations()
...
In subsequent commits, another kind of deprecation is introduced which should
be reported alongside with deprecation by the `@Deprecated` annotation
2016-12-15 11:46:16 +03:00
Ilya Chernikov
b1cd98f2d5
Refactor and fix script annotation processing
2016-12-15 07:26:07 +01:00
Ilya Chernikov
b19d61e2f4
Refactor annotation resolving, some tests fixed, more tests needed
2016-12-15 07:26:07 +01:00
Ilya Chernikov
28b01126d9
Improve type boundaries for KotlinScriptDefinition interface
2016-12-15 07:26:07 +01:00
Stanislav Erokhin
457918a6dd
Changed name resolution for dynamic extension. Added annotation DynamicExtension.
2016-12-14 21:36:26 +03:00
Mikhail Zarechenskiy
42d867b3bf
Support number conversion for binary 'rem' operator
2016-12-14 15:29:00 +03:00
Mikhael Bogdanov
268d55104c
Don't generate delegation to java default methods
...
#KT-15226 Fixed
2016-12-14 11:20:04 +01:00
Mikhail Glukhikh
ab72460f28
Rename: allDependentModules --> allDependencyModules
2016-12-13 19:07:07 +03:00
Mikhail Glukhikh
052a5033b5
PLATFORM_DECLARATION_WITHOUT_DEFINITION rendering changed (platform is included into diagnostic text now)
2016-12-13 19:06:08 +03:00
Mikhail Glukhikh
7649232f86
Platform header annotator: implementation + simple multi-platform highlighting tests #KT-14905 Fixed
2016-12-13 19:02:23 +03:00
Mikhail Glukhikh
57da92b862
Infrastructure change: module descriptor now knows its platform kind & its sources kind
2016-12-13 18:53:55 +03:00
Stanislav Erokhin
59efedf610
Rename platform to header.
2016-12-13 18:00:00 +03:00
Stanislav Erokhin
dbe8edda5f
Remove propertyDelegate and fix unused parameter checker for provideDelegate.
2016-12-12 23:14:09 +03:00
Stanislav Erokhin
9dc9fb578f
Rename toDelegateFor to provideDelegate.
2016-12-12 23:14:07 +03:00
Dmitry Petrov
e2b6d2d849
Drop 'propertyDelegated' convention (without additional deprecation ceremony).
2016-12-12 23:13:58 +03:00
Dmitry Petrov
5ddf8e60e6
Use delegate initializer expression resolution scope for 'toDelegateFor' resolution.
2016-12-12 23:13:57 +03:00
Dmitry Petrov
2ee31916c7
'createDelegate' operator renamed to 'toDelegateFor'
2016-12-12 23:13:55 +03:00
Dmitry Petrov
e2ba288323
'createDelegate' operator convention:
...
- resolution & inference
- additional diagnostic for language feature support
2016-12-12 23:13:54 +03:00
Dmitry Petrov
558e8aaebb
DelegatedPropertyResolver: convert to Kotlin & cleanup.
2016-12-12 23:13:52 +03:00