Commit Graph

37166 Commits

Author SHA1 Message Date
Alexey Andreev ffca68d85e JS: escape quotes in some diagnostics with parametrized messages 2017-02-08 11:29:29 +03:00
Mikhael Bogdanov 37a94eaf07 Use appropriate ApiVersion if LanguageVersion is specified in test 2017-02-08 09:10:22 +01:00
Mikhael Bogdanov 5095ef1ea4 Revert 'Temporary disable new intrinsics usage in ieee754 arithmetic' 2017-02-08 09:10:22 +01:00
Denis Zharkov 80638ebc99 Prohibit unsupported suspend operators
contains/get/set operators don't work properly on both backends

Also add box test checking that 'compareTo' operator works just fine

 #KT-16219 Fixed
2017-02-08 11:07:27 +03:00
Denis Zharkov 4921bd822d Mark as UNSUPPORTED suspension points in default parameters
#KT-16124 Fixed
 #KT-16218 Open
2017-02-08 11:07:26 +03:00
Denis Zharkov 4ee818addf Add callee name to diagnostic about illegal suspension call
#KT-15938 Fixed
2017-02-08 11:07:26 +03:00
Anton Bannykh a74fffeac8 JS: companion object dispatch receiver translation fixed (KT-16160); imported function inlining fixed. 2017-02-08 09:21:18 +03:00
Anton Bannykh a2431f0d85 JS: fixed inlining functions called through inheritor ("fake" override) from another module (#KT-16144) 2017-02-08 09:19:50 +03:00
Dmitry Jemerov 0709561869 Add missing required type checks; correctly skip elements which have no UAST equivalents when converting an element together with parent; correctly convert string template entries (they aren't expressions) 2017-02-07 19:18:05 +01:00
Simon Ogorodnik be7158eeb2 KT-16110 Missing suspend keyword completion inside generic arguments
#KT-16110 fixed
2017-02-07 19:48:05 +03:00
Roman Elizarov 5895c211a1 Fixed corotine context performance by using reference equality for contexts and keys
Added documentation explaining that keys are compared by reference
2017-02-07 19:33:46 +03:00
Nikolay Krasko 2f0e7b54d5 Return old hack with returning null as file scope for standard scripts
(cherry picked from commit ef55bd1)
2017-02-07 15:16:04 +01:00
Ilya Gorbunov b8de78dd43 Deprecate javaClass with replacement this::class.java.
Suppress deprecation in diagnostics tests.
2017-02-07 16:30:22 +03:00
Sergey Igushkin d6a60424a9 Weakened testSuppressWarnings() so that it doesn't fail on the environment STRONG_WARNING. 2017-02-07 16:19:40 +03:00
Ilya Chernikov 99b902f5f2 Fix version calculation code
(cherry picked from commit fb74040)
2017-02-07 13:45:22 +01:00
Ilya Chernikov f6ce74edb3 Set jvmTarget property for repl compilation from sys prop or java version, fixes KT-16126
(cherry picked from commit 4cf2bce)
2017-02-07 13:45:12 +01:00
Alexey Sedunov 396e9afffd Compiler Configuration: Minor UI improvements 2017-02-07 15:36:39 +03:00
Alexey Sedunov 0c331a3846 Kotlin Facet: Support multiple configuration editor
#KT-15914 Fixed
2017-02-07 15:36:38 +03:00
Alexey Sedunov 8849d0e2a3 Kotlin Facet: Combine "General" and "Compiler" tabs 2017-02-07 15:36:37 +03:00
Ilya Gorbunov 03cdc20d64 Update public API dump: new coroutine builder intrinsics 2017-02-07 14:42:00 +03:00
Denis Zharkov 52f1194247 Update public API dump: areEqual helpers for ieee 754 comparisons 2017-02-07 14:41:58 +03:00
Ilya Gorbunov d4d647ab00 Remove public synthetic annotation holder methods from public API dump. 2017-02-07 14:41:56 +03:00
Ilya Gorbunov 970490e097 Revert "Update rendered public API". This reverts commit a10c6f00f9.
Revert "Update stdlib reference and binary compatibility test data". This reverts commit 2d02e5106f.
2017-02-07 14:41:31 +03:00
Mikhail Zarechenskiy d7093db5c5 Allow to use emptyArray in annotation as argument
#KT-14236 Fixed
2017-02-07 14:07:20 +03:00
Mikhail Zarechenskiy 9f0403f72c Fix exception at accidentally wrong annotation argument type
#KT-13740 Fixed
2017-02-07 14:07:13 +03:00
Mikhail Zarechenskiy 655cf82534 Copy compileTimeInitializer for const property descriptor
#KT-15802 Fixed
2017-02-07 14:07:06 +03:00
Denis Zharkov 81c3edfc00 Refine cc7f0e2d83
getDispatchReceiver/getExtensionReceiver always return not-null value,
but in the absence of receiver this value is equal StackValue.none(), i.e.
has a size 1

The tests were passing because of the problems with the test framework:
4b9e20ab8c
2017-02-07 13:12:02 +03:00
Denis Zharkov 4b9e20ab8c Rethrow boxError in case of test failure 2017-02-07 12:48:06 +03:00
Denis Zharkov cc7f0e2d83 Fix codegen problem with safe-call on suspension point with two receivers
#KT-16145 Fixed
2017-02-07 11:56:37 +03:00
Denis Zharkov a10c6f00f9 Update rendered public API 2017-02-07 11:32:10 +03:00
Denis Zharkov 9697196473 Put startCoroutineUninterceptedOrReturn header to common stdlib 2017-02-07 11:08:27 +03:00
Denis Zharkov 4f6a77cf38 Introduce createCoroutineUnchecked intrinsic
Also use it for buildSequence implenentation

 #KT-16155 Fixed
2017-02-07 11:08:27 +03:00
Roman Elizarov 9a71a20ad6 Docs for startCoroutineUninterceptedOrReturn 2017-02-07 11:07:04 +03:00
Denis Zharkov 230564fb4a Minor. Get rid of code duplications for resume call wrapping in stdlib
Use processBareContinuationResume instead
2017-02-07 11:07:04 +03:00
Denis Zharkov 6dde567be4 Optimize startCoroutine impls, move them to common stdlib
Do not wrap initial continuation for startCoroutine in SafeContinuation

This changes leaves only internal declarations and intrinsics as platform
dependent parts of the coroutine library, the rest parts (public API)
is implemented through them in common module
2017-02-07 11:07:04 +03:00
Denis Zharkov a65d86293b Improve coroutines library layout
- Split CoroutinesLibrary into common and JVM parts
- Get rid of startCoroutine duplications
- Make suspendCoroutine implementation to be platform independent
2017-02-07 11:07:04 +03:00
Denis Zharkov 258ee0db75 Introduce startCoroutineUninterceptedOrReturn coroutine intrinsic
#KT-15716 Fixed
2017-02-07 11:07:04 +03:00
Denis Zharkov 29b0b30031 Make createCoroutine return a safe continuation
#KT-15718 Fixed
2017-02-07 11:06:50 +03:00
Alexander Udalov b780e6d374 Do not import "kotlin.comparisons" by default for language version 1.0
#KT-16199 Fixed
2017-02-07 10:15:57 +03:00
Alexander Udalov 8014000bd1 Update light analysis test data 2017-02-06 19:41:32 +03:00
Alexander Udalov 85e55810a7 Merge light-analysis tests into black box codegen tests
#KT-15382 Fixed
2017-02-06 19:41:29 +03:00
Alexander Udalov 5bd1a35eb1 Refactor bytecode listing & light analysis tests
Simplify AbstractLightAnalysisModeCodegenTest so that its logic can be merged
with black box codegen tests
2017-02-06 19:41:20 +03:00
Alexander Udalov 2d02e5106f Update stdlib reference and binary compatibility test data
After 0db60bf and 5cffb38
2017-02-06 19:39:15 +03:00
Alexander Udalov e58baa51ae Rename DoubleColonLHS.Expression.isObject -> isObjectQualifier 2017-02-06 19:39:15 +03:00
Alexander Udalov 478352b7e7 Fix callable reference to constructor of nested class in object
#KT-15951 Fixed
2017-02-06 19:39:15 +03:00
Alexander Udalov ca1ed850b8 Improve error on runtime of version different than API version
Include the actual runtime version in the error message
2017-02-06 19:39:15 +03:00
Alexander Udalov 57f8ef372f Report different runtime versions earlier than incompatibility with API version
Previously if you had kotlin-reflect 1.0 and kotlin-runtime 1.1 in the
classpath, checkCompatibleWithApiVersion was invoked first, and an error was
reported that suggested to pass "-api-version" to the compiler. However, no
correct "-api-version" can be passed in this case, because
checkMatchingVersions would then report that the two libraries have different
versions anyway. So, now we first ensure that all libraries have the same
version, and only then do check if the version is correct
2017-02-06 19:39:15 +03:00
Alexander Udalov 3a7eec8635 Check API version instead of language in JVM runtime versions checker
It should be a valid case to invoke the 1.1 compiler with the 1.0 runtime in
the classpath and "-api-version 1.0". However, previously it was an error and
the message suggested to specify "-language-version 1.0". Language version 1.0
implies API version 1.0, so this effectively made the "-api-version" option
useless
2017-02-06 19:39:15 +03:00
Dmitry Petrov e0cea468fa KT-15862 Inline generic functions can unexpectedly box primitives
Previous version of the boxing/unboxing analysis treated merging boxed and non-boxed values as a hazard.
If such merged values are not used (e.g., early return + local variables reused in inlined calls),
corresponding boxing/unboxing operations still can be optimized out.

All information related to boxed value usage by instructions is moved to 'BoxedValueDescriptor'.
Introduce "tainted" (and "clean") boxed values, with the following rules:

  merge(B, B) = B, if unboxed types are compatible,
                T, otherwise

  merge(B, X) = T

  merge(T, X) = T

  where
    X is a non-boxed value,
    B is a "clean" boxed value,
    T is a "tainted" boxed value.

Postpone decision about value merge hazards until a "tainted" value is used.
2017-02-06 16:22:26 +03:00
Simon Ogorodnik 98269c10d8 KT-15744 Intention to import sleep wrongly suggests Thread.sleep
#KT-15744 fixed
2017-02-06 14:56:18 +03:00