From fd763afd9c1b41e9f398bc30ec0b303edc74177a Mon Sep 17 00:00:00 2001 From: Evan Typanski Date: Wed, 30 Oct 2024 15:51:18 -0400 Subject: [PATCH] Avoid linting for `$$` with `&convert` Attributes on a field with `&convert` make `$$` mean something different. $$ refers to before the conversion, `self.field` revers to after. --- rule-tests/use-dd-test.yml | 1 + rules/use-dd.yml | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/rule-tests/use-dd-test.yml b/rule-tests/use-dd-test.yml index 97b0cea..d8ab7b6 100644 --- a/rule-tests/use-dd-test.yml +++ b/rule-tests/use-dd-test.yml @@ -3,6 +3,7 @@ valid: - "type X = unit { x: uint8 { $$; } };" - "type X = unit { x: uint8 { other.y; } };" - "type X = unit { y: uint8 { self.x; } };" + - "type X = unit { x: uint8 &convert=$$ + 5 { self.x; $$; } };" invalid: - "type X = unit { x: uint8 { self.x; } };" - "type X = unit { x: uint8 { if (True) self.x; } };" diff --git a/rules/use-dd.yml b/rules/use-dd.yml index 38b8059..10a6e94 100644 --- a/rules/use-dd.yml +++ b/rules/use-dd.yml @@ -25,6 +25,13 @@ rule: field: "name" kind: "ident" pattern: "$F" + not: + inside: + kind: "field_decl" + stopBy: "end" + has: + kind: "attribute" + regex: "&convert" fix: "$$"