mirror of
https://github.com/github/codeql.git
synced 2026-04-28 10:15:14 +02:00
Merge pull request #10756 from tamasvajk/kotlin-fix-java-modifier
Kotlin: extract `protected` modifier from java class files
This commit is contained in:
@@ -231,7 +231,7 @@ open class KotlinFileExtractor(
|
||||
// default java visibility (top level)
|
||||
}
|
||||
JavaVisibilities.ProtectedAndPackage -> {
|
||||
// default java visibility (member level)
|
||||
addModifiers(id, "protected")
|
||||
}
|
||||
else -> logger.errorElement("Unexpected delegated visibility: $v", elementForLocation)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package extlib;
|
||||
|
||||
public class A {
|
||||
protected void m() {}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
| extlib.jar/extlib/A.class:0:0:0:0 | m | protected |
|
||||
| test.kt:4:12:4:22 | m | override, protected |
|
||||
@@ -0,0 +1,6 @@
|
||||
import extlib.A;
|
||||
|
||||
class B : A() {
|
||||
override fun m() { }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
from create_database_utils import *
|
||||
import glob
|
||||
|
||||
# Compile Java untraced. Note the Java source is hidden under `javasrc` so the Kotlin compiler
|
||||
# will certainly reference the jar, not the source or class file for extlib.Lib
|
||||
|
||||
os.mkdir('build')
|
||||
runSuccessfully(["javac"] + glob.glob("libsrc/extlib/*.java") + ["-d", "build"])
|
||||
runSuccessfully(["jar", "cf", "extlib.jar", "-C", "build", "extlib"])
|
||||
run_codeql_database_create(["kotlinc test.kt -cp extlib.jar"], lang="java")
|
||||
@@ -0,0 +1,6 @@
|
||||
import java
|
||||
|
||||
query predicate mods(Method m, string modifiers) {
|
||||
m.getName() = "m" and
|
||||
modifiers = concat(string s | m.hasModifier(s) | s, ", ")
|
||||
}
|
||||
Reference in New Issue
Block a user