Alexander Udalov
af9883bccf
Add test on accidental redeclaration of final members from java.lang.Enum
...
This is working because of the additional built-ins members added in 1.1
2016-06-16 16:51:18 +03:00
Alexander Udalov
79ecc9751b
Report error on accidentally "overriding" wait/notify
...
Hard-code only Object members because diagnostics are reported for all other
classes out of the box in 1.1
#KT-7174 Fixed
2016-06-16 16:51:18 +03:00
Stanislav Erokhin
585dcbf1f3
KT-10717 Type inference for lambda with local return
...
#KT-10717 Fixed
2016-06-10 21:28:05 +03:00
Dmitry Petrov
c414f456a4
Like nested classes, it is not possible to reference inherited nested type alias by a child class.
2016-06-10 16:21:27 +03:00
Dmitry Petrov
7b6c1c092c
Inherited type alias capturing type parameters of generic base class:
...
doesn't work partially due to KT-11123.
2016-06-10 16:21:27 +03:00
Dmitry Petrov
bee1762b0e
'Nothing' as function return type and property type can't be abbreviated.
2016-06-10 16:21:27 +03:00
Dmitry Petrov
0ff677596f
Modifiers checking for type aliases.
...
Exposed type checking for type aliases.
2016-06-10 16:21:26 +03:00
Dmitry Petrov
139e219ebd
Star projections in type alias expansions are substituted to star projections
...
for corresponding type parameters in expanded type.
Test that type alias arguments are substituted literally,
and no type approximation is performed on substitution.
2016-06-10 16:21:26 +03:00
Dmitry Petrov
1efbd34529
Test: arguments of type aliases should be substituted literally,
...
without type approximation.
TYPE_MISMATCH is an expected error.
2016-06-10 16:21:26 +03:00
Dmitry Petrov
7da50069eb
Additional tests for illegal type in type alias expansion:
...
'Array<Nothing>' passed as an unused parameter to type alias.
2016-06-10 16:21:26 +03:00
Dmitry Petrov
115f40d371
UNUSED_TYPEALIAS_PARAMETER: special diagnostic for typealias parameters
...
explicitly telling that such type parameters are not used in type checking.
Move typealias-related utility functions on types to TypeUtils.kt.
2016-06-10 16:21:25 +03:00
Dmitry Petrov
40dd36bcf6
Recursive type alias expansion:
...
when resolving abbreviated type, do not check bounds
if the resulting type contains type aliases.
2016-06-10 16:21:25 +03:00
Dmitry Petrov
c04b16d6cc
Type parameters for type alias constructor are declared type parameters for type alias
...
(no implicit type parameters from containing scopes).
2016-06-10 10:25:09 +03:00
Dmitry Petrov
bcd1df4efe
More tests for type alias constructor type parameters.
2016-06-10 10:25:09 +03:00
Dmitry Petrov
6924ed53ec
Local type aliases: resolve
2016-06-10 10:25:09 +03:00
Dmitry Petrov
9a7bbc1516
Type alias shouldn't expand to a malformed type (e.g., 'Array<Nothing>').
2016-06-10 10:25:09 +03:00
Dmitry Petrov
d02785806d
Type alias shouldn't capture type parameters of inaccessible outer classes.
2016-06-10 10:25:09 +03:00
Dmitry Petrov
12710bec2f
Redeclaration errors for type aliases: type alias vs function.
2016-06-10 10:25:08 +03:00
Dmitry Petrov
5ad4c8b9c7
Redeclaration errors for type aliases: type alias vs property.
2016-06-10 10:25:08 +03:00
Denis Zharkov
92bd6880da
Add AdditionalBuiltInsMembers language feature and relevant checks
2016-06-09 17:57:15 +03:00
Stanislav Erokhin
cd4c9968df
Minor. fix test
2016-06-09 16:42:42 +03:00
Stanislav Erokhin
53bf720503
Fix type alias problems after rebase.
2016-06-09 16:42:41 +03:00
Stanislav Erokhin
93b27417af
Minor. update testdata.
2016-06-09 12:59:06 +03:00
Stanislav Erokhin
541b9954f5
Minor. Roll back behaviour for FlexibleType.isError.
2016-06-09 12:58:23 +03:00
Stanislav Erokhin
8c2ad82de7
Minor. fixes after review
2016-06-09 12:58:07 +03:00
Stanislav Erokhin
203c4cd94d
Remake Raw type representation.
...
(cherry picked from commit b21cede)
2016-06-09 12:57:53 +03:00
Dmitry Petrov
44829a61e7
Report redeclaration errors for type aliases vs class/interface/object.
2016-06-09 10:27:51 +03:00
Dmitry Petrov
d3721872b2
Tests for type alias diagnostics: type parameter bound violation in type alias constructor
2016-06-09 10:27:51 +03:00
Dmitry Petrov
b552425558
Tests for type alias diagnostics: type projections in type alias constructor
...
(should report same errors as for classes)
2016-06-09 10:27:51 +03:00
Dmitry Petrov
d86be43171
Tests for type alias diagnostics: wrong number of type arguments in type alias constructor
2016-06-09 10:27:51 +03:00
Dmitry Petrov
b2e5cfebee
Diagnostics for type alias expansion errors in type alias RHS
2016-06-09 10:27:50 +03:00
Denis Zharkov
759cb83dfb
Add checks that coroutines are available at the given language level
2016-06-08 18:53:16 +03:00
Denis Zharkov
b8d4d39f4d
Add custom applicability checks for suspend/coroutine modifiers
2016-06-08 18:53:16 +03:00
Denis Zharkov
d760a2ec3b
Add CallChecker prohibiting non-local suspension calls
...
Effectively suspension point is local <=> return to relevant lambda is allowed in place
2016-06-08 18:53:16 +03:00
Denis Zharkov
75e112e752
Implement basic support for coroutines in JVM backend
2016-06-08 18:53:16 +03:00
Denis Zharkov
1af9321c20
Revert "'async' reserved in front of function literals"
...
This reverts commit 6155d836a5 .
2016-06-08 18:53:16 +03:00
Denis Zharkov
7d3333e86e
Revert "Reserve "async* {}", extend the quick-fix"
...
This reverts commit a7e7d53e2b .
2016-06-08 18:53:16 +03:00
Denis Zharkov
372791eb15
Replace common extension receiver of coroutine-lambda with magic one
...
Currently it only contains additional synthetic declarations for suspend-functions
E.g. `fun <V> await(f: CompletableFuture<V>): V` for `fun <V> await(f: CompletableFuture<V>, machine: Continuation<V>): Unit`
2016-06-08 18:53:16 +03:00
Denis Zharkov
8f4ee0528e
Implement operator checks for controller's handleResult
2016-06-08 18:53:16 +03:00
Denis Zharkov
fcbff72f6f
Replace expected type for coroutine-lambda
...
Use 'handleResult' method of controller to determine what lambda should return
If original declaration was
fun builder(coroutine c: Controller.() -> Continuation<Unit>) = 1
and there is 'fun handleResult(x: X, c: Continuation<Nothing>)',
then expected type for lambda is 'Controller.() -> X'
2016-06-08 18:53:16 +03:00
Dmitry Petrov
9c74f27967
Type alias can't expand to 'dynamic'
2016-06-08 15:55:52 +03:00
Dmitry Petrov
ef4c3bdae8
Don't expand types that don't contain type aliases or type parameters.
2016-06-08 15:55:52 +03:00
Dmitry Petrov
cb08d976d3
Tests for importing type aliases
2016-06-08 15:55:52 +03:00
Mikhail Glukhikh
4b6b35dadf
Type parameter is considered capable of taking any value for the purpose of cast possibility check #KT-6611 Fixed
2016-06-08 15:25:34 +03:00
Alexander Udalov
526a64dc36
Pass data flow info from '::' expressions, fix expected type
2016-06-07 12:43:07 +03:00
Alexander Udalov
e2d6e0cbab
Propagate control flow to bound double colon expressions
...
"Unused expression" should be reported on unused double colon expressions, this
is postponed
#KT-12551 Open
2016-06-07 12:42:42 +03:00
Alexander Udalov
0ce6bd9999
Ignore resolution to function without arguments on LHS of '::'
...
In the expression "Runnable::run" we were resolving the left-hand side to the
SAM constructor of Runnable. Now we detect this situation, ignore the result of
such resolution, and continue resolving the LHS as a type
2016-06-07 12:42:19 +03:00
Alexander Udalov
04c190231a
Support bound references to objects and companion objects
...
Tweak member extension detection a little bit to prohibit extensions imported
from objects (they don't have one of the receiver parameters)
2016-06-07 12:41:30 +03:00
Alexander Udalov
d90b40c661
Use LanguageFeatureSettings instead of custom option for bound callable references
2016-06-07 12:41:29 +03:00
Dmitry Petrov
872b3e8a52
DeclarationsChecker runs checks on type alias declarations.
...
TYPEALIAS_SHOULD_EXPAND_TO_CLASS diagnostics
(implemented for type aliases expanded to type parameters).
2016-06-06 13:50:37 +03:00