Ilya Chernikov
ac65aebb19
Direct mapping of script implicit receivers and env vars to parameters
2018-08-16 15:13:00 +02:00
Dmitry Petrov
b6e3218ca2
Use mapping mode for inline class underlying type without wrapping
2018-08-16 15:03:50 +03:00
Dmitry Petrov
8e95ecb821
Use underlying type when computing type mapping mode for inline classes
2018-08-15 15:37:46 +03:00
Dmitry Petrov
948e72f653
Inline classes can only implement interfaces
2018-08-15 15:32:50 +03:00
Ilmir Usmanov
300876348a
Fix line numbers generation for coerced primitives
...
in coroutines
#KT-25076: Fixed
2018-08-15 13:47:45 +03:00
Ilmir Usmanov
a470fd21ca
Eliminate only first {ASTORE, ALOAD} in locals elimination
...
of ALOAD.
#KT-25912: Fixed.
2018-08-15 13:45:24 +03:00
Denis Zharkov
117abb04aa
Fix applicability of dsl-marker on function type
...
When marker is applied to function type it should work
like it's applied to receiver type
#KT-23255 Fixed
2018-08-14 15:58:18 +07:00
Dmitry Petrov
ebf8ec455d
Box/unbox nullable inline class values with null check
...
When we have a nullable inline class value with non-null underlying
type, corresponding value in unboxed representation is nullable. E.g.:
inline class Str(val value: String)
fun test(s: Str?) = listOf(s)
Here 'test(s: Str?)' accepts nullable 'java.lang.String' as a parameter.
When boxing/unboxing nullable values of such inline classes, take care
of nulls.
#KT-26052 Fixed Target versions 1.3-M2
2018-08-14 10:22:07 +03:00
Dmitry Petrov
de11d9164d
Add IrClass.irInline
2018-08-14 10:00:21 +03:00
Alexander Udalov
c011bf61fe
Support multiple version requirements on single element
2018-08-13 11:02:35 +02:00
Dmitry Petrov
b7df36643b
Implement additional declaration checks for inline classes
...
- Implementation by delegation is prohibited
- Delegated properties are prohibited
2018-08-13 08:49:09 +03:00
Dmitry Petrov
0af33462ef
Fix code generation for Array<C> element access where C is inline class
2018-08-13 08:49:04 +03:00
Mikhail Zarechenskiy
b1985ee422
Enable SAM conversion for Kotlin functions by default in new inference
...
KT-25686
2018-08-10 17:24:18 +03:00
Dmitry Savvinov
57bafcf9e9
Do not lose information about contracts if call uses default value
...
It is safe to treat DefaultValueArgument as UNKNOWN_COMPUTATION, because
default arguments can't break smartcasts.
Possibly, they can add new ones, but it can be supported later.
^KT-25278 Fixed
2018-08-10 13:19:32 +03:00
Dmitry Petrov
4f6aa50417
Fix == for inline classes with boxes
...
TODO generalize code generating object vs primitive equality
#KT-25914 Fixed
#KT-25981 Fixed
#KT-25983 Fixed
2018-08-10 10:34:57 +03:00
Dmitry Savvinov
447c127036
Fix unsound smartcast from loop condition on assigned vars
...
^KT-22379 Fixed
2018-08-09 19:56:23 +03:00
Denis Vnukov
65c79ecfe9
Primitive support for LocalVariables for function parameters
2018-08-09 16:13:21 +03:00
Mikhail Zarechenskiy
be38263fc7
Introduce conversions from signed pure constants to unsigned ones
...
#KT-24717 In Progress
#KT-25996 Open
#KT-25997 Open
2018-08-09 09:47:48 +03:00
Roman Artemev
efec82c0eb
Update test data
...
* add new tests for coroutines
* add copy of some tests without dependency on stdlib
2018-08-08 18:33:41 +03:00
Dmitry Savvinov
a8e1a6a2a1
Add contract for 'synchronized'
...
^KT-25962 Fixed
2018-08-08 12:53:09 +03:00
Dmitry Savvinov
952f67dafc
Fix bogus smartcast on enum entry members
...
Previously, enum entries were treated by the data-flow subsystem similar
to other class/singletons. As a consequence, calls like
'Enum.ENTRY.property' had IdentifierInfo of 'property'.
However, specially for enum entries, descriptor of 'property' is one and
the same for all entries. It means that from the data-flow point of
view, 'Enum.ONE.property' and 'Enum.TWO.property' are *one and the same
data-flow values*.
It could obviously lead to some bogus smartcasts, so this commit
introduces separate IdentifierInfo.EnumEntry and uses it to build proper
qualified values.
^KT-20772 Fixed
2018-08-08 12:48:56 +03:00
Alexander Udalov
5da8ce844a
Minor, move ContentRoot and KotlinSourceRoot to module 'cli'
...
Also move CONTENT_ROOTS from JVMConfigurationKeys to
CLIConfigurationKeys since it's used on all platforms, not just JVM
2018-08-07 13:38:30 +02:00
Alexander Udalov
14b8f4b52b
Minor, change package of outputUtils.kt
2018-08-07 13:38:30 +02:00
Mikhail Glukhikh
1d2438e04e
Report SUPERTYPE_NOT_INITIALIZED even if no constructors in superclass
...
Before this commit, expect super-class without constructors did not
provoke SUPERTYPE_NOT_INITIALIZED. However, it should, but only
if sub-type is normal class (not an expect one).
So #KT-24597 Fixed
2018-08-06 19:02:24 +03:00
Mikhail Zarechenskiy
659289b41a
Report diagnostics about experimentality on unsigned literals
...
#KT-25580 Fixed
2018-08-06 17:45:22 +03:00
Mikhail Zarechenskiy
55e7def3c1
Fix coercion for stack value property in case of inline classes
...
#KT-25771 Fixed
2018-08-06 17:45:20 +03:00
Alexander Udalov
6f9441d3f4
Do not output empty non-root packages in tests with txt
...
Mostly to avoid listing every internal package in
kotlin-stdlib/kotlin-reflect, as in
https://github.com/JetBrains/kotlin/blob/acd5b62148d797ffd24c4811d1d663f0c1ae7885/compiler/testData/diagnostics/testsWithUnsignedTypes/conversions/conversionOfSignedToUnsigned.txt#L144
2018-08-06 13:43:32 +02:00
Mikhael Bogdanov
ddf6bdffcf
Move jvm ir tests to jvm ones
2018-08-06 13:57:43 +03:00
Mikhail Zarechenskiy
ddf6c37e0e
Prohibit inline classes with special underlying types
...
#KT-25328 Fixed
#KT-23819 Fixed
2018-08-06 10:56:05 +03:00
Mikhail Zarechenskiy
6d4d244c28
Generate function from Any for inline classes same as for data classes
...
#KT-24873 Fixed
#KT-25293 Fixed
#KT-25299 Fixed
2018-08-06 10:56:01 +03:00
Mikhail Zarechenskiy
043ce1cb27
Support secondary constructors for inline classes
...
#KT-25614 Fixed
#KT-25246 Fixed
KT-25599 Will be fixed after recompilation of unsigned classes
2018-08-06 10:55:57 +03:00
Natalia Selezneva
736361e345
Provide a default scriptDefinition for script
2018-08-03 15:25:35 +03:00
Dmitry Petrov
1bfb75a51b
Generate intrinsic-based numeric comparison only for FP types
2018-08-03 09:34:59 +03:00
Ilmir Usmanov
0c867b4804
Disable callable references to suspend functions in 1.2
...
#KT-25604: Fixed
2018-08-02 18:55:49 +03:00
Mikhael Bogdanov
e3462a2999
Remove IrOnlyBoxCodegenTestGenerated test
2018-08-02 13:19:28 +02:00
Mikhael Bogdanov
7a98f5c5f7
Add 'boxAgainstJava' tests to ir test suite
2018-08-02 13:19:26 +02:00
Mikhael Bogdanov
261a00eec7
Remove IrCompileKotlinAgainstInlineKotlinTestGenerated tests
2018-08-02 13:19:26 +02:00
Mikhael Bogdanov
cb53e86183
Move ir box test under "box/ir"
2018-08-02 09:52:48 +02:00
Alexander Udalov
0c8b231fde
Add tests on coercion to Unit for callable references
...
#KT-11723
2018-08-01 16:26:07 +02:00
Alexander Udalov
9babd90999
Support default arguments and varargs for callable references
...
#KT-8834
#KT-19869
#KT-25514
2018-08-01 16:26:06 +02:00
Mikhail Zarechenskiy
acd5b62148
Introduce limited constant conversions for Kotlin/Native
...
#KT-25320 Fixed
2018-07-29 04:32:32 +03:00
Alexander Udalov
1a51132884
Add CLI tests on internal from other module (JVM, JS, common)
2018-07-27 18:51:42 +02:00
Alexander Udalov
4bd66d5aa8
Add compiler argument -Xfriend-paths for kotlinc-jvm
...
#KT-21910 Fixed
2018-07-27 18:51:42 +02:00
Dmitry Petrov
566b5856ec
Constructor call normalization mode depends on language version
2018-07-27 09:52:29 +03:00
Roman Artemev
14b1f0ef6a
Fix issue #KT-24475
...
* count coroutine metadata references during RemoveUnusedImport pass in JsInliner
* add cases to test usage of stdlib symbols in inlined functions
2018-07-26 19:23:06 +03:00
Alexander Udalov
3323fd5a11
Check "kotlin" package usage when compiling common code
...
#KT-25369 Fixed
2018-07-26 17:10:33 +02:00
Ilmir Usmanov
82f64b9b14
Generate LVT entry for continuation
...
#KT-25688: Fixed
2018-07-26 16:12:54 +03:00
Roman Artemev
dec307799a
Fix infinite loop in suspend function in case of return from finally [#KT-21961]
...
* add test
2018-07-25 23:04:57 +03:00
Roman Artemev
eb420a1e0f
Fix [#KT-23921]
...
* make name collector in inliner process handle JsCatch
* visit JsParameter during live analyser in coroutine transformer
2018-07-25 14:22:11 +03:00
Dmitry Petrov
df6d4f358a
KT-22274 report warning on labels that can't be referenced
...
Labels are meaningful only if they can be referenced by 'break',
'continue', or 'return' expressions.
2018-07-25 12:08:20 +03:00