@@ -49,8 +49,8 @@ Models as Data. These strings are often referred to as access paths.
49
49
50
50
Access paths consist of zero or more components separated by dots (` . ` ). The
51
51
permitted components differ for input and output paths. The meaning of each
52
- component is defined relative to the implicit context of the component, which
53
- itself is defined by the preceding access path. For example,
52
+ component is defined relative to the implicit context of the component as
53
+ defined by the preceding access path. For example,
54
54
55
55
```
56
56
Argument[0].Element[1].ReturnValue
@@ -93,10 +93,10 @@ A keyword argument to the call with the given name. For example,
93
93
The block argument passed to the call, if any.
94
94
95
95
#### ` any `
96
- Any argument to the call. TODO: does this include self and block args?
96
+ Any argument to the call, except ` self ` or ` block ` arguments.
97
97
98
98
#### ` any-named `
99
- TODO
99
+ Any keyword argument to the call.
100
100
101
101
#### ` hash-splat `
102
102
The special "hash splat" argument/parameter, which is written as ` **args ` .
@@ -139,7 +139,20 @@ typically something like `foo` for the string key `"foo"` and `:foo` for the
139
139
symbol ` :foo ` .
140
140
141
141
## ` Field `
142
- TODO
142
+ A "field" in the object. In practice this refers to a value stored in an
143
+ instance variable in the object. The only valid specifier is ` @<string> ` , where
144
+ ` <string> ` is the name of the instance variable. Currently we assume that a
145
+ setter call such as ` x.foo = bar ` means there is a field ` foo ` in ` x ` , backed by
146
+ an instance variable ` @foo ` .
147
+
148
+ For example, the access path ` Argument[0].Field[@foo] ` would refer to the value
149
+ ` "foo" ` in
150
+
151
+ ``` rb
152
+ x = SomeClass .new
153
+ x.foo = " foo"
154
+ some_call(x)
155
+ ```
143
156
144
157
## ` WithElement `
145
158
This component restricts the set of elements that are included in the preceding
0 commit comments