mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
completions: Add types in typeof<> and as<>
This commit is contained in:
parent
d5b2ee3589
commit
e9206809d6
10 changed files with 124 additions and 39 deletions
|
@ -27,11 +27,11 @@ class TypeName(AstNode):
|
|||
[
|
||||
UseIdent("namespace"),
|
||||
".",
|
||||
UseIdent("class_name"),
|
||||
UseIdent("class_name").expected("class name"),
|
||||
],
|
||||
[
|
||||
AnyOf("$", [".", UseLiteral("old_extern", True)]),
|
||||
UseIdent("class_name"),
|
||||
UseIdent("class_name").expected("class name"),
|
||||
UseLiteral("extern", True),
|
||||
],
|
||||
UseIdent("class_name"),
|
||||
|
@ -47,7 +47,11 @@ class TypeName(AstNode):
|
|||
|
||||
@validate("class_name")
|
||||
def type_exists(self):
|
||||
if not self.tokens["extern"] and self.gir_ns is not None:
|
||||
if (
|
||||
not self.tokens["extern"]
|
||||
and self.gir_ns is not None
|
||||
and self.tokens["class_name"] is not None
|
||||
):
|
||||
self.root.gir.validate_type(
|
||||
self.tokens["class_name"], self.tokens["namespace"]
|
||||
)
|
||||
|
@ -182,3 +186,14 @@ class TemplateClassName(ClassName):
|
|||
self.root.gir.validate_type(
|
||||
self.tokens["class_name"], self.tokens["namespace"]
|
||||
)
|
||||
|
||||
|
||||
class BracketedTypeName(AstNode):
|
||||
grammar = Statement("<", to_parse_node(TypeName).expected("type name"), end=">")
|
||||
|
||||
@property
|
||||
def type_name(self) -> T.Optional[TypeName]:
|
||||
if len(self.children[TypeName]) == 0:
|
||||
return None
|
||||
|
||||
return self.children[TypeName][0]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue