Michael Nebel
4622b69c5d
Java: Update flow summary impl and external flow to support provenance and include testing in Csv model validation.
2022-06-20 16:20:02 +02:00
Michael Nebel
649757c27f
Java/Ruby: Sync files.
2022-06-20 16:20:01 +02:00
Tamás Vajk
b16fcb72eb
Merge pull request #9559 from tamasvajk/kotlin-fix-parcelize-symbols-3
...
Kotlin: substitute fake Parcelize functions with their real equivalent ones
2022-06-20 13:05:23 +02:00
Rasmus Wriedt Larsen
ae44a941f9
Merge pull request #9421 from RasmusWL/inline-brackets
...
Inline Expectation Tests: Allow `tag[foo bar]`
2022-06-20 10:01:19 +02:00
Rasmus Wriedt Larsen
b65a10d1ef
Inline Expectation Tests: sync
2022-06-17 17:38:19 +02:00
Chris Smowton
92b8c0f864
Merge pull request #9563 from smowton/smowton/fix/name-trap-files-after-jvmnames
...
Kotlin: Name trap files after jvmnames
2022-06-17 12:32:28 +01:00
Anders Schack-Mulligen
99343c4606
Merge pull request #9582 from igfoo/igfoo/tidy
...
Java: Remove some redundant string concatenations, and a double space
2022-06-17 09:02:05 +02:00
Ian Lynagh
5ba672f035
NonSerializableField: Accept test output changes
2022-06-16 17:34:56 +01:00
Ian Lynagh
e7bc2ca423
Java: Remove some redundant string concatenations
2022-06-16 16:38:17 +01:00
Ian Lynagh
13ddc4a988
Java: Remove a double space from an alert message
2022-06-16 16:35:09 +01:00
Chris Smowton
a2c0fe4edb
Fix Kotlin single-version build when the best candidate has trailing version info
...
For example, 1.7.0-RC would previously be truncated to 1.7.0 resulting in failure to build the single-version distro as all candidate alternate-version kotlin files would be ignored.
2022-06-16 13:25:59 +01:00
Ian Lynagh
5280cf4e91
CaptureSinkModels.ql: Fix typo
2022-06-15 20:19:15 +01:00
Chris Smowton
90e8d4e1de
Name trap files after jvmnames
...
This should lead to better Java/Kotlin correspondence since the Java extractor will naturally name trap files for JVM names, and avoids a specific bug (tested) where MapsKt.iterator's two overloads (one taking `Map` and one `MutableMap`) are JvmName'd differently since their Java-lowered signatures would be identical. Without this change only
one of the iterator overloads would get extracted leaving the other one a dangling reference.
2022-06-15 11:55:58 +01:00
Chris Smowton
483281e00f
Merge pull request #9554 from smowton/smowton/fix/rename-removeat
...
Kotlin: Add more Kotlin <-> Java special method name mappings
2022-06-15 10:44:26 +01:00
Anders Schack-Mulligen
c4782871d4
Merge pull request #9294 from aschackmull/java/barrierguard-parammod
...
Java: Add support for BarrierGuards as parameterised modules.
2022-06-15 10:56:48 +02:00
Tamas Vajk
c722921276
Kotlin: substitute fake Parcelize functions with their real equivalent ones
2022-06-15 10:35:48 +02:00
Chris Smowton
efbe264f93
Accept toInt/intValue and similar test changes
2022-06-14 21:44:54 +01:00
Chris Smowton
d390dc0316
Map java.lang.Number methods to their Java equivalents
2022-06-14 21:44:54 +01:00
Chris Smowton
d3fa4951f6
Accept test changes renaming removeAt(int) -> remove(int)
2022-06-14 21:44:54 +01:00
Chris Smowton
3901f57550
Fix: don't crash when local functions happen to share the name of a function with a special JVM name
2022-06-14 21:44:54 +01:00
Chris Smowton
837bef60fe
Add java.lang.Enum ordinal and name accessors to special-cased JVM names
...
Kotlin represents these as read-only properties with unusual getter names.
2022-06-14 21:44:54 +01:00
Chris Smowton
d151bf632c
Kotlin: Rewrite MutableList.removeAt(int) -> remove(int)
...
The Kotlin authors changed this to avoid a clash on List<Int>, but we must reverse the renaming so the Kotlin and Java views of the same class file extract alike.
2022-06-14 21:44:54 +01:00
Chris Smowton
a9f43889ea
Fix wildcard introduction vs. constructor parameters
...
Previously we handled the case of *methods* with potentially-wildcarded types that Java nontheless constrains to be invariant, but missed out the constructor case.
2022-06-14 12:07:49 +01:00
Ian Lynagh
7c5a4909c6
Merge pull request #9468 from igfoo/igfoo/overloads
...
Kotlin: Put overloads together
2022-06-13 10:44:55 +01:00
Ian Lynagh
bdae353d4d
Merge pull request #9475 from igfoo/igfoo/builddir
...
Kotlin: Do each build in its own directory
2022-06-13 10:44:36 +01:00
Ian Lynagh
ae472f32de
Merge pull request #9453 from igfoo/igfoo/sam
...
Kotlin: Simplify samMember computation
2022-06-13 10:44:18 +01:00
Ian Lynagh
d8edc83ea2
Merge pull request #9451 from igfoo/igfoo/useValueParameter
...
Kotlin: Remove some redundant code
2022-06-13 10:43:54 +01:00
Ian Lynagh
669c1faf29
Kotlin: Do each build in its own directory
...
This can make life easier when debugging.
2022-06-10 15:01:37 +01:00
Ian Lynagh
6055aaf048
Kotlin: Put overloads together
...
Makes it easier when reading the code.
The substituteTypeArguments functions aren't actually overloads, but I
think the same applies.
2022-06-09 17:43:11 +01:00
Ian Lynagh
5c9fea2283
Kotlin: Remove unused idOverride argument to extractFunction
2022-06-07 11:34:43 +01:00
Ian Lynagh
33e11b3014
Kotlin: Simplify samMember computation
2022-06-07 11:11:00 +01:00
Ian Lynagh
763f869e3f
Kotlin: Remove some redundant code
2022-06-06 20:49:36 +01:00
Rasmus Wriedt Larsen
50196d099b
Inline Expectation Tests: sync
2022-06-03 11:39:57 +02:00
Tamas Vajk
0a484aadf1
Improve code quality based on PR review
2022-06-03 11:17:13 +02:00
Tamas Vajk
ba5cf5b1b2
Kotlin: Fix fake raw type symbols used by the Parcelize plugin
2022-06-03 11:17:13 +02:00
Chris Smowton
70c74bfcc0
Merge pull request #9418 from smowton/smowton/admin/test-java-kotlin-map-entries
...
Kotlin: add test for Java and Kotlin both extending Map.Entry
2022-06-02 15:52:59 +01:00
Chris Smowton
3d63cec1e8
Autoformat
2022-06-02 14:45:28 +01:00
Chris Smowton
ebb52adba6
Kotlin: add test for Java and Kotlin both extending Map.Entry
2022-06-02 13:30:39 +01:00
Chris Smowton
8b1605a617
Merge pull request #9405 from smowton/smowton/fix/restore-wildcard-types
...
Kotlin: Introduce / restore implied wildcard types
2022-06-02 13:26:11 +01:00
Anders Schack-Mulligen
4e6e595b3a
Java: Add qldoc.
2022-06-02 13:30:27 +02:00
Chris Smowton
efc534abe7
Add implied wildcards when extracting type parameter bounds
...
kotlinc seems to always insert wildcards where type parameter variance implies them, and ignores @JvmSuppressWildcards at least in 1.6.20.
2022-06-02 11:37:15 +01:00
Anders Schack-Mulligen
9f42ca8d14
Update java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2022-06-02 12:00:37 +02:00
Anders Schack-Mulligen
002c456989
Update java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2022-06-02 12:00:09 +02:00
Chris Smowton
c1592cb1dc
Accept test changes
2022-06-02 10:31:35 +01:00
Chris Smowton
910bb51094
Extract WildcardTypeAccesses
...
Their absence became more noticeable now that more implicit wildcards are being produced.
2022-06-02 10:31:08 +01:00
Tamás Vajk
d7b06aa2ba
Merge pull request #9401 from tamasvajk/kotlin-cleanup
...
Kotlin: Reuse `codeQlWithHasQuestionMark`
2022-06-02 10:24:17 +02:00
github-actions[bot]
ab4b7d8509
Add changed framework coverage reports
2022-06-02 00:18:51 +00:00
Chris Smowton
dc7d07ff46
Extract correct implied wildcards for Java classes and @JvmSuppressWildcards-annotated entities
...
For Java classes this means following the structure of the underlying Java type to determine where the wildcard was really present and where the Java signature ruled it out. The annotation tracking simply means looking for @JvmSuppressWildcards on any surrounding class or function to turn off wildcard introduction by default.
2022-06-01 20:00:22 +01:00
Chris Smowton
37fce6ace9
Restore implicit wildcard types
...
The Kotlin compiler represents types like List<out CharSequence> internally as List<CharSequence> due to the fact that List's type parameter is covariant, and similarly Comparable<in CharSequence> where Comparable's type parameter is contravariant. However it restores use-site variance when emitting class files, so we must do the same thing for
compatability with Java code.
Note this is a partial solution because it will also add wildcards to Java .class files that *could* have a variance / wildcard but don't -- for example, a Java method could really take an invariant Comparable<CharSequence>, which is only achievable in Kotlin via the @JvmSuppressWildcards annotation. We also don't yet support
@JvmSuppressWildcards given on a surrounding class or function.
2022-06-01 19:58:40 +01:00
Ian Lynagh
e0d9317889
Merge pull request #9389 from igfoo/igfoo/function_loc_override
...
Kotlin: Remove extractFunction's location override
2022-06-01 11:46:22 +01:00