Dmitry Petrov
84baa0b4c2
Check more flags in bytecode listing tests
2020-02-26 12:03:37 +03:00
Mark Punzalan
b782e8f0f0
Add IR equivalent of AbstractBytecodeListingTest and muted failures.
2020-02-13 23:44:53 +03:00
Alexander Udalov
e2a42446ed
Use getter names for $annotations methods in most codegen tests
...
This is needed to update master to 1.4, while still testing the latest
compiler by default. Also add one test on the old behavior.
2019-12-30 16:29:13 +01:00
Ilya Chernikov
f38bb19fc6
[minor] Fix testdata for compiler 1.4
2019-12-19 14:01:01 +01:00
Nikolay Krasko
4d0fc1dc22
Remove 182 support
...
#KT-33536 Fixed
2019-08-30 12:13:44 +03:00
Alexander Udalov
01ddac58e1
Add language feature for changed name of property annotations method
...
#KT-31352 Fixed
2019-08-12 16:48:26 +02:00
Alexander Udalov
ea0142da60
Use JVM name of getter in synthetic method for property annotations
...
#KT-31352 In Progress
2019-08-12 16:48:25 +02:00
Vyacheslav Gerasimov
d84c5b1608
Switch to 183 platform
2018-12-06 20:16:58 +03:00
Mikhael Bogdanov
d2a205c72d
Update synthetic parameter processing logic according to ASM 7 changes
...
#KT-27774 Fixed
2018-11-07 15:42:57 +01:00
Dmitry Petrov
f68ce4b35b
Support default parameter values for inline class constructors and funs
...
#KT-26908
#KT-26554
Move default parameter value tests to separate directory
2018-10-15 12:21:14 +03:00
Dmitry Petrov
ab90b2b901
Fix nullability propagation in inline class type mapping
...
#KT-27096
See https://jetbrains.slack.com/archives/C06E082M6/p1537949572000100
2018-09-28 10:46:42 +03:00
Mikhael Bogdanov
1face1c334
Don't generate annotations on synthetic accessor parameters
2018-09-19 12:14:09 +02:00
Mikhael Bogdanov
38652372ce
Generate private constructors for Enums
...
#KT-2680 Fixed
#KT-16867 Fixed
2018-09-19 12:14:08 +02:00
Dmitry Petrov
88fb76bffc
Fix annotations loading for inline class constructors
2018-09-14 16:09:41 +03:00
Mikhael Bogdanov
03f092fd39
Revert "Generate private constructors for Enums" cause of bootstrap problem
...
This reverts commit 81435c9
2018-09-13 17:07:56 +02:00
Mikhael Bogdanov
81435c98fa
Generate private constructors for Enums
...
#KT-2680 Fixed
#KT-16867 Fixed
2018-09-13 10:09:58 +02:00
Dmitry Petrov
792c5f8b3f
Generate metadata and annotations for hidden constructor
...
Reflection expects to see a callable method for a hidden constructor,
thus, it should be a synthetic accessor.
JVM method signature in metadata should point to the synthetic accessor.
Annotations for hidden constructor should be written on the synthetic
accessor.
2018-09-12 15:33:11 +03:00
Dmitry Petrov
006c0aa740
Hide constructors accepting inline class parameters
2018-09-07 15:57:59 +03:00
Dmitry Petrov
65ad93ebe4
Don't generate getter for private or internal inline class primary vals
2018-09-07 10:27:31 +03:00
Dmitry Petrov
cafaa3e13c
Mangle inline class members
...
<IMPL_SUFFIX> for method is a method signature hash,
if method value parameter types contain inline class types,
otherwise 'impl'.
Constructor methods are named as 'constructor-<IMPL_SUFFIX>'.
Synthesized 'box' and 'unbox' methods are named as
'<METHOD_NAME>-<IMPL_SUFFIX>'.
Erased implementations of overriding and non-overriding methods
are named as '<METHOD_NAME>-<IMPL_SUFFIX>'.
Fully specialized implementation of 'equals' will have a special suffix.
2018-09-07 10:25:53 +03:00
Dmitry Petrov
43b4190f7c
Test: visibility of inline class members
...
Also merge in testInlineClassWrapperPrimaryConstructorIsSynthetic
and testInlineClassConstructors.
2018-09-07 09:31:33 +03:00
Dmitry Petrov
d8a6db8774
Mark synthesized box/unbox methods in inline classes as ACC_SYNTHETIC
2018-09-07 09:31:26 +03:00
Dmitry Petrov
d24b0fd3b2
Test: 'constructor' methods visibility
2018-09-07 09:31:26 +03:00
Dmitry Petrov
0bd1c4d1b7
Make inline class wrapper constructor private
2018-09-07 09:31:26 +03:00
Dmitry Petrov
c094b3a5a2
Drop erased class for inline class
2018-09-07 09:31:26 +03:00
Mikhail Zarechenskiy
690762d46c
Inline classes ABI: rename equals--impl to equals-impl0
2018-09-06 17:01:01 +03:00
Mikhail Zarechenskiy
83975bd6ac
Generate stub for specialized equals inside inline class
2018-09-06 10:39:33 +03:00
Dmitry Petrov
203fd6a5d6
Make inline class wrapper constructor synthetic
2018-09-05 12:20:57 +03:00
Dmitry Petrov
85826d304e
Don't generate secondary constructors for inline class wrapper
2018-09-05 12:20:57 +03:00
Dmitry Petrov
65881dda97
Fix tests after rebase
2018-09-05 12:20:57 +03:00
Dmitry Petrov
3080b65f7d
Inline (wrapper) class IC extends erased inline class IC$Erased
2018-09-05 12:20:57 +03:00
Dmitry Savvinov
4dfb99596b
Fix testdata after introduction of inline-classes mangling
2018-08-30 16:24:29 +03:00
Mikhail Zarechenskiy
1497c19dc9
Do not generate useless methods inside wrapper for inline class
...
Fix for test data (inlineFunctionInsideInlineClassesBox.kt) is needed
to avoid check about "no inline functions".
This check has two steps: first, names of inline functions from
the metadata are loaded, then these names are checked that they are
presented for physical methods in the classfile.
Because now there are no physical methods in the classfile, we can't pass
the second check, therefore this fix is needed.
#KT-24872 Fixed
2018-08-07 12:15:46 +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
Mikhail Zarechenskiy
6a120d2f85
Require presence of public primary constructor for inline class
2018-05-07 15:25:38 +03:00
Mikhail Zarechenskiy
30c79ffadc
Support generating computable properties inside inline classes
2018-02-09 04:57:20 +03:00
Mikhail Zarechenskiy
70cd1cfcdf
Fix generation of companion object inside inline classes
2018-02-09 04:56:45 +03:00
Mikhail Zarechenskiy
e1d3b21201
Skip bridge methods generation for inline classes
2018-02-09 04:56:43 +03:00
Mikhail Zarechenskiy
1ac4e9755a
Generate synthetic unbox method for each wrapper of inline class
2018-02-09 02:08:11 +03:00
Mikhail Zarechenskiy
a59917b6f8
Generate synthetic box method for each erased inline class
2018-02-09 02:08:10 +03:00
Mikhail Zarechenskiy
9d05fac771
Don't generate backing field for erased inline class
2018-02-09 02:08:09 +03:00