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