Dmitriy Novozhilov
1fc6f30c50
Add test for KT-23992
2019-02-22 10:22:19 +03:00
Dmitriy Novozhilov
92bd907983
Fix checking repeatablilty of use-site target annotations. KT-26638 fixed
2019-02-22 10:15:37 +03:00
Dmitriy Novozhilov
cfda468f13
Add test for KT-26638
2019-02-22 10:15:37 +03:00
Dmitriy Novozhilov
3e147af3c0
KT-27565 fix
2019-02-22 10:15:16 +03:00
Dmitriy Novozhilov
cd2b8839b4
Add test for KT-27565
2019-02-22 10:15:16 +03:00
Ilya Gorbunov
98c6c925fc
Move JS stdlib merger into cli compiler module
...
Refactor: use stdlib function to relativize paths.
2019-02-22 02:37:24 +03:00
Ilya Chernikov
d1a1594f26
Remove redundant direct usages of the ScriptDefinition in compiler
...
plus some refactoring around definition extraction
2019-02-21 15:59:48 +01:00
Ilya Chernikov
cc4aedb807
Move the rest of script descriptor implementation details to plugin, cleanup
2019-02-21 15:59:48 +01:00
Ilya Chernikov
29fa0f5dff
Replace unnecessary direct usages of the LazyScriptDescriptor with ScriptDescriptor interface
...
lift result property to the interface to implement it
2019-02-21 15:59:48 +01:00
Ilya Chernikov
e28017039d
Split scripts and class/object declarations in DeclarationsProvider
...
simplifies code in most places, avoids filtering in places where they
should be processed independently
2019-02-21 15:59:48 +01:00
Ilya Chernikov
a218455193
Extract script descriptor creation to scripting plugin
2019-02-21 15:59:48 +01:00
Ilya Chernikov
4359919e10
Add package-level class descriptors generation to the SyntheticResolveExtension
...
required for extracting script descriptors generation to an extension
2019-02-21 15:59:48 +01:00
Ilya Chernikov
0839b44ebb
Replace explicit ScriptDescriptor in resolver with appropriate superclass
2019-02-21 15:59:47 +01:00
Ilmir Usmanov
6e120b2173
Do not generate state-machines for suspend lambdas, which capture any
...
crossinline lambda, not only suspend.
#KT-29912 Fixed
2019-02-21 17:44:41 +03:00
Dmitry Petrov
c248dd29c2
IR: declaration builders, initial iteration, use in some JVM lowerings
2019-02-21 16:03:11 +03:00
Dmitriy Novozhilov
d58ee133a2
Fix type constraints of empty lambda (KT-28654 fix)
2019-02-21 12:04:23 +03:00
Dmitriy Novozhilov
2ba33c3b8a
Fix testdata broken in 46bd5ba
2019-02-21 12:04:23 +03:00
Dmitriy Novozhilov
10b7baf69a
Add test for KT-28654
2019-02-21 12:04:23 +03:00
Dmitriy Novozhilov
f186c83b15
KT-25383 fix
2019-02-21 12:04:23 +03:00
Natalia Selezneva
254374c619
Use ModuleInfo in VirtualFileFinder to add script dependencies in search scope
...
Otherwise it prevent to inline functions from those dependencies during scratch compilation
2019-02-20 18:36:38 +03:00
Natalia Selezneva
f3c828a17d
Get platform for scripts from script definition
...
Introduce 'platform' property in KotlinScripDefinition (should have a value which exists in TargetPlatform.ALL_KINDS)
^KT-27684 Fixed
2019-02-20 15:59:44 +03:00
Alexander Udalov
946acd2416
Minor, ignore test for JVM_IR
...
It started to fail with AssertionError in inlineOnly.kt after
d267f1e875 because "$annotations" methods have annotations from the
corresponding property (which can include InlineOnly), but are never
inline. The test will be unmuted as soon as we stop using wrapped
descriptors in the IR backend to determine access flags which should be
generated on a declaration in the bytecode
2019-02-20 10:56:14 +01:00
Igor Chevdar
1d0fdd7976
[IR] Some fixes to wrapped descriptors
2019-02-20 10:39:30 +05:00
Yaroslav Russkih
9ac52fad17
Use https everywhere - documentation and samples
2019-02-19 21:35:36 +01:00
Yaroslav Russkih
028a311949
Use https everywhere - tests and test data
2019-02-19 21:35:36 +01:00
Alexander Udalov
d267f1e875
JVM IR: generate synthetic $annotations methods for properties
2019-02-19 17:25:47 +01:00
Alexander Udalov
c92c50aa98
JVM IR: generate JVM signatures of companion object properties
2019-02-19 16:37:47 +01:00
Alexander Udalov
c357967c2c
JVM IR: generate Kotlin metadata
...
Introduce MetadataSource as a way to store the original descriptor for
any element (before any lowerings) and maintain it until the end of the
codegen where it's used in generating the metadata. Note that JVM
signatures written to the metadata are formed from the _resulting_
generated elements, not by mapping the original descriptors.
Some corner cases are not supported yet, namely properties declared in
companion objects, synthetic methods for property annotations,
JvmPackageName, etc.
#KT-29119 Fixed
2019-02-19 16:37:47 +01:00
Alexander Udalov
3d1858a8c5
Refactor and rename CodegenUtil.getDeclarationsToGenerate
...
Move logic regarding expect classes to the only relevant call site at
PackageCodegenImpl, and return the list of members to remove code
duplication at remaining call sites
2019-02-19 16:37:46 +01:00
Alexander Udalov
4487c7a988
JVM IR: rename private fields for properties with same name
...
This is needed to get rid of the code that appends "$companion" to
properties moved from companion, because it caused inconsistencies in
the ABI and in JVM signatures stored in the metadata
2019-02-19 16:37:46 +01:00
Ilmir Usmanov
aa9ce7b2e9
Minor. Update test data
2019-02-19 18:09:23 +03:00
Mads Ager
057bdb3954
Generate better code for branches based on comparisons.
...
For comparison intrinsics and for instanceof checks, make
it possible to get the the stack value produced and branch
on that directly instead of materializing a boolean to
branch on from it.
That reduces code such as
```
IF_CMPEQ L1
CONST_0
GOTO L2
L1: CONST_1
L2: IFEQ L3
```
to just one IF_CMP instruction.
2019-02-19 15:46:52 +01:00
Mads Ager
e9ec8e2cee
JVM_IR: Do not generate annotations on $default methods.
2019-02-19 13:23:42 +01:00
Mikhael Bogdanov
19d2bac2f8
Temporary disable test in IR
2019-02-19 13:05:05 +01:00
Mikhail Glukhikh
7d809bc1d5
Fix 181 compilation (AbstractFirResolveWithSessionTestCase)
...
We could fix it better, but anyway FIR & its tests aren't important
for this branch
2019-02-19 14:33:47 +03:00
Simon Ogorodnik
5cef869d36
FIR: add symbol provider for IDE #KT-24097 Fixed
...
Functions & properties aren't yet supported
2019-02-19 14:11:11 +03:00
Mikhael Bogdanov
3b57ceeafe
Don't generate annotations on $default methods
...
#KT-29965 Fixed
2019-02-19 10:51:37 +01:00
Mikhael Bogdanov
a020170a92
Report missed INLINE_FROM_HIGHER_PLATFORM diagnostic for derived class
...
Inline function descriptor in derived class represented as FAKE_OVERRIDE.
So we should find it in base class declaration
(not interface cause inline function can't be virtual, but always final)
and then check class version.
#KT-29402 Fixed
2019-02-19 10:51:36 +01:00
Mikhael Bogdanov
b03065b2ba
Minor. Reformat
2019-02-19 10:51:35 +01:00
Dmitry Petrov
e1fdf0aa43
KT-29959 fix IR generation for 'd.m = e'
2019-02-19 09:59:42 +03:00
Mikhail Glukhikh
7f9b3a98b4
Fix corner cases (no expression, not resolved label) in raw FIR builder
2019-02-19 09:54:39 +03:00
Mikhail Glukhikh
552b137852
FIR: get rid of fictitious function symbols
2019-02-19 09:54:37 +03:00
Mikhail Glukhikh
74d89b1be2
JavaSymbolProvider: support different kinds of literals in annotations
...
Constants, enum entries, class references, arrays are covered here
Related to KT-29218
2019-02-19 09:54:34 +03:00
Mikhail Glukhikh
f8e165dbe4
Integrate nullability into cone types, add & use FIR flexible type
...
FIR fake overrides are rendered now more precisely to test this process
2019-02-19 09:54:32 +03:00
Mikhail Glukhikh
3d77f3d129
Fix rendering of ConeClassErrorType
...
This commit fixes total kotlin resolve test
2019-02-19 09:54:30 +03:00
Simon Ogorodnik
9ebefa3ba6
FIR: make FunctionType class-like, refactor built-ins resolution
...
This breaks total kotlin resolve test because of incorrect rendering
of ConeClassErrorType (we are trying to read its symbol)
2019-02-19 09:54:28 +03:00
Simon Ogorodnik
3edd82b602
FIR: make JavaSymbolProvider return error-type on not found symbols
2019-02-19 09:54:26 +03:00
Simon Ogorodnik
5afb0a6f4a
FIR rename: FirType -> FirTypeRef and related
2019-02-19 09:54:24 +03:00
Mikhail Glukhikh
1c76a612f9
FIR rename: isNullable -> isMarkedNullable
2019-02-19 09:54:21 +03:00
Simon Ogorodnik
3a237416c9
Implement FIR loading for Java (classes, supertypes, parameters, funs)
...
Properties aren't implemented yet
FIR symbol provider functions return more specialized types now
Related to KT-28918, KT-29636, KT-29218
#KT-28788 Fixed
2019-02-19 09:54:20 +03:00