Commit Graph

5507 Commits

Author SHA1 Message Date
Denis Zharkov 75e112e752 Implement basic support for coroutines in JVM backend 2016-06-08 18:53:16 +03:00
Denis Zharkov 20d1d12f3b Revert "'yield' reserved as a keyword"
This reverts commit 434082cadb.
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
Denis Zharkov 329fb9d619 Introduce 'coroutine'/'suspend' modifiers 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
Ilya Chernikov e8c13882b4 Make script detection API generic, fix tests 2016-06-07 21:13:05 +02:00
Ilya Chernikov 3e6616de42 Read script config if appropriate flag is specified, fix classpath handling 2016-06-07 21:12:58 +02:00
Ilya Chernikov 3e17724e58 Implement class finder for customized scripts resolving - not yet completely functional 2016-06-07 21:12:54 +02:00
Ilya Chernikov b63ed0f4aa Make script launcher aware of custom scripts, minor correction is core env 2016-06-07 21:12:53 +02:00
Ilya Chernikov 834bb51643 Add tests with partial classpath for script compilation 2016-06-07 21:12:39 +02:00
Ilya Chernikov 3c1503564e Add possibility to specify supertypes for script, with tests 2016-06-07 21:11:23 +02:00
Ilya Chernikov 670627ac4e Add helpers, compilation function and tests for passing classes as a parameters to a script 2016-06-07 21:11:23 +02:00
Alexander Udalov 61290d1225 Temporarily disable inline for bound function references 2016-06-07 12:43:10 +03:00
Alexander Udalov b9e61f035f Support bound callable references in codegen 2016-06-07 12:43:09 +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
Dmitry Petrov ea249244c5 'where' clause in type alias declaration is a syntax error
(type alias parameters can't have bounds)
2016-06-06 13:50:37 +03:00
Dmitry Petrov 772fe5badb Treat unsupported or malformed type alias as a type alias with error types. 2016-06-03 16:07:20 +03:00
Dmitry Petrov 3500f5a96b Type alias: resolve type alias RHS during force-resolve. 2016-06-03 16:07:20 +03:00
Dmitry Petrov df335b9e8d Type aliases: do not reparse RHS of type alias declaration in expanded type resolution 2016-06-03 16:07:20 +03:00
Mikhail Glukhikh a22e7d3bcf KT-12152 : leaking this inspection: accessing non-final member / this in non-final class 2016-06-03 14:45:58 +03:00
Mikhail Glukhikh be40cf8138 KT-12152 : constructor consistency: distinguish properties with and w/o backing fields, with default / custom accessors 2016-06-03 09:45:49 +03:00
Mikhail Glukhikh 422ea4c6cb KT-12152 : constructor consistency: handle open property accessing 2016-06-03 09:45:45 +03:00
Mikhail Glukhikh f7b5d67543 KT-12152 : constructor consistency: handle non-final classes 2016-06-03 09:45:41 +03:00
Mikhail Glukhikh 8e18165065 KT-12152 : constructor consistency analysis, base cases 2016-06-03 09:45:37 +03:00
Mikhael Bogdanov 092be8ca8e Don't generate unnecessary checkcast to java.lang.Number 2016-06-02 16:01:05 +03:00
Mikhael Bogdanov a6cf169646 Fix for KT-12582: "VerifyError: Bad local variable type" caused by explicit loop variable type
#KT-12582 Fixed
2016-06-02 16:01:05 +03:00
Mikhael Bogdanov c7d97c63a8 Small refactoring in constant processing 2016-06-02 16:01:03 +03:00
Nikolay Krasko 3f4cde3d25 NoSuchFieldError in Evaluate Expression on a property of a derived class (KT-12206)
#KT-12206 Fixed
2016-06-02 14:39:51 +03:00
Alexander Udalov 1339286261 Drop undocumented absolute name specification feature with 'package.' 2016-06-01 19:30:03 +03:00
Dmitry Petrov 0319d5a5aa KT-11588 Type aliases
- Nested type aliases
- UNSUPPORTED_TYPEALIAS error (language level < 1.1)
- tests for is/as/as? with type alias
2016-06-01 14:32:46 +03:00
Dmitry Petrov e979300579 KT-11588 Type aliases
Diagnostics for type arguments substitution in type alias expansion
(initial implementation; TODO: refactor).
2016-06-01 14:32:46 +03:00
Dmitry Petrov 9cf8ef287e KT-11588 Type aliases
Additional tests for generic type alias arguments.
Small refactoring in TowerLevels.
2016-06-01 14:32:45 +03:00
Dmitry Petrov 62f8d00f89 KT-11588 Type aliases
Create substituted constructor descriptors for generic type aliases.
2016-06-01 14:32:45 +03:00
Dmitry Petrov c63166047c KT-11588 Type aliases
Additional tests for type alias constructor & companion object:
- codegen
- error diagnostics
2016-06-01 14:32:45 +03:00
Dmitry Petrov 1329a43d89 KT-11588 Type aliases
Type alias constructor
2016-06-01 14:32:44 +03:00
Dmitry Petrov 4a9507b3ab KT-11588 Type aliases
Type alias companion object
2016-06-01 14:32:44 +03:00
Mikhael Bogdanov 0f1589fd50 Fix for KT-12200: initial property assignment ignored
#KT-12200 Fixed
2016-05-31 15:27:55 +03:00
Mikhael Bogdanov bdc0b6b308 Local delegated properties moved to language feature option 2016-05-31 15:27:55 +03:00