From 022aebf55b671aefcf83139ebe3b0ed6fa6b3d1b Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Fri, 29 May 2026 10:41:54 +0200 Subject: [PATCH] fix(parser): prevent duplicate properties in complex types --- midas/parser/midas.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/midas/parser/midas.py b/midas/parser/midas.py index db0efdf..5a9d649 100644 --- a/midas/parser/midas.py +++ b/midas/parser/midas.py @@ -319,8 +319,13 @@ class MidasParser(Parser): """ self.consume(TokenType.LEFT_BRACE, "Expected '{' to start type body") properties: list[PropertyStmt] = [] + names: set[str] = set() while not self.check(TokenType.RIGHT_BRACE) and not self.is_at_end(): - properties.append(self.property_stmt()) + prop: PropertyStmt = self.property_stmt() + if prop.name.lexeme in names: + raise self.error(prop.name, "Duplicate property") + names.add(prop.name.lexeme) + properties.append(prop) self.consume(TokenType.RIGHT_BRACE, "Unclosed type body") return properties