Commit Graph

20488 Commits

Author SHA1 Message Date
Mikhail Zarechenskiy a8a9f774d0 Map inline classes in generic argument position to theirs wrap classes 2018-02-13 13:16:43 +03:00
Mikhail Zarechenskiy 1d16d21dbb Fix boxing for non-local and labeled returns with inline classes 2018-02-13 13:16:42 +03:00
Mikhail Zarechenskiy 80dd5c106e Propagate KotlinType through call generator, fix boxing on arguments 2018-02-13 13:16:42 +03:00
Mikhail Zarechenskiy 22b9c25dd0 Add KotlinType info about this inside inline class 2018-02-13 13:16:41 +03:00
Mikhail Zarechenskiy c86d3e354b Skip call to the underlying value of inline class 2018-02-13 13:16:41 +03:00
Mikhail Zarechenskiy 2c279978c8 Fix generation of property accessor to the underlying value 2018-02-13 13:16:40 +03:00
Mikhail Zarechenskiy ce601bebbe Fix detection of erased this for inline class 2018-02-13 13:16:40 +03:00
Mikhail Zarechenskiy b361d0e9c0 Add test and check that iterator over UInt folds to a simple for-loop 2018-02-13 13:16:40 +03:00
Mikhail Zarechenskiy 059f1e9eed Support inline classes working with collection elements (get/set) 2018-02-13 13:16:39 +03:00
Mikhail Zarechenskiy 8015295059 Desugar constructor call of inline class to the underlying value
Also add information about KotlinType to the constant stack values
2018-02-13 13:16:39 +03:00
Mikhail Zarechenskiy 6320368609 Add KotlinType to the Coercion stack value 2018-02-13 13:16:38 +03:00
Dmitry Petrov 36128ba66f Don't generate primary constructor body for expect classes 2018-02-13 10:09:28 +03:00
Dmitry Petrov 839ebba157 ProperNumberComparisons is disabled by default (until LDC decision) 2018-02-13 09:26:00 +03:00
Dmitry Petrov af79bbd247 Minor: reformat code 2018-02-13 09:25:40 +03:00
Dmitry Petrov a790195808 Implement "proper numeric comparisons" support in JVM BE 2018-02-13 09:25:40 +03:00
Dmitry Petrov e23a48e8d0 Minor: reformat code 2018-02-13 09:25:40 +03:00
Pavel V. Talanov fd4e262b1f Minor: modify test for KT-22819 to unmute it on teamcity
#KT-22819 Open
2018-02-12 16:35:56 +01:00
Anton Bannykh cd3a797f2a JS: fix corner case in when translation (fix crash in KT-22544) 2018-02-12 17:15:48 +03:00
Mikhail Zarechenskiy 9e22761262 Fix type parameters indexes of MockClassDescriptor
Exception was thrown during mapping of arguments to parameters in `computeSupertypeProjections`

 #KT-18522 Fixed
2018-02-11 16:21:23 +03:00
Yan Zhulanow 310ee67c35 REPL, minor: Ignore empty lines (#KT-21611) 2018-02-09 19:24:57 +03:00
Dmitry Petrov 5a85bf36a5 Check for type parameter supertypes in primitive numeric comparisons 2018-02-09 14:41:54 +03:00
Alexey Sedunov 5c6bba9f14 Rename: Fix qualified expression replacement for the case 'invoke' <-> 'get'
#KT-22705 Fixed
2018-02-09 14:17:39 +03:00
Alexey Sedunov e88f1467eb Rename: Add quotes to declaration name if necessary
#KT-22708 Fixed
2018-02-09 14:17:38 +03:00
Alexey Sedunov 428b086458 Refactor: Move 'isIdentifier' and 'quoteIfNeeded' functions to frontend 2018-02-09 14:17:37 +03:00
Ilya Chernikov e38d5395df Pass previous dependencies to the legacy script dependency resolvers
fixes #KT-22753
2018-02-09 11:03:43 +01:00
Mikhael Bogdanov d7e5eb24ee Update android test dependencies 2018-02-09 09:45:14 +01:00
Mikhael Bogdanov b666a2da5f Increase android test timeout 2018-02-09 09:45:13 +01:00
Denis Zharkov f6c6f67566 Minor. Remove irrelevant JAVAC_EXPECTED_FILE directive in tests
This change fixes these tests
2018-02-09 10:54:28 +03:00
Mikaël Peltier e1f44d6237 Move tests to the right place 2018-02-09 09:10:53 +03:00
Mikaël Peltier 9274241c0e KT-22714 Avoid to generate unecessary checkcast
- StackValue already avoid to generate checkcast from a type or an
array to java.lang.Object. Add a new case to avoid to generate a
checkcast from an array to an array of java.lang.Object when arrays
have the same dimensions.

Fix of https://youtrack.jetbrains.com/issue/KT-22714
2018-02-09 09:10:53 +03:00
Mikhail Zarechenskiy 0ecb3afdf7 Refactoring: rename AsmTypeAndKotlinType -> JvmKotlinType 2018-02-09 05:06:34 +03:00
Mikhail Zarechenskiy 913e4b42bb Support inline classes as last expression in lambda 2018-02-09 05:06:32 +03:00
Mikhail Zarechenskiy 396cc7d02b Support unboxing of inline classes in elvis 2018-02-09 05:06:31 +03:00
Mikhail Zarechenskiy fefcddc803 Support boxing/unboxing for captured vars of inline class types 2018-02-09 05:06:29 +03:00
Mikhail Zarechenskiy 9f24bbd980 Support unboxing of inline classes after assertion operator 2018-02-09 05:06:27 +03:00
Mikhail Zarechenskiy 30c79ffadc Support generating computable properties inside inline classes 2018-02-09 04:57:20 +03:00
Mikhail Zarechenskiy 47aeeb36e4 Get accessors for companion object properties through wrapper class 2018-02-09 04:56:46 +03:00
Mikhail Zarechenskiy 70cd1cfcdf Fix generation of companion object inside inline classes 2018-02-09 04:56:45 +03:00
Mikhail Zarechenskiy e1d3b21201 Skip bridge methods generation for inline classes 2018-02-09 04:56:43 +03:00
Mikhail Zarechenskiy 4eb64fb4b9 Support mapping for inline classes based on type variables 2018-02-09 04:56:41 +03:00
Mikhail Zarechenskiy 0fd80ce980 Unbox inline classes after safe calls if needed 2018-02-09 04:56:40 +03:00
Mikhail Zarechenskiy c5c8d84719 Support boxing/unboxing for method return types 2018-02-09 04:56:36 +03:00
Mikhail Zarechenskiy 390c214943 Support boxing for inline classes on function calls 2018-02-09 04:56:08 +03:00
Mikhail Zarechenskiy 0d682879f5 Initial boxing for inline classes: local variable assignments 2018-02-09 04:55:44 +03:00
Mikhail Zarechenskiy b0ee61620c Add KotlinType to methods coerceTo & coerceFrom 2018-02-09 02:08:11 +03:00
Mikhail Zarechenskiy 1ac4e9755a Generate synthetic unbox method for each wrapper of inline class 2018-02-09 02:08:11 +03:00
Mikhail Zarechenskiy a59917b6f8 Generate synthetic box method for each erased inline class 2018-02-09 02:08:10 +03:00
Mikhail Zarechenskiy f856455841 Introduce stateless methods to map types without predefined mapping 2018-02-09 02:08:10 +03:00
Mikhail Zarechenskiy 1cdad65b9b Refactoring: propagate KotlinType through hierarchy of StackValue
Mainly, this is needed to introduce boxing over inline classes
2018-02-09 02:08:10 +03:00
Mikhail Zarechenskiy 9d05fac771 Don't generate backing field for erased inline class 2018-02-09 02:08:09 +03:00