Kotlin: Fix File locations, and fromSource/hasSourceLocation for Kotlin code

This commit is contained in:
Ian Lynagh
2021-10-21 20:52:15 +01:00
parent b9359bd119
commit 14a10564f3
6 changed files with 10 additions and 5 deletions

View File

@@ -192,7 +192,7 @@ class Location extends @location {
}
private predicate hasSourceLocation(Top l, Location loc, File f) {
hasLocation(l, loc) and f = loc.getFile() and f.getExtension() = "java"
hasLocation(l, loc) and f = loc.getFile() and f.getExtension() = ["java", "kt"]
}
cached

View File

@@ -34,7 +34,7 @@ class Element extends @element, Top {
* Elements pertaining to source files may include generated elements
* not visible in source code, such as implicit default constructors.
*/
predicate fromSource() { this.getCompilationUnit().getExtension() = "java" }
predicate fromSource() { this.getCompilationUnit().getExtension() = ["java", "kt"] }
/** Gets the compilation unit that this element belongs to. */
CompilationUnit getCompilationUnit() { result = this.getFile() }

View File

@@ -1,3 +1,4 @@
| classes.kt:0:0:0:0 | ClassesKt | ClassesKt |
| classes.kt:2:1:2:18 | ClassOne | ClassOne |
| classes.kt:4:1:6:1 | ClassTwo | ClassTwo |
| classes.kt:8:1:10:1 | ClassThree | ClassThree |
@@ -7,7 +8,6 @@
| classes.kt:34:1:47:1 | ClassSeven | ClassSeven |
| file://:0:0:0:0 | Any | kotlin.Any |
| file://:0:0:0:0 | Boolean | kotlin.Boolean |
| file://:0:0:0:0 | ClassesKt | ClassesKt |
| file://:0:0:0:0 | Int | kotlin.Int |
| file://:0:0:0:0 | String | java.lang.String |
| file://:0:0:0:0 | String | kotlin.String |

View File

@@ -1,10 +1,10 @@
| file1.kt:2:1:2:16 | Class1 | Class1 |
| file2.kt:2:1:2:16 | Class2 | Class2 |
| file3.kt:0:0:0:0 | MyJvmName | MyJvmName |
| file3.kt:3:1:3:16 | Class3 | Class3 |
| file://:0:0:0:0 | Any | kotlin.Any |
| file://:0:0:0:0 | Boolean | kotlin.Boolean |
| file://:0:0:0:0 | Int | kotlin.Int |
| file://:0:0:0:0 | MyJvmName | MyJvmName |
| file://:0:0:0:0 | String | java.lang.String |
| file://:0:0:0:0 | String | kotlin.String |
| file://:0:0:0:0 | Unit | kotlin.Unit |