| 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); |
| } |
| } |