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
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
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
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
9d05fac771
Don't generate backing field for erased inline class
2018-02-09 02:08:09 +03:00
Cuihtlauac ALVARADO
35c454f53f
Filter out "Picked Up" messages from stderr
...
KT-22340 Fixed
2018-02-08 18:48:25 +01: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
Alexander Udalov
97314d010d
Serialize default argument values presence for actual declarations correctly
...
When default argument value was present in the expected declaration, we
did not correctly serialize that fact to the metadata for the actual
declaration (`declaresDefaultValue` was used). Therefore, it was
impossible to use that actual declaration without passing all parameter
values in another module, where it was seen as a deserialized descriptor
#KT-21913
2018-02-08 14:11:57 +01:00
Alexander Udalov
22595acbfd
Fix AssertionError on overloading function with property in actual class
...
#KT-22352 Fixed
2018-02-08 14:11:56 +01:00
Alexander Udalov
56be83cdd3
Improve fake override construction for expected classes
...
Fake overrides for abstract members from expected classes should become
non-abstract (final, in fact) in non-abstract expected subclasses
#KT-22031 Fixed
2018-02-08 14:11:55 +01:00
Denis Zharkov
88a23c73c7
Ignore @Nullable annotation for vararg parameter
...
See the comment in code for clarification
#KT-19786 Fixed
2018-02-08 13:36:10 +03:00
Denis Zharkov
2ad93a0330
Use extension registry when unpacking serialized type alias
...
It's funny here that "extension" here means protobuf extensions
while initial issue is about extension function types
#Fixed KT-22728
2018-02-08 12:39:26 +03:00
Mikhael Bogdanov
0954d1ab1b
Don't generate hash in sam wrapper class name
...
#KT-17091 Fixed
2018-02-08 10:11:48 +01:00
Alexander Udalov
ba5cc65792
Rename JvmPackageTable -> JvmModuleProtoBuf, PackageTable -> Module
...
This protobuf message is going to contain more information about the
module than just the table of package parts
2018-02-07 17:25:43 +01:00
Dmitry Petrov
00325ae539
Handle equality checks for 'when' and data classes
2018-02-07 14:30:59 +03:00
Dmitry Petrov
4776535205
Implement IR primitives for number comparisons in JVM BE
2018-02-07 14:30:59 +03:00
Dmitry Petrov
9137e68d4e
Implement special desugaring for numeric comparisons in PSI2IR
...
This introduces the following IR built-in functions required for proper
implementation of the number comparisons:
- ieee754Equals(T, T): Boolean,
for each T in {Float?, Double?}
- less(T, T): Boolean
lessOrEqual(T, T): Boolean
greater(T, T): Boolean
greaterOrEqual(T, T): Boolean
for each T in {Int, Long, Float, Double}
2018-02-07 14:30:59 +03:00
Ilmir Usmanov
ad385f42a9
Fix continuaion retrieval on generated coroutineContext intrinsic code
...
Use fake continuation instead on real one in JVM BE.
Pass continuation parameter to closure generator in JS BE.
#KT-22577: Fixed
2018-02-06 21:14:37 +03:00
Mikhael Bogdanov
ad48099ca6
Move java 8 tests to java8 folder
2018-02-06 10:32:14 +01:00