diff --git a/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift b/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift index 129bccf..3513353 100644 --- a/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift +++ b/Sources/BinaryParsingMacros/MagicNumberStringMacro.swift @@ -51,9 +51,16 @@ public struct MagicNumberStringMacro: ExpressionMacro { return "" } + var parsingExpr = "input" + if let parsingArg = node.arguments.first(where: { + $0.label?.text == "parsing" + }) { + parsingExpr = parsingArg.expression.description + } + return """ _loadAndCheckDirectBytes(\ - parsing: &input, \ + parsing: \(raw: parsingExpr), \ bigEndianValue: 0x\(raw: String(integerValue, radix: 16)) as \(raw: integerType)) """ } diff --git a/Tests/BinaryParsingMacrosTests/ParserMacroTests.swift b/Tests/BinaryParsingMacrosTests/ParserMacroTests.swift index 482943d..0f072d9 100644 --- a/Tests/BinaryParsingMacrosTests/ParserMacroTests.swift +++ b/Tests/BinaryParsingMacrosTests/ParserMacroTests.swift @@ -20,9 +20,9 @@ struct StringifyMacroSwiftTestingTests { @Test func magicNumberString() { assertMacro { - #"try #magicNumber("qoif", parsing: &input)"# + #"try #magicNumber("qoif", parsing: &data)"# } expansion: { - "try _loadAndCheckDirectBytes(parsing: &input, bigEndianValue: 0x716f6966 as UInt32)" + "try _loadAndCheckDirectBytes(parsing: &data, bigEndianValue: 0x716f6966 as UInt32)" } } }