title: java.lang.IncompatibleClassChangeError org.junit.jupiter.params.provider.Arguments must be InterfaceMethodref constant
body: <pre><code>import groovy.transform.CompileStatic
  import org.junit.jupiter.params.ParameterizedTest
  import org.junit.jupiter.params.provider.Arguments
  import org.junit.jupiter.params.provider.MethodSource
  
  import java.util.stream.Stream
  
  import static org.assertj.core.api.Assertions.assertThat
  
  @CompileStatic
  class MyUnitTest {
  
  
      @ParameterizedTest(name = "{index} =&gt; myString={0}")
      @MethodSource("provideData")
      void test(String myString) {
  
          assertThat("hallo").isEqualTo(myString)
      }
  
      private static Stream&lt;Arguments&gt; provideData() {
          return Stream.of(
            Arguments.of("hallo"))
      }
  }
  </code></pre>
  
  <p>Running this JUnit 5 test gives me the following error:
  Method </p>
  
  <blockquote>
    <p>org.junit.jupiter.params.provider.Arguments.of([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;
    must be InterfaceMethodref constant
    java.lang.IncompatibleClassChangeError: Method
    org.junit.jupiter.params.provider.Arguments.of([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;
    must be InterfaceMethodref constant</p>
  </blockquote>
  
  <p>I use Java 10 and I have JUnit 5 enabled in my build.gradle.</p>