Mikhael Bogdanov
c19c979b7d
Use last asm api for visitor construction
2018-12-20 12:55:09 +01:00
Alexey Tsvetkov
8aa069a774
Make AbstractJvmAbiContentTest system independent
2018-12-13 15:39:39 +03:00
Alexey Tsvetkov
01fbcfad23
Minor: replace UsefulTestCase with KtUsefulTestCase
...
For some reason assertSameLinesWithFile from UsefulTestCase
fails with exception on TeamCity, whereas the one KtUsefulTestCase
does not
2018-12-12 02:53:13 +03:00
Alexey Tsvetkov
57f8f216d1
Exclude local variables and try catch blocks of non-inline functions from ABI
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
495cfec9e9
Check descriptor visibility before excluding method from ABI class
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
34d96dff28
Minor: rename const according to style guide
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
b87058b532
Attempt to fix ABI tests on TC
...
Locally they work fine
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
09dbf427ee
Disable removing private/synthetic/local classes temporarily
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
96f3c67b3b
Report output classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
05c5196aaa
Reuse BytecodeListingTextCollectingVisitor in tests
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
497df17eb7
Reuse TransformationMethodVisitor in ABI gen plugin
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
50d8fe611c
Minor fixes after review
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
d54ce2da6f
Exclude nested classes of private classes from ABI classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
64380f55d2
Report locations of errors in ABI classes tests
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
9dd09151f0
Add tests for compilation against abi classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
8992ee6280
Add tests for non-compatible ABI changes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
5891617674
Exclude clinit from ABI classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
519211036d
Exclude synthetic classes from ABI classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
fe047a0092
Minor: extract function
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
f231817559
Delay I/O when transforming ABI classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
d74185a74d
Remove unused cosntant pool entries from ABI classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
3a29b337a0
Exclude private typealiases from ABI classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
1f5ca7274d
Exclude local and private classes from ABI classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
7c2f7cab9a
Exclude non-inline method bodies from ABI classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
903f6bc79b
Exclude private members from ABI classes
2018-12-11 22:48:53 +03:00
Alexey Tsvetkov
33faa00184
Add plugin for JVM ABI classes generation
...
#KT-25128 Fixed
ABI class generation is implemented as a compiler plugin.
Command-line usage:
1. Add a path to 'jvm-abi-gen.jar' to the plguin classpath argument
(`-Xplugin`). By default the jar is located at
'kotlinc/lib/jvm-abi-gen.jar' in the kotlinc distribution archive.
2. Specify an output directory for ABI classes via
`-Pplugin:org.jetbrains.kotlin.jvm.abi:outputDir=<DIR>`.
2018-12-11 22:48:53 +03:00