Vyacheslav Gerasimov
db3b01d2d4
Build: Centralize compiler dist build logic in :kotlin-compiler project
2019-06-27 17:56:48 +03:00
Vyacheslav Gerasimov
4f090f2744
Build: Use default jar task in kotlin-daemon-client
2019-06-27 17:56:47 +03:00
Alexander Udalov
3800d57691
Fix behavior of multiple methods in IrTypeSystemContext
...
Make sure implementations are the same as in ClassicTypeSystemContext
and ConeTypeSystemContext
2019-06-27 16:43:07 +02:00
Alexander Udalov
445c4ebe65
Do not inherit IrTypeSystemContext from TypeSystemInferenceExtensionContext
...
This inheritance was not used. Moreover, multiple methods were
implemented incorrectly and/or inconsistently with the base
implementation at ClassicTypeSystemContext
2019-06-27 16:43:07 +02:00
Alexander Udalov
cf6ff8c6b3
Simplify implementation of TypeSystemCommonSuperTypesContext.typeDepth
2019-06-27 16:43:07 +02:00
Alexander Udalov
331f0291ce
Minor, remove TypeSystemContext.isNotNullNothing
...
Use equivalent isNothing instead
2019-06-27 16:43:07 +02:00
Alexander Udalov
c452934f5b
Pull isNullableType and related extensions up into TypeSystemContext
2019-06-27 16:43:07 +02:00
Alexander Udalov
9131ff3626
Move IrType.isNullable to 'ir.tree'
2019-06-27 16:43:06 +02:00
Alexander Udalov
29a144cee7
Minor, move IrClass.primaryConstructor to 'ir.tree'
2019-06-27 16:43:06 +02:00
Ilmir Usmanov
0a37cb561b
Minor. Regenerate IrBlackBoxInlineCodegenTestGenerated
2019-06-27 17:02:22 +03:00
Alexander Gorshenev
aa73420312
Provide the default hashing function
2019-06-27 13:56:25 +03:00
Igor Yakovlev
8b40005b0c
UL classes flaky tests partially fix
...
#KT-32276 - Reduce affected tests count from 117 cases to 2 cases
2019-06-27 12:46:02 +03:00
Ilya Chernikov
5fe85e4767
Attempt to fix flaky testSimpleRepl
2019-06-27 10:42:16 +02:00
Mikhael Bogdanov
9b6fef005f
Simplify LocalDeclarationsLowering, support declaration pop up via separate lower
...
1. Scheme of capturing local variables not touched
2. Lowered local functions are transposed to the nearest class (including local) or file
3. Local classes are also transpose to the nearest class (including local) or file
2019-06-27 08:07:01 +02:00
Mikhael Bogdanov
bb48e756ca
Minor. Simplify and clean IrElementVisitorVoidWithContext/IrElementTransformerVoidWithContext
2019-06-27 08:06:59 +02:00
Ilmir Usmanov
7a096b305f
Do not mangle functions with inline classes when the only inline class
...
in arguments is kotlin.Result.
Fix returnTarget for suspend function views.
2019-06-26 22:28:08 +03:00
Igor Yakovlev
4c1d0678eb
Remove class delegate requests from annotations and modifier lists
...
(#EA-144876 and #EA-144882 Fixed)
2019-06-26 16:32:24 +03:00
Igor Yakovlev
3146b12471
Fix UL inline class delegate loading for tooComplex case (#KT-31950 Fixed)
2019-06-26 16:32:24 +03:00
Dmitry Petrov
991c87b9c2
Minor: remove empty JvmCoercionToUnitPatcher.kt
2019-06-26 16:16:04 +03:00
Ilya Chernikov
1b8cd9b731
Implement command-line REPL smoke test
2019-06-26 13:01:39 +02:00
Ilya Chernikov
3c1c9ca523
Fix jline proguarding in the compiler: fixes cli REPL
...
#KT-32085 fixed
2019-06-26 13:01:39 +02:00
Anton Bannykh
d6c10d24e1
JS IR: move inliner to common part; inline suspendCoroutineUninterceptedOrReturnJS
2019-06-26 13:13:39 +03:00
Dmitry Petrov
b3b7e26985
Make InsertImplicitCasts work with Descriptors and KotlinTypes again
...
This is a temporary change to make sure IrType infrastructure work is in
master.
It causes some of irText tests to work incorrectly (as in master).
2019-06-26 10:07:13 +03:00
Dmitry Petrov
8da5f6b955
IR: fixes after rebase
2019-06-26 09:39:17 +03:00
Dmitry Petrov
339291b01f
psi2ir: update testData
2019-06-26 09:39:16 +03:00
Dmitry Petrov
7a44b0f951
IR: IrTypeOperatorCall.classifierSymbol can be computed from typeOperand
2019-06-26 09:39:16 +03:00
Dmitry Petrov
18c3778250
Minor: cleanup IrLazyProperty
2019-06-26 09:39:16 +03:00
Dmitry Petrov
1b5d077452
Minor: explicitly throw exception if declaration parent is not set
2019-06-26 09:39:16 +03:00
Dmitry Petrov
8e7ae3a996
Minor: IrTypeCheckerContext.removeExactAnnotation
2019-06-26 09:39:16 +03:00
Roman Artemev
6a82ffdc5e
[JS IR BE] Make tests work
2019-06-26 09:39:16 +03:00
Dmitry Petrov
760806a1ac
IR: IMPLICIT_DYNAMIC_CAST
...
Generate IMPLICIT_DYNAMIC_CAST for implicit casts from `dynamic` to `T`
2019-06-26 09:39:16 +03:00
Dmitry Petrov
422c13bd03
IR: add docs for IrTypeOperator's
2019-06-26 09:39:16 +03:00
Dmitry Petrov
1d9cb39915
psi2ir: fix nullability assertion generation for platform types
...
Incorporate PR from Steven Schäfer into IrType-based implicit cast
insertion (commit 17b925636e8717e7648c5d7b792c6ab4d18f776d).
NB this still uses originalKotlinType to determine if the type was
nullability flexible. It is somewhat error-prone and something we want
to get rid of. However, it boils down to some design questions related
to implicit null checks in Kotlin - e.g., it might be Ok to just treat
nullability flexible type `T!` as `T?` in IR, generate null checks for
all usages of type `T?` where a non-null type is expected, and later
eliminate the null checks that are redundant according to the (quite
conservative) criterion in the redundant null check elimination.
2019-06-26 09:39:16 +03:00
Dmitry Petrov
ab38430ded
psi2ir: irText/.../types: NI vs OI
2019-06-26 09:39:15 +03:00
Dmitry Petrov
38ad56fb78
psi2ir: Update testData for intersection type tests
...
Actually, IrType-based InsertImplicitCasts provides proper casts here.
2019-06-26 09:39:15 +03:00
Dmitry Petrov
3fa671943c
psi2ir: coerce SAM conversion arguments to corresponding function types
...
Given an expression with SAM conversion, e.g.:
```
fun test(a: Any?) {
if (a is () -> Unit) {
Runnable(a).run()
}
}
```
Here `Runnable(a)` expects `a` to be a value of functional type
`() -> Unit` (and corresponding type check makes smart cast possible).
Relation between `Runnable` and `() -> Unit` is somewhat non-trivial,
is implemented in terms of KotlinTypes and DeclarationDescriptors,
and so should be encapsulated in psi2ir if possible.
Thus, psi2ir generates IR such as
```
TYPE_OP type=java.lang.Runnable origin=SAM_CONVERSION ...
TYPE_OP type=kotlin.Function0<kotlin.Unit> origin=IMPLICIT_CAST ...
[| a |]
```
and InsertImplicitCasts knows that IMPLICIT_CAST actually might be
unnecessary (which also allows to use InsertImplicitCasts in some other
context that might require IMPLICIT_CAST rewriting, such as inlining).
2019-06-26 09:39:15 +03:00
Roman Artemev
332b191546
Fix ir type substitutor
2019-06-26 09:39:15 +03:00
Roman Artemev
7ac3f56a43
Fix InsertImplicitCasts to test isSubtypeOf
2019-06-26 09:39:15 +03:00
Roman Artemev
0c74eef500
Implement IrType context
2019-06-26 09:39:15 +03:00
Roman Artemev
3fc1419d01
[IR] Implement TypeChecker context and full isSubtypeOf/commonSuperType for IrType
2019-06-26 09:39:15 +03:00
Roman Artemev
b7d098af56
[IR] Implement captureFromArguments for IrType
2019-06-26 09:39:15 +03:00
Roman Artemev
d4e561baf6
[IR] Support IrType in type checker
2019-06-26 09:39:15 +03:00
Mikhail Zarechenskiy
c77f18fbe6
[NI] Support callable references on qualified types with generics
...
#KT-32154 Fixed
2019-06-26 00:23:12 +03:00
Pavel Punegov
e9aec54f59
Ignore test in native because it doesn't support 40 parameters
2019-06-25 19:12:41 +03:00
Ilmir Usmanov
0ada383281
Move addFunctionOverride to AddContinuationLowering
2019-06-25 16:30:02 +03:00
Ilmir Usmanov
c613e04962
Do not try to create view of suspend function descriptor on IR BE
...
Keep container source in wrapped descriptor
2019-06-25 16:30:02 +03:00
Ilmir Usmanov
53878b6961
Do not generate synthetic accessors of local functions as suspend
2019-06-25 16:30:02 +03:00
Ilmir Usmanov
48e64e8a07
Use WrappedSimpleFunctionDescriptor instead of real one for
...
suspend function views
2019-06-25 16:30:02 +03:00
Ilmir Usmanov
ca421e0aa5
Do not generate empty bodies for suspend functions
2019-06-25 16:30:01 +03:00
Ilmir Usmanov
95a65ba94d
Restore order of lowerings
2019-06-25 16:30:01 +03:00