Change template syntax

Templates now use a TypeName instead of an identifier, which makes it
clearer that it's an extern symbol (or that it's a Gtk.ListItem).
This commit is contained in:
James Westman 2023-05-09 19:42:33 -05:00
parent aebf8be278
commit 04509e4b2e
31 changed files with 175 additions and 55 deletions

View file

@ -49,7 +49,7 @@ class Object(AstNode):
return self.tokens["id"]
@property
def class_name(self) -> T.Optional[ClassName]:
def class_name(self) -> ClassName:
return self.children[ClassName][0]
@property
@ -78,7 +78,9 @@ class Object(AstNode):
@validate("id")
def object_id_not_reserved(self):
if self.id in RESERVED_IDS:
from .gtkbuilder_template import Template
if not isinstance(self, Template) and self.id in RESERVED_IDS:
raise CompileWarning(f"{self.id} may be a confusing object ID")