Joe Farebrother
ea3db5d429
Add test cases
2022-12-09 13:41:17 +00:00
Joe Farebrother
c3da3a9aef
Add a bit of additional context to the alert message; fix issue with finding the config file
2022-12-09 13:41:17 +00:00
Joe Farebrother
17348fbd32
Add android certificate pinning query
2022-12-09 13:41:17 +00:00
Chris Smowton
b8ed3b7dbf
Accept annotation test changes
...
These are notnull annotations that no longer get inappropriately attached to constructors
2022-12-09 12:57:20 +00:00
Chris Smowton
40e902eca9
Look through generic annotation types extracted from Kotlin
2022-12-09 11:52:28 +00:00
Chris Smowton
65dc0dc326
Add dummy extensible predicate definition to integration test
2022-12-09 11:17:37 +00:00
Chris Smowton
a161d79cd8
Remove no-longer-needed expected diagnostics
2022-12-09 10:33:06 +00:00
Chris Smowton
93ea433c49
Add missing imports
2022-12-09 10:33:06 +00:00
Chris Smowton
251513c1d3
Format ql
2022-12-09 10:33:06 +00:00
Chris Smowton
78234c52fd
Ensure constructors don't get nullability annotations
2022-12-09 10:33:06 +00:00
Chris Smowton
f5dc5155f9
Don't introduce @NotNull on Kotlin methods that already have that annotation
...
This usually can't happen, but delegates pointing at Java appear to be synthesised with this normally-hidden annotation
2022-12-09 10:33:05 +00:00
Chris Smowton
c8e2ae8563
Accept integration test changes
...
These introduce newly-extracted annotations, and note that enum constants no longer get type-access expressions in some circumstances
2022-12-09 10:33:05 +00:00
Chris Smowton
7a7c08b185
Tolerate generic annotations
...
This causes them to render properly in PrintAst output due to `getAnnotationElement` working as expected, and will hide the fact that they are represented by raw types in bytecode.
2022-12-09 10:33:05 +00:00
Chris Smowton
f6888c727f
PrintAst: Assign indices to annotation children that don't have source locations
...
This avoids them all tying at rank 1 as before.
2022-12-09 10:33:05 +00:00
Chris Smowton
01a5345660
Reimplement Deprecated annotation conversion suitable for older Kotlin versions
2022-12-09 10:33:05 +00:00
Chris Smowton
8ca05d8fef
Exclude annotations from consistency check due to intentionally missing children
2022-12-09 10:33:05 +00:00
Chris Smowton
70ebb41d67
Restore nullability annotations
...
This is imperfect since arguments to those annotations will be missing, but at least the common case of a plain `@NotNull` or `@Nullable` will be right, and the `@NotNull`s introduced by the Kotlin compiler will be present as expected.
2022-12-09 10:33:05 +00:00
Chris Smowton
8bbb34a498
Convert kotlin.Deprecated back into a no-arg java.lang.Deprecated if applicable
...
This at least maintains consistency with the Java extractor, although we lose its arguments if any were supplied Java-side.
2022-12-09 10:33:05 +00:00
Chris Smowton
658c7a20cf
Don't extract error expressions when a default value is missing
...
This is a shortcoming of the Kotlin extractor, but at least this way we don't introduce an inconsistency if the annotation is later seen from .kt source or by the Java extractor
2022-12-09 10:33:05 +00:00
Chris Smowton
5b2834c833
Restrict type access extraction to classes extracted from source
...
Type accesses have anonymous IDs, so we mimic the Java extractor and extract them only when seeing a class in a .kt source file.
2022-12-09 10:33:05 +00:00
Chris Smowton
0a788bcbc1
Don't extract return value type accesses for external annotations
...
This would cause inconsistencies when both the source and external view of the class are in scope, since the type access has a fresh id.
2022-12-09 10:33:05 +00:00
Chris Smowton
225913c49e
Replace needless map call
2022-12-09 10:33:04 +00:00
Chris Smowton
80ef3a5290
Move meta-annotation support code out into its own class
2022-12-09 10:33:04 +00:00
Chris Smowton
c4ded5b4a7
Remove unused function
2022-12-09 10:33:04 +00:00
Chris Smowton
3dc9c2e57b
Remove unnecessary unchecked cast
2022-12-09 10:33:04 +00:00
Chris Smowton
f9fc08bd40
Replace uses of the !! operator in borrowed code
2022-12-09 10:33:04 +00:00
Chris Smowton
81353f8654
Make annotation extraction compatible with all supported Kotlin versions
2022-12-09 10:33:04 +00:00
Chris Smowton
757fa60a46
Remove unused import
2022-12-09 10:33:04 +00:00
Chris Smowton
f9b878fe98
Add test for .kt defined, Java used repeatable annotation
2022-12-09 10:33:04 +00:00
Chris Smowton
5c019940db
Fix missing !! removal
2022-12-09 10:33:04 +00:00
Chris Smowton
ca27f9516a
Replace uses of !! operator
2022-12-09 10:33:04 +00:00
Chris Smowton
73df3166eb
Test varargs annotation
2022-12-09 10:33:04 +00:00
Chris Smowton
6d5f962c56
Accept test changes (implicit annotations, restoration of annotation type accesses)
2022-12-09 10:33:03 +00:00
Chris Smowton
d96bca071d
Add test for repeatable annotations
2022-12-09 10:33:03 +00:00
Chris Smowton
eaa9595ea2
Restore type-accesses to annotation methods; accept test changes.
2022-12-09 10:33:03 +00:00
Chris Smowton
9e0eb56d77
Extract repeatable annotation container types, including synthetic containers
2022-12-09 10:33:03 +00:00
Chris Smowton
0146d8229a
Accept more test changes due to string quoting and the Java extractor ignoring the Metadata annotation
2022-12-09 10:33:03 +00:00
Chris Smowton
0446145a67
Accept test changes
...
These are due to changing string literal representation, omitting empty annotations blocks, and changes to how annotation classes are represented in the database.
2022-12-09 10:33:03 +00:00
Chris Smowton
d530817afc
Accept annotation_classes test changes
2022-12-09 10:33:03 +00:00
Chris Smowton
df90fc1a80
Disable type parameter annotation extraction pending a database change
2022-12-09 10:33:03 +00:00
Chris Smowton
9b3c07c32b
Add annotation class meta-annotations per classes' expected JVM lowering
2022-12-09 10:33:03 +00:00
Chris Smowton
f7d2644d74
Re-enable extracting most annotations
2022-12-09 10:33:03 +00:00
Chris Smowton
26540111ce
Factor out common code for referencing an external type
2022-12-09 10:33:03 +00:00
Chris Smowton
8781366fbe
Only extract function annotations for unbound types
...
Note however this includes extracting annotations for external types, unlike the situation for function bodies.
2022-12-09 10:33:01 +00:00
Chris Smowton
06133e74a5
Handle generic annotations
2022-12-09 10:31:34 +00:00
Chris Smowton
14a47f628c
Fixup: remove unneeded test file
2022-12-09 10:31:34 +00:00
Chris Smowton
d7213d2d82
Only convert KClass -> Class in annotation context
2022-12-09 10:31:34 +00:00
Chris Smowton
2fd8e61fe2
Add test of Java/Kotlin annotation naming consistency
2022-12-09 10:31:34 +00:00
Chris Smowton
24434ed0ff
Make annotation labelling consistent between Java and Kotlin
...
This gives all annotations and expressions derived from them globally-significant and stable names, enabling the Kotlin and Java extractors to see the same annotation without introducing database conflicts.
2022-12-09 10:31:34 +00:00
Tamas Vajk
df595c05f2
WIP: revert some annotation extraction to get proper tree in printast
2022-12-09 10:31:34 +00:00