1# Tests invoke-custom added in DEX version 38. 2 3# Compile using smali: https://github.com/JesusFreke/smali 4# java -jar smali.jar assemble invoke-custom-min.smali --api 28 5 6.class public LFoo; 7.super Ljava/lang/Object; 8 9.method public la1(Ljava/util/ArrayList;)V 10 .registers 5 11 .annotation system Ldalvik/annotation/Signature; 12 value = { 13 "(", 14 "Ljava/util/ArrayList", 15 "<", 16 "Ljava/lang/String;", 17 ">;)V" 18 } 19 .end annotation 20 21 .prologue 22 .line 42 23 invoke-virtual {p1}, Ljava/util/ArrayList;->stream()Ljava/util/stream/Stream; 24 25 move-result-object v0 26 27 invoke-custom {}, call_site_1("bar", ()Ljava/util/function/Predicate;, (Ljava/lang/Object;)Z, invoke-static@LFoo;->lambda$la1$1(I)Z, (I)Z)@Ljava/lang/invoke/LambdaMetafactory;->metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 28 29 move-result-object v1 30 31 invoke-custom {}, call_site_2("test", ()Ljava/util/function/Predicate;, (Ljava/lang/Object;)Z, invoke-static@LFoo;->lambda$la1$1(Ljava/lang/String;)Z, (Ljava/lang/String;)Z)@Ljava/lang/invoke/LambdaMetafactory;->metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; 32 33 move-result-object v2 34 35 invoke-interface {v0, v1, v2}, Ljava/util/stream/Stream;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; 36 37 .line 50 38 return-void 39.end method 40