1421 Commits

Author SHA1 Message Date
Ian Lynagh
6cf0b755f0 Kotlin: Add KotlinType to localvars 2022-05-10 19:51:00 +01:00
Ian Lynagh
06a41b3923 Kotlin: Add KotlinTypes to arrays 2022-05-10 19:51:00 +01:00
Ian Lynagh
ef22194eed Kotlin: Add KotlinType to params 2022-05-10 19:51:00 +01:00
Ian Lynagh
0d5e471b96 Kotlin: Give methods and constructors a KotlinType 2022-05-10 19:51:00 +01:00
Ian Lynagh
c20ee76826 Kotlin: Give fields a Kotlin type
This meant refactoring the EnumEntry extraction a bit. The IR doesn't
give us a type for fields, so we have to make it up based on the parent.
2022-05-10 19:51:00 +01:00
Ian Lynagh
b3a28af319 Kotlin: Move extractTypeParameter back to KotlinFileExtractor 2022-05-10 19:51:00 +01:00
Ian Lynagh
7421e95816 Kotlin: Pull more out into KotlinUsesExtractor 2022-05-10 19:51:00 +01:00
Ian Lynagh
b381556a06 Kotlin: Fix up things that got pulled out into KotlinUsesExtractor 2022-05-10 19:51:00 +01:00
Ian Lynagh
a5a42b4416 Kotlin: Refactor so that we can't give locations to "used" things
Things we use may not be in the same file as us, so we aren't able to
generate valid locations for them.
2022-05-10 19:51:00 +01:00
Ian Lynagh
960c436824 Kotlin: Call extractClassCommon later
This fixes a "Missing type parameter label" warning from the extractor
with
    interface Foo<T>
    class Bar<T>: Foo<T> { }
caused by the `: Foo<T>` being extracted before extracting the `T`
in `Bar<T>`.
2022-05-10 19:51:00 +01:00
Ian Lynagh
6c957284de Kotlin: Add support for enum value accesses 2022-05-10 19:51:00 +01:00
Ian Lynagh
976cc31c7a Kotlin: Add support for string templates 2022-05-10 19:50:59 +01:00
Ian Lynagh
81fd7c735a Kotlin: Add suport for enum classes 2022-05-10 19:50:59 +01:00
Ian Lynagh
2b01c5d825 Kotlin: Follow changes in main 2022-05-10 19:50:59 +01:00
Chris Smowton
97f380eddc Don't abort external class extraction after first duplicate 2022-05-10 19:50:59 +01:00
Ian Lynagh
e8fd9ed948 Kotlin: Add a warning suppression 2022-05-10 19:50:59 +01:00
Ian Lynagh
cbd265ab7a Kotlin: Add support for try statements 2022-05-10 19:50:59 +01:00
Ian Lynagh
6b5663df46 Kotlin: Handle Short and Byte literals
I don't think we need separate DB types for them
2022-05-10 19:50:59 +01:00
Ian Lynagh
ba335b0c69 Kotlin: Add StmtExpr
In some contexts, Kotlin has what we would call a Stmt inside what we
would call an Expr. This allows us to handle this case.
2022-05-10 19:50:59 +01:00
Ian Lynagh
2ba8ccafa9 Kotlin: Make build compatible with older javac's 2022-05-10 19:50:59 +01:00
Ian Lynagh
9a886260cd Kotlin: Add support for IMPLICIT_COERCION_TO_UNIT 2022-05-10 19:50:59 +01:00
Ian Lynagh
46e55f5990 Kotlin: Add support for IMPLICIT_NOTNULL 2022-05-10 19:50:59 +01:00
Chris Smowton
dfa9bef5bd Fix gradle homedir search 2022-05-10 19:50:59 +01:00
Ian Lynagh
a6c504abe3 Kotlin: Add support for implicit casts 2022-05-10 19:50:59 +01:00
Ian Lynagh
ba7a7535e9 Kotlin: Add support for more type operators 2022-05-10 19:50:58 +01:00
Ian Lynagh
f95934a0c5 Kotlin: Use trace (silently for now) rather than info for writing TRAP files
The on-demand "Writing trap file for: " messages are drowning out
everything else while running the tests.
2022-05-10 19:50:58 +01:00
Ian Lynagh
d6692e434a Kotlin: Add support for "is" ("instanceof") 2022-05-10 19:50:58 +01:00
Chris Smowton
3cb68bd7be kotlin-extractor build: include Java source files 2022-05-10 19:50:58 +01:00
Chris Smowton
4dda475a8d Fix source location column numbers 2022-05-10 19:50:58 +01:00
Chris Smowton
e65f451af6 erase: retain question-mark qualifier if present 2022-05-10 19:50:58 +01:00
Chris Smowton
48d5561c95 Use getClassLabel for Kotlin <-> Java type correspondences
Without this, the table can be non-functional due to mapping one unqualified Kotlin type onto several qualified Java types
2022-05-10 19:50:58 +01:00
Chris Smowton
f5021e8e68 Java: produce Java 8 class files for compatibility with packaged Java 11 binary 2022-05-10 19:50:58 +01:00
Chris Smowton
e5e694f7d3 Adjust Kotlin type correspondence tables when extracting a substituted type 2022-05-10 19:50:58 +01:00
Chris Smowton
12ce2d5829 Substitute Kotlin classes for Java equivalents 2022-05-10 19:50:58 +01:00
Chris Smowton
6de5a36cdc Write Java class files in gzip format
This means our names match those expected by javac
2022-05-10 19:50:58 +01:00
Chris Smowton
4a18705d73 Write .set file for source file 2022-05-10 19:50:58 +01:00
Chris Smowton
b299779750 Create Files table entries for JAR/JRT files 2022-05-10 19:50:58 +01:00
Chris Smowton
8e63d10c1f Populate Folders, containerparent tables 2022-05-10 19:50:57 +01:00
Chris Smowton
4c3b9e658b Fix trap file output paths
These should be named for the class name, not its fs location
2022-05-10 19:50:57 +01:00
Chris Smowton
debb942c0e Implement mtime and class version extraction 2022-05-10 19:50:57 +01:00
Chris Smowton
a0671cafb1 Remove trap file compression for now 2022-05-10 19:50:57 +01:00
Chris Smowton
2cc003ff0e External class extraction prototype 2022-05-10 19:50:57 +01:00
Tamas Vajk
b7b506a23d Improve temp directory cleanup 2022-05-10 18:46:02 +01:00
Tamas Vajk
52341dc99f Modify build script to build both standalone and embeddable plugin variant 2022-05-10 18:46:02 +01:00
Ian Lynagh
286e29cd81 Kotlin: Add exprstmt's where appropriate 2022-05-10 18:46:02 +01:00
Ian Lynagh
8704536f35 Kotlin: local variable indexes start from 1 2022-05-10 18:46:02 +01:00
Ian Lynagh
8df5abaef9 Kotlin: Add localvariabledeclstmt 2022-05-10 18:46:02 +01:00
Ian Lynagh
e5e6225d57 Kotlin: Add a build.py script that uses kotlinc to build 2022-05-10 18:46:02 +01:00
Ian Lynagh
1d1b9fe805 Kotlin: Add support for more kind of literal
And a test
2022-05-10 18:46:02 +01:00
Tamas Vajk
731d601cdd Add optional dbscheme path parameter to KotlinExtractorDbScheme.kt generator 2022-05-10 18:46:02 +01:00