Skip to content

Commit b44ec5b

Browse files
committed
Fix member access range
1 parent 7162159 commit b44ec5b

File tree

4 files changed

+22
-21
lines changed

4 files changed

+22
-21
lines changed

layercparse/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111
from .macro import *
1212
from .macroexpand import *
1313

14-
LAYERCPARSE_VERSION = "0.4.0"
14+
LAYERCPARSE_VERSION = "0.4.1"

layercparse/access.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ def member_access_chains_fast(txt: str, offset_in_parent: int = 0) -> Iterable[A
115115
offset = offset_in_parent + prev_match.start()
116116

117117
yield AccessChain(prev_token.value,
118-
list(zip(match.allcaptures()[1], match.allspans()[1])), # type: ignore[misc] # Tuple index out of range
118+
list(zip(match.allcaptures()[1], # type: ignore[misc] # Tuple index out of range
119+
(rangeShift(r, offset_in_parent) for r in match.allspans()[1]))), # type: ignore[misc] # Tuple index out of range
119120
(offset, offset_in_parent + match.end()))
120121

121122
if prev_token.getKind() == "(":

layercparse/scan_sources_tool.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ def on_macro_expand(arg: AccessMacroExpand) -> list[Access] | None:
218218
def on_global_name(arg: AccessGlobalName) -> list[Access] | None:
219219
return [Access(AccessType.CALL,
220220
LocationId.fromDefn(arg.src, arg.src.offset + arg.range[0],
221-
*lines_at_range(arg.src.details.body.value, arg.range)),
221+
*lines_at_range(arg.src.details.body.value, arg.range)), # type: ignore[union-attr] # arg.src.details.body.value
222222
LocationId.fromDefn(_globals.names[arg.dst]))]
223223

224224
# def on_field_chain(arg: AccessFieldChain) -> list[Access]:
@@ -229,7 +229,7 @@ def on_field_access(arg: AccessField) -> list[Access] | None:
229229
return None
230230
return [Access(AccessType.FIELD,
231231
LocationId.fromDefn(arg.src, arg.src.offset + arg.range[0],
232-
*lines_at_range(arg.src.details.body.value, arg.range)),
232+
*lines_at_range(arg.src.details.body.value, arg.range)), # type: ignore[union-attr] # arg.src.details.body.value
233233
LocationId.fromField(_globals.types[arg.typename], _globals.fields[arg.typename][arg.field]))]
234234

235235
def match_str_or_regex(filter: str, value: str) -> bool:
@@ -470,7 +470,7 @@ def commandline() -> argparse.Namespace:
470470
mod: module
471471
file: module, file
472472
defn: module, file, definition's line, name, kind
473-
full: module, file, exact location's line, name, kind, code snippet (experimental)
473+
full: module, file, exact location's line, name, kind, code snippet
474474
""".strip())
475475
group.add_argument("-d", "--detail", choices=["mod", "file", "defn", "full"],
476476
help="Specify the level of detail for access report")

test/data/record.c.access

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ data/record.c:30:26: [module1] 'func': debug3: Field access: S1->x
106106
data/record.c:30:11: [module1] 'func': debug2: Access chain: ((S2*)s2)->s
107107
data/record.c:30:11: [module1] 'func': debug3: Access type: S2
108108
data/record.c:30:11: [module1] 'func': debug3: Field access chain: ((S2*)s2)->s
109-
data/record.c:26:5: [module1] 'func': debug3: Field access: S2->s
109+
data/record.c:30:22: [module1] 'func': debug3: Field access: S2->s
110110
data/record.c:31:11: [module1] 'func': debug2: Access chain: ((S2*)s2 + 1)->s
111111
data/record.c:31:11: [module1] 'func': debug3: Access type: S2
112112
data/record.c:31:11: [module1] 'func': debug3: Field access chain: ((S2*)s2 + 1)->s
@@ -118,7 +118,7 @@ data/record.c:31:30: [module1] 'func': debug3: Field access: S1->x
118118
data/record.c:31:11: [module1] 'func': debug2: Access chain: ((S2*)s2 + 1)->s
119119
data/record.c:31:11: [module1] 'func': debug3: Access type: S2
120120
data/record.c:31:11: [module1] 'func': debug3: Field access chain: ((S2*)s2 + 1)->s
121-
data/record.c:27:1: [module1] 'func': debug3: Field access: S2->s
121+
data/record.c:31:26: [module1] 'func': debug3: Field access: S2->s
122122
data/record.c:32:11: [module1] 'func': debug2: Access chain: ((S2*)s2 + 1)->s
123123
data/record.c:32:11: [module1] 'func': debug3: Access type: S2
124124
data/record.c:32:11: [module1] 'func': debug3: Field access chain: ((S2*)s2 + 1)->s
@@ -130,7 +130,7 @@ data/record.c:32:30: [module1] 'func': debug3: Field access: S1->x
130130
data/record.c:32:11: [module1] 'func': debug2: Access chain: ((S2*)s2 + 1)->s
131131
data/record.c:32:11: [module1] 'func': debug3: Access type: S2
132132
data/record.c:32:11: [module1] 'func': debug3: Field access chain: ((S2*)s2 + 1)->s
133-
data/record.c:27:1: [module1] 'func': debug3: Field access: S2->s
133+
data/record.c:32:26: [module1] 'func': debug3: Field access: S2->s
134134
data/record.c:33:11: [module1] 'func': debug2: Access chain: ((S2*)s2[10])->s
135135
data/record.c:33:11: [module1] 'func': debug3: Access type: S2
136136
data/record.c:33:11: [module1] 'func': debug3: Field access chain: ((S2*)s2[10])->s
@@ -142,7 +142,7 @@ data/record.c:33:30: [module1] 'func': debug3: Field access: S1->x
142142
data/record.c:33:11: [module1] 'func': debug2: Access chain: ((S2*)s2[10])->s
143143
data/record.c:33:11: [module1] 'func': debug3: Access type: S2
144144
data/record.c:33:11: [module1] 'func': debug3: Field access chain: ((S2*)s2[10])->s
145-
data/record.c:27:1: [module1] 'func': debug3: Field access: S2->s
145+
data/record.c:33:26: [module1] 'func': debug3: Field access: S2->s
146146
data/record.c:34:17: [module1] 'func': debug2: Access chain: ((S2*)s2[10])->s
147147
data/record.c:34:17: [module1] 'func': debug3: Access type: S2
148148
data/record.c:34:17: [module1] 'func': debug3: Field access chain: ((S2*)s2[10])->s
@@ -154,23 +154,23 @@ data/record.c:34:36: [module1] 'func': debug3: Field access: S1->x
154154
data/record.c:34:17: [module1] 'func': debug2: Access chain: ((S2*)s2[10])->s
155155
data/record.c:34:17: [module1] 'func': debug3: Access type: S2
156156
data/record.c:34:17: [module1] 'func': debug3: Field access chain: ((S2*)s2[10])->s
157-
data/record.c:27:1: [module1] 'func': debug3: Field access: S2->s
157+
data/record.c:34:32: [module1] 'func': debug3: Field access: S2->s
158158
data/record.c:34:5: [module1] 'func': debug2: Access chain: ((S2*)((S1*)((S2*)s2[10])->s)->x)->s
159159
data/record.c:34:5: [module1] 'func': debug3: Access type: S2
160160
data/record.c:34:5: [module1] 'func': debug3: Field access chain: ((S2*)((S1*)((S2*)s2[10])->s)->x)->s
161161
data/record.c:34:40: [module1] 'func': debug3: Field access: S2->s
162162
data/record.c:34:17: [module1] 'func': debug2: Access chain: ((S2*)s2[10])->s
163163
data/record.c:34:17: [module1] 'func': debug3: Access type: S2
164164
data/record.c:34:17: [module1] 'func': debug3: Field access chain: ((S2*)s2[10])->s
165-
data/record.c:27:7: [module1] 'func': debug3: Field access: S2->s
165+
data/record.c:34:32: [module1] 'func': debug3: Field access: S2->s
166166
data/record.c:34:11: [module1] 'func': debug2: Access chain: ((S1*)((S2*)s2[10])->s)->x
167167
data/record.c:34:11: [module1] 'func': debug3: Access type: S1
168168
data/record.c:34:11: [module1] 'func': debug3: Field access chain: ((S1*)((S2*)s2[10])->s)->x
169-
data/record.c:28:1: [module1] 'func': debug3: Field access: S1->x
169+
data/record.c:34:36: [module1] 'func': debug3: Field access: S1->x
170170
data/record.c:34:17: [module1] 'func': debug2: Access chain: ((S2*)s2[10])->s
171171
data/record.c:34:17: [module1] 'func': debug3: Access type: S2
172172
data/record.c:34:17: [module1] 'func': debug3: Field access chain: ((S2*)s2[10])->s
173-
data/record.c:27:1: [module1] 'func': debug3: Field access: S2->s
173+
data/record.c:34:32: [module1] 'func': debug3: Field access: S2->s
174174
data/record.c:35:9: [module1] 'func': debug2: Access chain: s2->s.y
175175
data/record.c:35:9: [module1] 'func': debug3: Access type: S2
176176
data/record.c:35:9: [module1] 'func': debug3: Field access chain: s2->s.y
@@ -183,8 +183,8 @@ data/record.c:35:24: [module1] 'func': debug3: Field access: S0->z
183183
data/record.c:35:9: [module1] 'func': debug2: Access chain: s2->s.y
184184
data/record.c:35:9: [module1] 'func': debug3: Access type: S2
185185
data/record.c:35:9: [module1] 'func': debug3: Field access chain: s2->s.y
186-
data/record.c:25:7: [module1] 'func': debug3: Field access: S2->s
187-
data/record.c:26:1: [module1] 'func': debug3: Field access: S1->y
186+
data/record.c:35:13: [module1] 'func': debug3: Field access: S2->s
187+
data/record.c:35:18: [module1] 'func': debug3: Field access: S1->y
188188
data/record.c:36:5: [module1] 'func': debug2: Access chain: xxx->s2
189189
data/record.c:36:5: [module1] 'func': warning: Can't deduce type of expression xxx->s2 {type_deduce_expr}
190190
data/record.c:37:5: [module1] 'func': debug2: Access chain: xxx->s2
@@ -241,18 +241,18 @@ data/record.c:48:27: [module1] 'func': debug3: Field access: S0->z
241241
data/record.c:48:17: [module1] 'func': debug2: Access chain: s2->qwe1
242242
data/record.c:48:17: [module1] 'func': debug3: Access type: S2
243243
data/record.c:48:17: [module1] 'func': debug3: Field access chain: s2->qwe1
244-
data/record.c:25:4: [module1] 'func': debug3: Field access: S2->qwe1
245-
data/record.c:25:4: [module1] 'func': warning: Can't deduce type of member 'qwe1' in s2->qwe1 {type_deduce_member}
244+
data/record.c:48:21: [module1] 'func': debug3: Field access: S2->qwe1
245+
data/record.c:48:21: [module1] 'func': warning: Can't deduce type of member 'qwe1' in s2->qwe1 {type_deduce_member}
246246
data/record.c:48:29: [module1] 'func': debug2: Access chain: s2->qwe2
247247
data/record.c:48:29: [module1] 'func': debug3: Access type: S2
248248
data/record.c:48:29: [module1] 'func': debug3: Field access chain: s2->qwe2
249-
data/record.c:25:4: [module1] 'func': debug3: Field access: S2->qwe2
250-
data/record.c:25:4: [module1] 'func': warning: Can't deduce type of member 'qwe2' in s2->qwe2 {type_deduce_member}
249+
data/record.c:48:33: [module1] 'func': debug3: Field access: S2->qwe2
250+
data/record.c:48:33: [module1] 'func': warning: Can't deduce type of member 'qwe2' in s2->qwe2 {type_deduce_member}
251251
data/record.c:48:39: [module1] 'func': debug2: Access chain: s2->qwe3
252252
data/record.c:48:39: [module1] 'func': debug3: Access type: S2
253253
data/record.c:48:39: [module1] 'func': debug3: Field access chain: s2->qwe3
254-
data/record.c:26:3: [module1] 'func': debug3: Field access: S2->qwe3
255-
data/record.c:26:3: [module1] 'func': warning: Can't deduce type of member 'qwe3' in s2->qwe3 {type_deduce_member}
254+
data/record.c:48:43: [module1] 'func': debug3: Field access: S2->qwe3
255+
data/record.c:48:43: [module1] 'func': warning: Can't deduce type of member 'qwe3' in s2->qwe3 {type_deduce_member}
256256
data/record.c:49:5: [module1] 'func': debug2: Access chain: ((S2*)s2 ? (S1*)NULL : (S0*)NULL)->x
257257
data/record.c:49:5: [module1] 'func': debug3: Access type: S1
258258
data/record.c:49:5: [module1] 'func': debug3: Field access chain: ((S2*)s2 ? (S1*)NULL : (S0*)NULL)->x

0 commit comments

Comments
 (0)