Skip to content

Commit

Permalink
test: add tests covering array-specific MethodHandle initializers (#39)
Browse files Browse the repository at this point in the history
  • Loading branch information
SirYwell committed Sep 23, 2023
1 parent 6db71e5 commit 9d9ae29
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ class MethodHandleInspectionsTest : LightJavaCodeInsightFixtureTestCase() {

fun testSimpleIdentity() = doTypeCheckingTest()

fun testInitializeArrayConstructor() = doTypeCheckingTest()

fun testInitializeArrayElementGetter() = doTypeCheckingTest()

fun testInitializeArrayElementSetter() = doTypeCheckingTest()

fun testInitializeArrayLength() = doTypeCheckingTest()

fun testMethodTypeAppendParameterTypes() = doTypeCheckingTest()

fun testMethodTypeChangeParameterType() = doTypeCheckingTest()
Expand Down
6 changes: 6 additions & 0 deletions src/test/testData/InitializeArrayConstructor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;

class InitializeArrayConstructor {
<info descr="(int)double[]">private static final MethodHandle MH = <info descr="(int)double[]">MethodHandles.arrayConstructor(double[].class)</info>;</info>
}
6 changes: 6 additions & 0 deletions src/test/testData/InitializeArrayElementGetter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;

class InitializeArrayGetter {
<info descr="(double[],int)double">private static final MethodHandle MH = <info descr="(double[],int)double">MethodHandles.arrayElementGetter(double[].class)</info>;</info>
}
6 changes: 6 additions & 0 deletions src/test/testData/InitializeArrayElementSetter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;

class InitializeArraySetter {
<info descr="(double[],int,double)void">private static final MethodHandle MH = <info descr="(double[],int,double)void">MethodHandles.arrayElementSetter(double[].class)</info>;</info>
}
6 changes: 6 additions & 0 deletions src/test/testData/InitializeArrayLength.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;

class InitializeArrayLength {
<info descr="(double[])int">private static final MethodHandle MH = <info descr="(double[])int">MethodHandles.arrayLength(double[].class)</info>;</info>
}

0 comments on commit 9d9ae29

Please sign in to comment.