xref: /aosp_15_r20/external/zucchini/testdata/invoke-custom-min.smali (revision a03ca8b91e029cd15055c20c78c2e087c84792e4)
1*a03ca8b9SKrzysztof Kosiński# Tests invoke-custom added in DEX version 38.
2*a03ca8b9SKrzysztof Kosiński
3*a03ca8b9SKrzysztof Kosiński# Compile using smali: https://github.com/JesusFreke/smali
4*a03ca8b9SKrzysztof Kosiński# java -jar smali.jar assemble invoke-custom-min.smali --api 28
5*a03ca8b9SKrzysztof Kosiński
6*a03ca8b9SKrzysztof Kosiński.class public LFoo;
7*a03ca8b9SKrzysztof Kosiński.super Ljava/lang/Object;
8*a03ca8b9SKrzysztof Kosiński
9*a03ca8b9SKrzysztof Kosiński.method public la1(Ljava/util/ArrayList;)V
10*a03ca8b9SKrzysztof Kosiński    .registers 5
11*a03ca8b9SKrzysztof Kosiński    .annotation system Ldalvik/annotation/Signature;
12*a03ca8b9SKrzysztof Kosiński        value = {
13*a03ca8b9SKrzysztof Kosiński            "(",
14*a03ca8b9SKrzysztof Kosiński            "Ljava/util/ArrayList",
15*a03ca8b9SKrzysztof Kosiński            "<",
16*a03ca8b9SKrzysztof Kosiński            "Ljava/lang/String;",
17*a03ca8b9SKrzysztof Kosiński            ">;)V"
18*a03ca8b9SKrzysztof Kosiński        }
19*a03ca8b9SKrzysztof Kosiński    .end annotation
20*a03ca8b9SKrzysztof Kosiński
21*a03ca8b9SKrzysztof Kosiński    .prologue
22*a03ca8b9SKrzysztof Kosiński    .line 42
23*a03ca8b9SKrzysztof Kosiński    invoke-virtual {p1}, Ljava/util/ArrayList;->stream()Ljava/util/stream/Stream;
24*a03ca8b9SKrzysztof Kosiński
25*a03ca8b9SKrzysztof Kosiński    move-result-object v0
26*a03ca8b9SKrzysztof Kosiński
27*a03ca8b9SKrzysztof Kosiński    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*a03ca8b9SKrzysztof Kosiński
29*a03ca8b9SKrzysztof Kosiński    move-result-object v1
30*a03ca8b9SKrzysztof Kosiński
31*a03ca8b9SKrzysztof Kosiński    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*a03ca8b9SKrzysztof Kosiński
33*a03ca8b9SKrzysztof Kosiński    move-result-object v2
34*a03ca8b9SKrzysztof Kosiński
35*a03ca8b9SKrzysztof Kosiński    invoke-interface {v0, v1, v2}, Ljava/util/stream/Stream;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
36*a03ca8b9SKrzysztof Kosiński
37*a03ca8b9SKrzysztof Kosiński    .line 50
38*a03ca8b9SKrzysztof Kosiński    return-void
39*a03ca8b9SKrzysztof Kosiński.end method
40