blob: 18a61941dba6e2a4accb424aa4cea0abb33269a8 [file] [log] [blame]
package org.jf.smalidea.findUsages;
import com.intellij.usages.impl.rules.UsageType;
public class ClassUsageTypeTest extends UsageTypeTest {
public ClassUsageTypeTest() {
super(new SmaliUsageTypeProvider());
}
public void testClassUsageTypes() throws Exception {
doTest("blah.smali", "" +
".class public Lbl<ref:1>ah;\n" +
".super Lbl<ref:2>ah;\n" +
".implements Lbl<ref:3>ah;\n" +
"\n" +
".annotation build Lbl<ref:22>ah;\n" +
" value = .subannotation Lbl<ref:23>ah;\n" +
" value = Lbl<ref:24>ah;\n" +
" .end subannotation\n" +
".end annotation\n" +
"\n" +
".field static public blah:Lbl<ref:4>ah; = Lbl<ref:25>ah;\n" +
"\n" +
".method public blah(Lbl<ref:5>ah;)Lbl<ref:6>ah;\n" +
" .registers 2\n" +
" .local p0, \"this\":Lbl<ref:7>ah;\n" +
"\n" +
" :start\n" +
" iget-object v0, v0, Lbl<ref:8>ah;->blah:Lbl<ref:9>ah;\n" +
"\n" +
" invoke-virtual {v0}, Lbl<ref:10>ah;->blah(Lbl<ref:11>ah;)Lbl<ref:12>ah;\n" +
"\n" +
" instance-of v0, v0, Lbl<ref:13>ah;\n" +
" check-cast v0, Lbl<ref:14>ah;\n" +
" new-instance v0, Lbl<ref:15>ah;\n" +
" const-class v0, Lbl<ref:16>ah;\n" +
" throw-verification-error generic-error, Lbl<ref:17>ah;\n" +
"\n" +
" filled-new-array {v0, v0, v0, v0, v0}, Lbl<ref:18>ah;\n" +
" new-array v0, v0, Lbl<ref:19>ah;\n" +
" filled-new-array/range {v0}, Lbl<ref:20>ah;\n" +
" :end\n" +
"\n" +
" .catch Lbl<ref:21>ah; { :start .. :end } :handler\n" +
" :handler\n" +
" return-void\n" +
".end method",
1, SmaliUsageTypeProvider.CLASS_DECLARATION,
2, UsageType.CLASS_EXTENDS_IMPLEMENTS_LIST,
3, UsageType.CLASS_EXTENDS_IMPLEMENTS_LIST,
4, UsageType.CLASS_FIELD_DECLARATION,
5, UsageType.CLASS_METHOD_PARAMETER_DECLARATION,
6, UsageType.CLASS_METHOD_RETURN_TYPE,
7, UsageType.CLASS_LOCAL_VAR_DECLARATION,
8, SmaliUsageTypeProvider.FIELD_DECLARING_TYPE_REFERENCE,
9, SmaliUsageTypeProvider.FIELD_TYPE_REFERENCE,
10, SmaliUsageTypeProvider.METHOD_DECLARING_TYPE_REFERENCE,
11, SmaliUsageTypeProvider.METHOD_PARAM_REFERENCE,
12, SmaliUsageTypeProvider.METHOD_RETURN_TYPE_REFERENCE,
13, UsageType.CLASS_INSTANCE_OF,
14, UsageType.CLASS_CAST_TO,
15, UsageType.CLASS_NEW_OPERATOR,
16, UsageType.CLASS_CLASS_OBJECT_ACCESS,
17, SmaliUsageTypeProvider.VERIFICATION_ERROR,
18, UsageType.CLASS_NEW_ARRAY,
19, UsageType.CLASS_NEW_ARRAY,
20, UsageType.CLASS_NEW_ARRAY,
21, UsageType.CLASS_CATCH_CLAUSE_PARAMETER_DECLARATION,
22, UsageType.ANNOTATION,
23, UsageType.ANNOTATION,
24, SmaliUsageTypeProvider.LITERAL,
25, SmaliUsageTypeProvider.LITERAL);
}
}