Georgy Bronnikov
fae003866b
Use CLI compiler arguments directly in PhaseConfig creation
2019-03-21 23:32:25 +03:00
Georgy Bronnikov
469fd20902
Warn about mistyped phase names in CLI
2019-03-21 23:32:25 +03:00
Dmitriy Novozhilov
58189c79ca
Add regression test for PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL diagnostic
...
#KT-20507
2019-03-21 16:09:46 +03:00
Dmitry Petrov
f9119c001e
JVM_IR: generate file class without members if it has metadata
2019-03-21 11:23:51 +03:00
Dmitry Petrov
a5c95275f0
IR: get rid of descriptors in DumpIrTree
2019-03-21 11:23:51 +03:00
Dmitry Petrov
9a82f926a1
IR: descriptor-less rendering of IR elements (work in progress)
2019-03-21 11:23:51 +03:00
Dmitry Petrov
110a15d395
IR: drop IrFile.fileAnnotations (it already has annotations anyway)
2019-03-21 11:23:51 +03:00
Dmitry Petrov
b42aa39033
IR: drop IrTypeAlias
2019-03-21 11:23:51 +03:00
Dmitry Petrov
e49eae528c
IR: don't use descriptors in rendering (work in progress)
...
There's some descriptor-based code remaining. Need some more work on IR.
2019-03-21 11:23:51 +03:00
Ting-Yuan Huang
79fcaae991
Implement constant folding in the IR backend for JVM
...
The newly added pass folds the set of constant functions of the
current backend, plus IrBuiltIns.
2019-03-20 21:02:55 +01:00
Yan Zhulanow
77c2a5c87c
Debugger: Fix missing NOP in empty 'when' header (KT-29189)
2019-03-20 20:52:20 +03:00
Jake Wharton
6ee987fa2e
Add intrinsics for compile-time computing trimMargin/trimIndent
...
These only apply when the receiver can be resolved to a constant and the margin prefix, if specified, is also a constant.
2019-03-20 17:25:29 +01:00
Dmitry Petrov
7e4688da93
psi2ir: add test for reference to var with non-accessible setter
2019-03-20 11:57:57 +03:00
Dmitry Petrov
c86ef5da53
psi2ir: update testData for property references
2019-03-20 11:57:57 +03:00
Dmitry Petrov
9f48695dde
psi2ir: no unbound field symbols in delegated property references
...
#KT-30323 Fixed
2019-03-20 11:57:57 +03:00
Dmitry Petrov
bd9c5645cd
IR: fix property reference symbol binding for generic properties
2019-03-20 11:57:57 +03:00
Ting-Yuan Huang
f6cf434650
when: emit switch for String if possible
...
Effectively, the following when structure:
when (s) {
s1, s2 -> e1,
s3 -> e2,
s4 -> e3,
...
else -> e
}
is implemented as:
when (s.hashCode()) {
h1 -> {
if (s == s1)
e1
else if (s == s2)
e1
else if (s == s3)
e2
else
e
}
h2 -> if (s == s3) e2 else e,
...
else -> e
}
where s1.hashCode() == s2.hashCode() == s3.hashCode() == h1,
s4.hashCode() == h2.
A tableswitch or lookupswitch is used for the hash code lookup.
Change-Id: I087bf623dbb4a41d3cc64399a1b42342a50757a6
2019-03-20 09:13:51 +01:00
pyos
ed298c48b7
Unmute a test fixed by a combination of PR #2151 and #2184
2019-03-19 12:00:29 +01:00
pyos
6c68474489
JVM_IR: use correct signatures for local delegated property references
...
Which is `<v#N>` where N is the index of that property in the containing
class.
2019-03-19 12:00:29 +01:00
pyos
8c55376f0c
Unmute almost all JVM_IR tests that use property references
2019-03-19 12:00:29 +01:00
pyos
82ccf81da8
Fix this remapping in inner class constructors
...
Inner class constructors should use the argument instead of reading
outer `this` from a field because if such an access happens before a
delegating constructor call, e.g. when evaluating an argument, a JVM
bytecode validation error will be thrown. (The only operation on `this`
allowed before a delegating constructor call is SETFIELD, and only if
the field in question is declared in the same class.)
2019-03-19 09:20:41 +01:00
Dmitriy Novozhilov
d01b6ef900
Revert "[NI] Support @OnlyInputTypes annotation. #KT-29307 fixed"
...
This reverts commit 90628112
With that annotation there is complex bug that breaks build of Kotlin compiler
2019-03-18 18:53:38 +03:00
Ilmir Usmanov
d154cf9a59
Fix test data
2019-03-18 14:04:04 +03:00
Ilmir Usmanov
c68413b953
Do not generate StateMachineChecker if CHECK_STATE_MACHINE directive is
...
not present.
Otherwise, since it uses suspend functions, it breaks IR tests.
2019-03-18 14:04:03 +03:00
Ilmir Usmanov
7956ef18b2
Generate RETURN instead of ARETURN if (cross)inline suspend lambda returns Unit
...
#KT-30073 Fixed
2019-03-18 14:04:02 +03:00
Ilmir Usmanov
cc9a0041e0
Check number of suspensions in crossinline tests
2019-03-18 14:04:01 +03:00
Ilmir Usmanov
df52c5217d
Add facility to check number of suspensions in coroutine tests
2019-03-18 14:04:01 +03:00
victor.petukhov
9a2178d96b
Split 'nothingTypedSuspendFunction' test into two separate tests (for old and new coroutines)
2019-03-16 21:39:44 +03:00
victor.petukhov
29493a4977
Fix 'nothingTypedSuspendFunction' test after 70c35f4186
2019-03-16 14:15:08 +03:00
victor.petukhov
70c35f4186
Introduce warning about implicitly inferred Nothing as a type parameter
...
^KT-20849 Fixed
2019-03-15 19:28:38 +03:00
Roman Artemev
1f98eaa27b
[JS IR BE] Fix Callable reference with vararg
...
* Update tests
2019-03-15 19:21:38 +03:00
Anton Bannykh
a4c693ec29
[JS IR BE] updated inliner to the most recent version
...
FunctionInlining.kt commit 364b7ae72a :
https://github.com/JetBrains/kotlin-native/blob/364b7ae72a49c2a1716c83c1bab0866dfe46fa25/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt
2019-03-15 14:56:33 +03:00
Dmitriy Novozhilov
b07aed7a00
[NI] Fix determination of completion mode. #KT-30406 Fixed
2019-03-15 10:39:50 +03:00
Dmitriy Novozhilov
1c92c22dee
[NI] Add support ExpectedTypeFromCast to new inference. #KT-30405 Fixed
2019-03-15 10:39:29 +03:00
Dmitriy Novozhilov
9062811231
[NI] Support @OnlyInputTypes annotation. #KT-29307 fixed
...
Also KT-26698 fixed in new inference
2019-03-15 10:39:11 +03:00
Dmitriy Novozhilov
0ba163d70b
[NI] Fix testdata of inference lambdas with SAM conversions
...
Tetdata was broken in 3e147af3c0
#KT-27565 related
2019-03-15 10:39:11 +03:00
Mark Punzalan
3585792b3b
Break out bytecodeText/conditions tests into smaller tests for if/while/do-while.
2019-03-15 08:32:22 +01:00
Mark Punzalan
9eb11ff3e9
Generate conditional jumps with optimizations for loops, if possible.
2019-03-15 08:32:22 +01:00
Mikhail Glukhikh
43d06f85e3
Add raw type comparison for Java (J2K mapping is taken into account)
...
NB: Java enhancement scope does not perform substitution, so we could
have some duplicates inside "type enhancement" testData
Related to KT-29937
2019-03-14 18:17:58 +03:00
Mikhail Glukhikh
be412baf9f
FIR type enhancement: fold flexible types when it's possible
...
Related to KT-29937
2019-03-14 18:08:01 +03:00
Mikhail Glukhikh
6c8aba8039
FIR: support callable symbols in dependencies provider
...
This breaks mppFakeOverrides test because of bug in FIR fake overrides
2019-03-14 18:07:32 +03:00
Mikhail Glukhikh
33fb3d154b
FIR Java model: support static members & enum entries
...
Related to KT-29218
2019-03-14 18:07:17 +03:00
Mikhail Glukhikh
14fb495ab6
Support Java constructors in FIR (related to KT-29218)
2019-03-14 17:57:13 +03:00
Mikhail Glukhikh
7563a98999
FIR type enhancement: make J2K mapping and changed handling more exact
...
Related to KT-29937
2019-03-14 17:56:05 +03:00
Mikhail Glukhikh
226cf8e42c
FIR Java types: handle wildcard types correctly
...
Related to KT-29937, KT-29218
2019-03-14 17:55:25 +03:00
Mikhail Glukhikh
6c79b184c0
FIR Java types: add Kotlin/Java mapping & mutability enhancements
...
Related to KT-29937
2019-03-14 17:55:10 +03:00
Mikhail Glukhikh
e7ac88d326
FIR: implement Java fields (in provider, type enhancement, scopes)
...
Related to KT-29218
2019-03-14 17:54:53 +03:00
Mikhail Glukhikh
4255c9f774
Add FIR enhancement tests, fix some exceptions / problems around them
...
Test data and tests themselves are based on
compiler/testData/loadJava/compiledJava
2019-03-14 17:52:33 +03:00
Steven Schäfer
3f4c5c8d53
Resolve type aliases when looking for default arguments to actual methods.
...
Change-Id: I059093c1af32fcd7a2de36c25160c352d6f03a3c
2019-03-14 14:59:34 +01:00
Mads Ager
8b566fda76
JVM_IR: Perform asm type conversion for string concat arguments.
...
This ensures that the Unit instance is loaded when string
concatenation contains a sub part that is a call of a Unit
return-type method.
2019-03-13 10:01:21 +01:00