The extension function ArgumentsAccessor.getimport org.junit.jupiter.params.aggregator.get because the extension function is compiled to a _private static_ method:
> javap -c -p -cp .\junit-jupiter-params-5.3.0-M1.jar org.junit.jupiter.params.aggregator.ArgumentsAccessorKt
Compiled from "ArgumentsAccessor.kt"
public final class org.junit.jupiter.params.aggregator.ArgumentsAccessorKt {
private static final <T> T get(org.junit.jupiter.params.aggregator.ArgumentsAccessor, int);
Code:
0: aload_0
1: iload_1
2: iconst_4
3: ldc #26 // String T
5: invokestatic #32 // Method kotlin/jvm/internal/Intrinsics.reifiedOperationMarker:(ILjava/lang/String;)V
8: ldc #4 // class java/lang/Object
10: invokeinterface #37, 3 // InterfaceMethod org/junit/jupiter/params/aggregator/ArgumentsAccessor.get:(ILjava/lang/Class;)Ljava/lang/Object;
15: dup
16: ldc #39 // String this.get(index, T::class.java)
18: invokestatic #43 // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
21: areturn
@juergenzimmermann Thanks for reporting!
javap reports the same thing for the assertThrows extension function, though:
private static final <T extends java.lang.Throwable> T assertThrows(kotlin.jvm.functions.Function0<kotlin.Unit>);
Code:
0: iconst_4
1: ldc #177 // String T
3: invokestatic #181 // Method kotlin/jvm/internal/Intrinsics.reifiedOperationMarker:(ILjava/lang/String;)V
6: ldc #37 // class java/lang/Throwable
...
IDEA's decompiler shows this:

However, when I try to use it from a sample project, I cannot import it either:

However, when trying to do the same thing from a test in a different package directly in junit-jupiter-params (by moving the ArgumentsAccessorKotlinTests class to a different package), it works.
Being not familiar with Kotlin in detail, my only hunch is that it might be the warning we ignore here after all:
https://github.com/junit-team/junit5/blob/d5290b447d127ffdad2fa06aa78f02b4e2a86f08/junit-jupiter-params/src/main/kotlin/org/junit/jupiter/params/aggregator/ArgumentsAccessor.kt#L23-L25
@JLLeitschuh @wilder Any ideas?
This happens because inline functions with reified type can't be accessed from Java code.
The reified type is used so we can access the value of T at runtime without requiring the class type to be passed as argument to the function.
It would work in Java code if we removed the reified type and added a Class parameter to the function, but I don't think that would make much sense since it would look exactly as the Java function.
@wilder I cannot import the get extension function in a JUnit test completely written in Kotlin. Therefore, I tried to decompile. I'm not that familiar with reified. However, I see that e.g. Pivotal's _Project Reactor_ is having extension functions without reified, and those functions can be imported without any problems, e.g. https://github.com/reactor/reactor-core/blob/master/reactor-core/src/main/kotlin/reactor/core/publisher/FluxExtensions.kt#L49
BTW, why is inline necessary?
Hm... If the function isn't accessible even from Kotlin code then I think the problem is not related to reified.
The inline is necessary so the reified can be used. And the reified is required so we can get the value of the class we called the extension function at.
In the Pivotal's Project Reactor extension function you mentioned they don't use reified because they don't need to get the value of T inside that function. Here is a function they also had to use reified to get the class type.
import reactor.core.publisher.cast works fine:

Could you please put together and share a small sample project, e.g. based on the Kotlin sample in junit5-samples, that demonstrates the issue so we‘re all talking about the same thing here?
Here is a reduced testcase. Just invoke .\gradlew, since "test" is the default task.
testcase1490.zip
@marcphilipp I run some tests here and figured out that the problem is really what you've mentioned...
The function is being shadowed by org.junit.jupiter.params.aggregator.get.
I've changed the name of the extension function locally and could access it from another package.
I can make a PR fixing this. Any suggestions for the new function name?
Maybe getAt(index: Int) or from(index: Int)
Team Decision: Let's go with getAs<Type>(Int).
@wilder Do you have time to take care of changing it?
@marcphilipp yes, I do!
Now that we've found the root cause in #1546, we should revisit whether getAs<Type>(Int) is actually better than get<Type>(Int) which is closer to the Java equivalent of get(int, Class<Type>).
Validation that get<T>(Int) works: 1edca864995062c2b16f609cd4e770fce1fc9f80
Awesome!
So, can we now close this issue?
Ahhhh, now I see that commit was from the issues/1490-switch-back-to-get branch.
I thought you'd already pushed to master.
Methinks you should rename the branch to issues/1490-get-back-to-basics. 😝
Now that we've found the root cause in #1546, we should revisit whether
getAs<Type>(Int)is actually better thanget<Type>(Int)which is closer to the Java equivalent ofget(int, Class<Type>).
I vote ✅ for get().
Team Decision: Switch back to get<Type>(Int).
_in progress_
Nice work @marcphilipp, I'm sorry for not noticing it before!
Thanks and no worries – that was a tricky one!
Most helpful comment
Validation that
get<T>(Int)works: 1edca864995062c2b16f609cd4e770fce1fc9f80