■ ■ ■ ■ ■ ■
jadx-core/src/test/groovy/jadx/tests/TestSignatureParser.groovy
| skipped 25 lines |
26 | 26 | | new SignatureParser(str).consumeType() == result |
27 | 27 | | |
28 | 28 | | where: |
29 | | - | str | result |
30 | | - | "TD;" | genericType("D") |
31 | | - | "La<TV;Lb;>;" | generic("La;", genericType("V"), object("b")) |
32 | | - | "La<Lb<Lc;>;>;" | generic("La;", generic("Lb;", object("Lc;"))) |
33 | | - | "La<TD;>.c;" | genericInner(generic("La;", genericType("D")), "c", null) |
34 | | - | "La<Lb;>.c<TV;>;" | genericInner(generic("La;", object("Lb;")), "c", genericType("V")) |
| 29 | + | str | result |
| 30 | + | "TD;" | genericType("D") |
| 31 | + | "La<TV;Lb;>;" | generic("La;", genericType("V"), object("b")) |
| 32 | + | "La<Lb<Lc;>;>;" | generic("La;", generic("Lb;", object("Lc;"))) |
| 33 | + | "La/b/C<Ld/E<Lf/G;>;>;" | generic("La/b/C;", generic("Ld/E;", object("Lf/G;"))) |
| 34 | + | "La<TD;>.c;" | genericInner(generic("La;", genericType("D")), "c", null) |
| 35 | + | "La<TD;>.c/d;" | genericInner(generic("La;", genericType("D")), "c.d", null) |
| 36 | + | "La<Lb;>.c<TV;>;" | genericInner(generic("La;", object("Lb;")), "c", genericType("V")) |
35 | 37 | | } |
36 | 38 | | |
37 | 39 | | def "inner generic"() { |
| skipped 45 lines |
83 | 85 | | then: |
84 | 86 | | argTypes.size() == 1 |
85 | 87 | | argTypes.get(0) == generic("Ljava/util/List;", wildcard()) |
| 88 | + | } |
| 89 | + | |
| 90 | + | def "method args 2"() { |
| 91 | + | when: |
| 92 | + | def argTypes = new SignatureParser("(La/b/C<TT;>.d/E;)V").consumeMethodArgs() |
| 93 | + | then: |
| 94 | + | argTypes.size() == 1 |
| 95 | + | def argType = argTypes.get(0) |
| 96 | + | argType.getObject().indexOf('/') == -1 |
| 97 | + | argTypes.get(0) == genericInner(generic("La/b/C;", genericType("T")), "d.E", null) |
86 | 98 | | } |
87 | 99 | | |
88 | 100 | | def "generic map: bad signature"() { |
| skipped 8 lines |