Skip to content

Commit b6790ef

Browse files
authored
Merge pull request #9725 from igfoo/igfoo/inline
Kotlin: Extract inlineability of functions
2 parents 0346b6b + 44e69e1 commit b6790ef

File tree

6 files changed

+21
-8
lines changed

6 files changed

+21
-8
lines changed

java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -809,6 +809,9 @@ open class KotlinFileExtractor(
809809
}
810810

811811
extractVisibility(f, id, f.visibility)
812+
if (f.isInline) {
813+
addModifiers(id, "inline")
814+
}
812815
if (isStaticFunction(f)) {
813816
addModifiers(id, "static")
814817
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: minorAnalysis
3+
---
4+
Added `Modifier.isInline()`.

java/ql/lib/semmle/code/java/Modifier.qll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ abstract class Modifiable extends Element {
5858
/** Holds if this element has an `internal` modifier. */
5959
predicate isInternal() { this.hasModifier("internal") }
6060

61+
/** Holds if this element has an `inline` modifier. */
62+
predicate isInline() { this.hasModifier("inline") }
63+
6164
/** Holds if this element has a `volatile` modifier. */
6265
predicate isVolatile() { this.hasModifier("volatile") }
6366

java/ql/test/kotlin/library-tests/methods/exprs.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,3 +296,4 @@
296296
| methods.kt:16:13:16:31 | Unit | TypeAccess |
297297
| methods.kt:17:14:17:33 | Unit | TypeAccess |
298298
| methods.kt:18:5:18:36 | Unit | TypeAccess |
299+
| methods.kt:19:12:19:29 | Unit | TypeAccess |

java/ql/test/kotlin/library-tests/methods/methods.expected

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,14 @@ methods
3737
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | a | a(int) | public | |
3838
| methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | f1 | f1(foo.bar.C1,int) | public | |
3939
| methods.kt:0:0:0:0 | MethodsKt | methods.kt:2:1:3:1 | topLevelMethod | topLevelMethod(int,int) | public, static | |
40-
| methods.kt:5:1:19:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | public | |
41-
| methods.kt:5:1:19:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | public | |
42-
| methods.kt:5:1:19:1 | Class | methods.kt:14:12:14:29 | publicFun | publicFun() | public | |
43-
| methods.kt:5:1:19:1 | Class | methods.kt:15:15:15:35 | protectedFun | protectedFun() | protected | |
44-
| methods.kt:5:1:19:1 | Class | methods.kt:16:13:16:31 | privateFun | privateFun() | private | |
45-
| methods.kt:5:1:19:1 | Class | methods.kt:17:14:17:33 | internalFun | internalFun() | internal | |
46-
| methods.kt:5:1:19:1 | Class | methods.kt:18:5:18:36 | noExplicitVisibilityFun | noExplicitVisibilityFun() | public | |
40+
| methods.kt:5:1:20:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | public | |
41+
| methods.kt:5:1:20:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | public | |
42+
| methods.kt:5:1:20:1 | Class | methods.kt:14:12:14:29 | publicFun | publicFun() | public | |
43+
| methods.kt:5:1:20:1 | Class | methods.kt:15:15:15:35 | protectedFun | protectedFun() | protected | |
44+
| methods.kt:5:1:20:1 | Class | methods.kt:16:13:16:31 | privateFun | privateFun() | private | |
45+
| methods.kt:5:1:20:1 | Class | methods.kt:17:14:17:33 | internalFun | internalFun() | internal | |
46+
| methods.kt:5:1:20:1 | Class | methods.kt:18:5:18:36 | noExplicitVisibilityFun | noExplicitVisibilityFun() | public | |
47+
| methods.kt:5:1:20:1 | Class | methods.kt:19:12:19:29 | inlineFun | inlineFun() | inline, public | |
4748
constructors
4849
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:6:1:47 | DataClass | DataClass(int,java.lang.String) |
4950
| delegates.kt:3:1:12:1 | MyClass | delegates.kt:3:1:12:1 | MyClass | MyClass() |
@@ -60,7 +61,7 @@ constructors
6061
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | | |
6162
| methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | | |
6263
| methods5.kt:13:1:13:14 | C1 | methods5.kt:13:1:13:14 | C1 | C1() |
63-
| methods.kt:5:1:19:1 | Class | methods.kt:5:1:19:1 | Class | Class() |
64+
| methods.kt:5:1:20:1 | Class | methods.kt:5:1:20:1 | Class | Class() |
6465
extensions
6566
| methods3.kt:3:1:3:42 | fooBarTopLevelMethodExt | file://:0:0:0:0 | int |
6667
| methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | file://:0:0:0:0 | int |

java/ql/test/kotlin/library-tests/methods/methods.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ class Class {
1616
private fun privateFun() {}
1717
internal fun internalFun() {}
1818
fun noExplicitVisibilityFun() {}
19+
inline fun inlineFun() {}
1920
}
2021

0 commit comments

Comments
 (0)