4
4
An additional node InitFlipFlopSlotNode is created
5
5
focused_on_node : " org.truffleruby.language.methods.LiteralMethodDefinitionNode"
6
6
ruby : |
7
- def foo
8
- x = 42
7
+ def foo(x)
9
8
1 if (x) .. (x)
10
9
end
11
10
ast : |
@@ -15,14 +14,14 @@ ast: |
15
14
flags = 1
16
15
isDefSingleton = false
17
16
name = "foo"
18
- sharedMethodInfo = SharedMethodInfo(staticLexicalScope = :: Object, arity = Arity{preRequired = 0 , optional = 0, hasRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}, originName = foo, blockDepth = 0, parseName = Object#foo, notes = null, argumentDescriptors = [])
17
+ sharedMethodInfo = SharedMethodInfo(staticLexicalScope = :: Object, arity = Arity{preRequired = 1 , optional = 0, hasRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}, originName = foo, blockDepth = 0, parseName = Object#foo, notes = null, argumentDescriptors = [ArgumentDescriptor(name = x, type = req) ])
19
18
call targets:
20
19
RubyMethodRootNode
21
20
attributes:
22
- arityForCheck = Arity{preRequired = 0 , optional = 0, hasRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}
21
+ arityForCheck = Arity{preRequired = 1 , optional = 0, hasRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}
23
22
callTarget = Object#foo
24
23
checkArityProfile = false
25
- frameDescriptor = FrameDescriptor@...{#0:(self), #1:%$~_, #2:%method_block_arg , #3:x , #4:%flipflop_0}
24
+ frameDescriptor = FrameDescriptor@...{#0:(self), #1:%$~_, #2:x , #3:%method_block_arg , #4:%flipflop_0}
26
25
instrumentationBits = 0
27
26
keywordArguments = false
28
27
localReturnProfile = false
32
31
polyglotRef = org.truffleruby.RubyLanguage@...
33
32
retryProfile = false
34
33
returnID = org.truffleruby.language.control.ReturnID@...
35
- sharedMethodInfo = SharedMethodInfo(staticLexicalScope = :: Object, arity = Arity{preRequired = 0 , optional = 0, hasRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}, originName = foo, blockDepth = 0, parseName = Object#foo, notes = null, argumentDescriptors = [])
34
+ sharedMethodInfo = SharedMethodInfo(staticLexicalScope = :: Object, arity = Arity{preRequired = 1 , optional = 0, hasRest = false, postRequired = 0, keywordArguments = [], requiredKeywordArgumentsCount = 0, hasKeywordsRest = false}, originName = foo, blockDepth = 0, parseName = Object#foo, notes = null, argumentDescriptors = [ArgumentDescriptor(name = x, type = req) ])
36
35
split = HEURISTIC
37
36
children:
38
37
body =
@@ -59,20 +58,27 @@ ast: |
59
58
ReadSelfNode
60
59
attributes:
61
60
flags = 0
62
- SaveMethodBlockNode
63
- attributes:
64
- flags = 0
65
- slot = 2
66
61
WriteLocalVariableNode
67
62
attributes:
68
- flags = 1
69
- frameSlot = 3
63
+ flags = 0
64
+ frameSlot = 2
70
65
children:
71
66
valueNode =
72
- IntegerFixnumLiteralNode
67
+ ProfileArgumentNodeGen
73
68
attributes:
74
69
flags = 0
75
- value = 42
70
+ children:
71
+ childNode_ =
72
+ ReadPreArgumentNode
73
+ attributes:
74
+ flags = 0
75
+ index = 0
76
+ keywordArguments = false
77
+ missingArgumentBehavior = RUNTIME_ERROR
78
+ SaveMethodBlockNode
79
+ attributes:
80
+ flags = 0
81
+ slot = 3
76
82
IfNodeGen
77
83
attributes:
78
84
flags = 0
@@ -89,13 +95,13 @@ ast: |
89
95
ReadLocalVariableNode
90
96
attributes:
91
97
flags = 1
92
- frameSlot = 3
98
+ frameSlot = 2
93
99
type = FRAME_LOCAL
94
100
end =
95
101
ReadLocalVariableNode
96
102
attributes:
97
103
flags = 1
98
- frameSlot = 3
104
+ frameSlot = 2
99
105
type = FRAME_LOCAL
100
106
thenBody =
101
107
IntegerFixnumLiteralNode
0 commit comments