diff --git a/java/ql/test/kotlin/library-tests/operator-overloads/PrintAst.expected b/java/ql/test/kotlin/library-tests/operator-overloads/PrintAst.expected new file mode 100644 index 00000000000..99ccc34a83c --- /dev/null +++ b/java/ql/test/kotlin/library-tests/operator-overloads/PrintAst.expected @@ -0,0 +1,56 @@ +test.kt: +# 0| [CompilationUnit] test +# 0| 1: [Class] TestKt +# 1| 1: [Method] fn +# 1| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 1| 0: [Parameter] arr +# 1| 0: [TypeAccess] byte[] +# 1| 1: [Parameter] mt +# 1| 0: [TypeAccess] C +# 1| 5: [BlockStmt] { ... } +# 2| 0: [ExprStmt] ; +# 2| 0: [ImplicitCoercionToUnitExpr] +# 2| 0: [TypeAccess] Unit +# 2| 1: [ArrayAccess] ...[...] +# 2| 0: [VarAccess] arr +# 2| 1: [IntegerLiteral] 1 +# 3| 1: [ExprStmt] ; +# 3| 0: [ImplicitCoercionToUnitExpr] +# 3| 0: [TypeAccess] Unit +# 3| 1: [ArrayAccess] ...[...] +# 3| 1: [IntegerLiteral] 1 +# 4| 2: [ExprStmt] ; +# 4| 0: [ImplicitCoercionToUnitExpr] +# 4| 0: [TypeAccess] Unit +# 4| 1: [MethodAccess] get(...) +# 4| -1: [VarAccess] mt +# 4| 0: [IntegerLiteral] 1 +# 4| 1: [IntegerLiteral] 2 +# 7| 2: [ExtensionMethod] get +# 7| 3: [TypeAccess] String +#-----| 4: (Parameters) +# 7| 0: [Parameter] +# 7| 0: [TypeAccess] byte[] +# 7| 1: [Parameter] i +# 7| 0: [TypeAccess] int +# 7| 2: [Parameter] j +# 7| 0: [TypeAccess] int +# 7| 5: [BlockStmt] { ... } +# 7| 0: [ReturnStmt] return ... +# 7| 0: [StringLiteral] +# 10| 2: [Class] C +# 10| 1: [Constructor] C +# 10| 5: [BlockStmt] { ... } +# 10| 0: [SuperConstructorInvocationStmt] super(...) +# 10| 1: [BlockStmt] { ... } +# 11| 2: [Method] get +# 11| 3: [TypeAccess] String +#-----| 4: (Parameters) +# 11| 0: [Parameter] i +# 11| 0: [TypeAccess] int +# 11| 1: [Parameter] j +# 11| 0: [TypeAccess] int +# 11| 5: [BlockStmt] { ... } +# 11| 0: [ReturnStmt] return ... +# 11| 0: [StringLiteral] diff --git a/java/ql/test/kotlin/library-tests/operator-overloads/PrintAst.qlref b/java/ql/test/kotlin/library-tests/operator-overloads/PrintAst.qlref new file mode 100644 index 00000000000..c7fd5faf239 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/operator-overloads/PrintAst.qlref @@ -0,0 +1 @@ +semmle/code/java/PrintAst.ql \ No newline at end of file diff --git a/java/ql/test/kotlin/library-tests/operator-overloads/test.expected b/java/ql/test/kotlin/library-tests/operator-overloads/test.expected new file mode 100644 index 00000000000..ccf3691b05e --- /dev/null +++ b/java/ql/test/kotlin/library-tests/operator-overloads/test.expected @@ -0,0 +1,2 @@ +| test.kt:3:5:3:13 | Dispatch receiver not found | +| test.kt:3:5:3:13 | Extra arguments found | diff --git a/java/ql/test/kotlin/library-tests/operator-overloads/test.kt b/java/ql/test/kotlin/library-tests/operator-overloads/test.kt new file mode 100644 index 00000000000..950b0914fe0 --- /dev/null +++ b/java/ql/test/kotlin/library-tests/operator-overloads/test.kt @@ -0,0 +1,12 @@ +fun fn(arr: ByteArray, mt: C) { + arr[1] + arr[1, 2] + mt[1, 2] +} + +public operator fun ByteArray.get(i: Int, j: Int) = "" + + +public class C { + public operator fun get(i: Int, j: Int) = "" +} diff --git a/java/ql/test/kotlin/library-tests/operator-overloads/test.ql b/java/ql/test/kotlin/library-tests/operator-overloads/test.ql new file mode 100644 index 00000000000..16d62d79b3c --- /dev/null +++ b/java/ql/test/kotlin/library-tests/operator-overloads/test.ql @@ -0,0 +1,6 @@ +import java +import java +import semmle.code.java.Diagnostics + +from Diagnostic d +select d