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
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
a790195808
Implement "proper numeric comparisons" support in JVM BE
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
Dmitry Petrov
5a85bf36a5
Check for type parameter supertypes in primitive numeric comparisons
2018-02-09 14:41:54 +03: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
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
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
9d05fac771
Don't generate backing field for erased inline class
2018-02-09 02:08:09 +03:00
Alexander Udalov
e19ed1e001
Add test on experimental const val in annotation argument
...
This test checks that a usage inside an annotation argument is a
signature usage, which may be too restricting but easier to support at
the moment (and the restriction can be lifted in the future)
2018-02-08 17:08:34 +01:00
Alexander Udalov
a4af9dd5d1
Always consider container's experimentality in ExperimentalUsageChecker
...
This results in more diagnostics usually, but allows library authors to
avoid annotating everything in each experimental class with the marker
(only the class needs to be annotated now)
#KT-22759
2018-02-08 17:08:34 +01:00
Alexander Udalov
65a6171782
Add test on Experimental in scripts
2018-02-08 17:08:33 +01:00
Alexander Udalov
890374a42a
Load module annotations for JVM and JS modules in compiler
...
#KT-22759 In Progress
2018-02-08 17:08:33 +01:00
Alexander Udalov
ff33e0bad3
Write/read module annotation FQ names to/from metadata on JVM
...
#KT-22759 In Progress
2018-02-08 17:07:23 +01:00
Alexander Udalov
ec6b49b8b8
Check experimental API markers for deprecation
...
#KT-22759 In Progress
2018-02-08 17:07:22 +01:00
Alexander Udalov
5e78adb501
Support -Xexperimental/-Xuse-experimental in ExperimentalUsageChecker
...
#KT-22759 In Progress
2018-02-08 17:07:22 +01:00
Alexander Udalov
77625831f7
Support -Xexperimental and -Xuse-experimental, validate their values
...
#KT-22759 In Progress
2018-02-08 17:07:22 +01:00
Alexander Udalov
153c86c069
Report diagnostic on overrides of experimental members
...
Unless they're experimental themselves
#KT-22759 In Progress
2018-02-08 17:07:22 +01:00
Alexander Udalov
29c35e6686
Do not require experimental propagation for body usages in same module
...
Unless it's a usage inside the body of an effectively public inline
function
#KT-22759 In Progress
2018-02-08 17:07:22 +01:00
Alexander Udalov
6d4e8f3781
Add some validation for Experimental/UseExperimental usages
...
#KT-22759 In Progress
2018-02-08 17:07:22 +01:00
Alexander Udalov
0bf0a315ed
Introduce Experimental and UseExperimental annotations
...
#KT-22759 In Progress
2018-02-08 17:07:21 +01:00
Mikaël Peltier
126afbb8ac
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.
#KT-22714 Fixed
2018-02-08 16:38:46 +01:00
Denis Zharkov
99c7d8d4d5
Add call checks related to suspend lambda modifier's introduction
...
- Prohibit non-modifier-like calls on kotlin.suspend
- Add warning on modifier-like calls to anything but kotlin.suspend
#KT-22766 In Progress
#KT-22562 In Progress
2018-02-08 17:47:37 +03:00
Denis Zharkov
ef01f641f3
Imitate support for suspend modifier on parameterless lambdas
...
#KT-22766 In Progress
2018-02-08 17:47:37 +03:00