smali/examples/BracketedMemberNames/BracketedMemberNames.smali
Ben Gruver 569c014562 Allow arbitrary bracketed member names
Dalvik allows accesses and definitions of fields with angle brackets

It "allows" definitions of bracketed method names, but it will reject any
attempt to actually call them (except <init>, of course).
2013-09-14 13:35:04 -07:00

40 lines
1021 B
Smali

.class public LBracketedMemberNames;
.super Ljava/lang/Object;
.field public static <test_field>:Ljava/lang/String; = "Hello World!"
.method public static main([Ljava/lang/String;)V
.registers 2
invoke-static {}, LBracketedMemberNames;->test_method()V
return-void
.end method
.method public static test_method()V
.registers 2
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
sget-object v1, LBracketedMemberNames;-><test_field>:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
return-void
.end method
.method public static <test_method>()V
.registers 2
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
sget-object v1, LBracketedMemberNames;-><test_field>:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
# this will cause a verification error
invoke-static {}, LBracketedMemberNames;-><test_method>()V
return-void
.end method