From bbfa90177a9a9c9b696c3981889dfa8a35ee9169 Mon Sep 17 00:00:00 2001 From: James Westman Date: Sat, 23 Jul 2022 20:35:28 -0500 Subject: [PATCH] WIP --- blueprintcompiler/gir.py | 2 -- blueprintcompiler/language/common.py | 5 ++++- blueprintcompiler/language/types.py | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/blueprintcompiler/gir.py b/blueprintcompiler/gir.py index 59d0236..29664de 100644 --- a/blueprintcompiler/gir.py +++ b/blueprintcompiler/gir.py @@ -320,8 +320,6 @@ class Interface(GirNode, GirType): def lookup_property(self, property: str): if prop := self.properties.get(property): return prop - elif self.is_partial: - return None else: raise CompileError( f"Interface {self.full_name} does not have a property called {property}", diff --git a/blueprintcompiler/language/common.py b/blueprintcompiler/language/common.py index 8996f68..645600d 100644 --- a/blueprintcompiler/language/common.py +++ b/blueprintcompiler/language/common.py @@ -17,6 +17,7 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later +import typing as T from .. import gir from ..ast_utils import AstNode, validate, docs @@ -51,11 +52,13 @@ class ScopeVariable: return self._gir_class @property - def glib_type_name(self) -> str: + def glib_type_name(self) -> T.Optional[str]: if self._glib_type_name is not None: return self._glib_type_name elif self.gir_class: return self.gir_class.glib_type_name + else: + return None def emit_xml(self, xml: XmlEmitter): if f := self._xml_func: diff --git a/blueprintcompiler/language/types.py b/blueprintcompiler/language/types.py index 0dadb95..08a6626 100644 --- a/blueprintcompiler/language/types.py +++ b/blueprintcompiler/language/types.py @@ -55,7 +55,7 @@ class TypeName(AstNode): return self.root.gir.namespaces.get(self.tokens["namespace"] or "Gtk") @cached_property - def gir_type(self) -> T.Optional[gir.Class]: + def gir_type(self) -> gir.GirClass: if self.tokens["ignore_gir"]: return gir.PartialClass(self.tokens["class_name"]) else: