public class sun.tools.tree.ReturnStatement extends sun.tools.tree.Statement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.tree.ReturnStatement
super_class: sun.tools.tree.Statement
{
sun.tools.tree.Expression expr;
descriptor: Lsun/tools/tree/Expression;
flags: (0x0000)
public void <init>(long, sun.tools.tree.Expression);
descriptor: (JLsun/tools/tree/Expression;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
bipush 100
lload 1
invokespecial sun.tools.tree.Statement.<init>:(IJ)V
1: aload 0
aload 3
putfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
2: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/tree/ReturnStatement;
0 3 1 where J
0 3 3 expr Lsun/tools/tree/Expression;
MethodParameters:
Name Flags
where
expr
sun.tools.tree.Vset check(sun.tools.java.Environment, sun.tools.tree.Context, sun.tools.tree.Vset, java.util.Hashtable<java.lang.Object, java.lang.Object>);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;
flags: (0x0000)
Code:
stack=6, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokevirtual sun.tools.tree.ReturnStatement.checkLabel:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)V
1: aload 0
aload 1
aload 3
invokevirtual sun.tools.tree.ReturnStatement.reach:(Lsun/tools/java/Environment;Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
astore 3
2: aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
ifnull 4
3: aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
aload 1
aload 2
aload 3
aload 4
invokevirtual sun.tools.tree.Expression.checkValue:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;
astore 3
4: StackMap locals:
StackMap stack:
aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.MemberDefinition.isInitializer:()Z
ifeq 7
5: aload 1
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
ldc "return.inside.static.initializer"
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;)V
6: getstatic sun.tools.tree.ReturnStatement.DEAD_END:Lsun/tools/tree/Vset;
areturn
7: StackMap locals:
StackMap stack:
aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.MemberDefinition.getType:()Lsun/tools/java/Type;
invokevirtual sun.tools.java.Type.getReturnType:()Lsun/tools/java/Type;
bipush 11
invokevirtual sun.tools.java.Type.isType:(I)Z
ifeq 15
8: aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
ifnull 19
9: aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.MemberDefinition.isConstructor:()Z
ifeq 12
10: aload 1
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
ldc "return.with.value.constr"
aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;)V
11: goto 13
12: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
ldc "return.with.value"
aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;)V
13: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
14: goto 19
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
ifnonnull 18
16: aload 1
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
ldc "return.without.value"
aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;)V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 1
aload 2
aload 2
getfield sun.tools.tree.Context.field:Lsun/tools/java/MemberDefinition;
invokevirtual sun.tools.java.MemberDefinition.getType:()Lsun/tools/java/Type;
invokevirtual sun.tools.java.Type.getReturnType:()Lsun/tools/java/Type;
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
invokevirtual sun.tools.tree.ReturnStatement.convert:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/java/Type;Lsun/tools/tree/Expression;)Lsun/tools/tree/Expression;
putfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
19: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.tools.tree.Context.getReturnContext:()Lsun/tools/tree/CheckContext;
astore 5
start local 5 20: aload 5
ifnull 22
21: aload 5
aload 5
getfield sun.tools.tree.CheckContext.vsBreak:Lsun/tools/tree/Vset;
aload 3
invokevirtual sun.tools.tree.Vset.join:(Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
putfield sun.tools.tree.CheckContext.vsBreak:Lsun/tools/tree/Vset;
22: StackMap locals: sun.tools.tree.CheckContext
StackMap stack:
aload 2
invokevirtual sun.tools.tree.Context.getTryExitContext:()Lsun/tools/tree/CheckContext;
astore 6
start local 6 23: aload 6
ifnull 25
24: aload 6
aload 6
getfield sun.tools.tree.CheckContext.vsTryExit:Lsun/tools/tree/Vset;
aload 3
invokevirtual sun.tools.tree.Vset.join:(Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
putfield sun.tools.tree.CheckContext.vsTryExit:Lsun/tools/tree/Vset;
25: StackMap locals: sun.tools.tree.CheckContext
StackMap stack:
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
ifnull 46
26: aconst_null
astore 7
start local 7 27: aload 2
astore 8
start local 8 28: goto 40
29: StackMap locals: sun.tools.tree.Node sun.tools.tree.Context
StackMap stack:
aload 8
getfield sun.tools.tree.Context.node:Lsun/tools/tree/Node;
ifnonnull 31
30: goto 39
31: StackMap locals:
StackMap stack:
aload 8
getfield sun.tools.tree.Context.node:Lsun/tools/tree/Node;
getfield sun.tools.tree.Node.op:I
bipush 47
if_icmpne 33
32: goto 41
33: StackMap locals:
StackMap stack:
aload 8
getfield sun.tools.tree.Context.node:Lsun/tools/tree/Node;
getfield sun.tools.tree.Node.op:I
bipush 126
if_icmpne 36
34: aload 8
getfield sun.tools.tree.Context.node:Lsun/tools/tree/Node;
astore 7
35: goto 41
36: StackMap locals:
StackMap stack:
aload 8
getfield sun.tools.tree.Context.node:Lsun/tools/tree/Node;
getfield sun.tools.tree.Node.op:I
bipush 103
if_icmpne 39
37: aload 8
checkcast sun.tools.tree.CheckContext
getfield sun.tools.tree.CheckContext.vsContinue:Lsun/tools/tree/Vset;
ifnull 39
38: aload 8
getfield sun.tools.tree.Context.node:Lsun/tools/tree/Node;
astore 7
39: StackMap locals:
StackMap stack:
aload 8
getfield sun.tools.tree.Context.prev:Lsun/tools/tree/Context;
astore 8
StackMap locals:
StackMap stack:
40: aload 8
ifnonnull 29
end local 8 41: StackMap locals:
StackMap stack:
aload 7
ifnull 46
42: aload 7
getfield sun.tools.tree.Node.op:I
bipush 103
if_icmpne 45
43: aload 7
checkcast sun.tools.tree.FinallyStatement
iconst_1
putfield sun.tools.tree.FinallyStatement.needReturnSlot:Z
44: goto 46
45: StackMap locals:
StackMap stack:
aload 7
checkcast sun.tools.tree.SynchronizedStatement
iconst_1
putfield sun.tools.tree.SynchronizedStatement.needReturnSlot:Z
end local 7 46: StackMap locals:
StackMap stack:
getstatic sun.tools.tree.ReturnStatement.DEAD_END:Lsun/tools/tree/Vset;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lsun/tools/tree/ReturnStatement;
0 47 1 env Lsun/tools/java/Environment;
0 47 2 ctx Lsun/tools/tree/Context;
0 47 3 vset Lsun/tools/tree/Vset;
0 47 4 exp Ljava/util/Hashtable<Ljava/lang/Object;Ljava/lang/Object;>;
20 47 5 mctx Lsun/tools/tree/CheckContext;
23 47 6 exitctx Lsun/tools/tree/CheckContext;
27 46 7 outerFinallyNode Lsun/tools/tree/Node;
28 41 8 c Lsun/tools/tree/Context;
Signature: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable<Ljava/lang/Object;Ljava/lang/Object;>;)Lsun/tools/tree/Vset;
MethodParameters:
Name Flags
env
ctx
vset
exp
public sun.tools.tree.Statement inline(sun.tools.java.Environment, sun.tools.tree.Context);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Statement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
ifnull 2
1: aload 0
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
aload 1
aload 2
invokevirtual sun.tools.tree.Expression.inlineValue:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Expression;
putfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/tree/ReturnStatement;
0 3 1 env Lsun/tools/java/Environment;
0 3 2 ctx Lsun/tools/tree/Context;
MethodParameters:
Name Flags
env
ctx
public int costInline(int, sun.tools.java.Environment, sun.tools.tree.Context);
descriptor: (ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_1
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
ifnull 1
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
iload 1
aload 2
aload 3
invokevirtual sun.tools.tree.Expression.costInline:(ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
goto 2
StackMap locals:
StackMap stack: int
1: iconst_0
StackMap locals: sun.tools.tree.ReturnStatement int sun.tools.java.Environment sun.tools.tree.Context
StackMap stack: int int
2: iadd
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/tree/ReturnStatement;
0 3 1 thresh I
0 3 2 env Lsun/tools/java/Environment;
0 3 3 ctx Lsun/tools/tree/Context;
MethodParameters:
Name Flags
thresh
env
ctx
public sun.tools.tree.Statement copyInline(sun.tools.tree.Context, boolean);
descriptor: (Lsun/tools/tree/Context;Z)Lsun/tools/tree/Statement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
ifnull 1
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
aload 1
invokevirtual sun.tools.tree.Expression.copyInline:(Lsun/tools/tree/Context;)Lsun/tools/tree/Expression;
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: sun.tools.tree.Expression
2: astore 3
start local 3 3: iload 2
ifne 9
aload 3
ifnull 9
4: iconst_2
anewarray sun.tools.tree.Statement
dup
iconst_0
5: new sun.tools.tree.ExpressionStatement
dup
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
aload 3
invokespecial sun.tools.tree.ExpressionStatement.<init>:(JLsun/tools/tree/Expression;)V
aastore
dup
iconst_1
6: new sun.tools.tree.InlineReturnStatement
dup
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
aconst_null
invokespecial sun.tools.tree.InlineReturnStatement.<init>:(JLsun/tools/tree/Expression;)V
aastore
7: astore 4
start local 4 8: new sun.tools.tree.CompoundStatement
dup
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
aload 4
invokespecial sun.tools.tree.CompoundStatement.<init>:(J[Lsun/tools/tree/Statement;)V
areturn
end local 4 9: StackMap locals: sun.tools.tree.Expression
StackMap stack:
new sun.tools.tree.InlineReturnStatement
dup
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
aload 3
invokespecial sun.tools.tree.InlineReturnStatement.<init>:(JLsun/tools/tree/Expression;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/tools/tree/ReturnStatement;
0 10 1 ctx Lsun/tools/tree/Context;
0 10 2 valNeeded Z
3 10 3 e Lsun/tools/tree/Expression;
8 9 4 body [Lsun/tools/tree/Statement;
MethodParameters:
Name Flags
ctx
valNeeded
public void code(sun.tools.java.Environment, sun.tools.tree.Context, sun.tools.asm.Assembler);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
ifnonnull 4
1: aload 0
aload 1
aload 2
aload 3
aconst_null
aconst_null
invokevirtual sun.tools.tree.ReturnStatement.codeFinally:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;Lsun/tools/tree/Context;Lsun/tools/java/Type;)V
2: aload 3
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
sipush 177
invokevirtual sun.tools.asm.Assembler.add:(JI)V
3: goto 7
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
aload 1
aload 2
aload 3
invokevirtual sun.tools.tree.Expression.codeValue:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
5: aload 0
aload 1
aload 2
aload 3
aconst_null
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
getfield sun.tools.tree.Expression.type:Lsun/tools/java/Type;
invokevirtual sun.tools.tree.ReturnStatement.codeFinally:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;Lsun/tools/tree/Context;Lsun/tools/java/Type;)V
6: aload 3
aload 0
getfield sun.tools.tree.ReturnStatement.where:J
sipush 172
aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
getfield sun.tools.tree.Expression.type:Lsun/tools/java/Type;
invokevirtual sun.tools.java.Type.getTypeCodeOffset:()I
iadd
invokevirtual sun.tools.asm.Assembler.add:(JI)V
7: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/tools/tree/ReturnStatement;
0 8 1 env Lsun/tools/java/Environment;
0 8 2 ctx Lsun/tools/tree/Context;
0 8 3 asm Lsun/tools/asm/Assembler;
MethodParameters:
Name Flags
env
ctx
asm
public void print(java.io.PrintStream, int);
descriptor: (Ljava/io/PrintStream;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokespecial sun.tools.tree.Statement.print:(Ljava/io/PrintStream;I)V
1: aload 1
ldc "return"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
2: aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
ifnull 5
3: aload 1
ldc " "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
4: aload 0
getfield sun.tools.tree.ReturnStatement.expr:Lsun/tools/tree/Expression;
aload 1
invokevirtual sun.tools.tree.Expression.print:(Ljava/io/PrintStream;)V
5: StackMap locals:
StackMap stack:
aload 1
ldc ";"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/tools/tree/ReturnStatement;
0 7 1 out Ljava/io/PrintStream;
0 7 2 indent I
MethodParameters:
Name Flags
out
indent
}
SourceFile: "ReturnStatement.java"