Georgy Bronnikov
451cda79de
Rewrite AnnotationCodegen for IR, removing descriptors
2019-03-23 19:04:36 +03:00
Ting-Yuan Huang
caccb79324
Label improper IEEE 754 tests.
...
Those tests don't expect ProperIeee754Comparisons.
See KT-22723 for details.
2019-03-22 11:07:35 -07:00
Alexander Udalov
ed86757817
Rework how built-in types are loaded in compiler for JVM
...
In TopDownAnalyzerFacadeForJVM, we now always use the "load built-ins
from module dependencies" behavior that was previously only enabled with
the dedicated CLI argument -Xload-builtins-from-dependencies. However,
sometimes we compile code without kotlin-stdlib in the classpath, and we
don't want everything to crash because some standard type like
kotlin.Unit hasn't been found.
To mitigate this, we add another module at the end of the dependencies
list, namely a "fallback built-ins" module. This module loads all
built-in declarations from the compiler's class loader, as was done by
default previously. This prevents the compiler from crashing if any
built-in declaration is not found, but compiling the code against
built-ins found in the compiler is still discouraged, so we report an
error if anything is resolved to a declaration from this module, via a
new checker MissingBuiltInDeclarationChecker.
Also introduce a new CLI argument -Xsuppress-missing-builtins-error
specifically to suppress this error and to allow compiling code against
compiler's own built-ins.
#KT-19227 Fixed
#KT-28198 Fixed
2019-03-22 14:59:03 +01:00
Simon Ogorodnik
498fb94c37
FIR: Make FIR rendering more kotlin-styled
2019-03-22 16:25:10 +03:00
Svyatoslav Kuzmich
8429734a67
[JS IR BE] Disable -ProperIeee754Comparisons tests
2019-03-22 13:49:37 +03:00
Georgy Bronnikov
e627f08614
Make wrong phase name an error
2019-03-21 23:32:25 +03:00
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