[vala/staging] vala: Add delegate_target_type and delegate_target_destroy_type to SemanticAnalyzer
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/staging] vala: Add delegate_target_type and delegate_target_destroy_type to SemanticAnalyzer
- Date: Thu, 3 Oct 2019 13:22:49 +0000 (UTC)
commit ca7ab54681593a25b51c118e9aba40f44adf3f3d
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Wed Oct 2 19:07:17 2019 +0200
vala: Add delegate_target_type and delegate_target_destroy_type to SemanticAnalyzer
This is a plain copy from CCodeBaseModule.
vala/valasemanticanalyzer.vala | 15 +++++++++++++++
1 file changed, 15 insertions(+)
---
diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala
index 5ffef23e9..bb4f9b744 100644
--- a/vala/valasemanticanalyzer.vala
+++ b/vala/valasemanticanalyzer.vala
@@ -167,6 +167,10 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
public DataType list_type;
public DataType tuple_type;
public Class gsource_type;
+ public DataType delegate_target_type;
+ public DelegateType delegate_target_destroy_type;
+
+ Delegate destroy_notify;
// keep replaced alive to make sure they remain valid
// for the whole execution of CodeNode.accept
@@ -228,6 +232,17 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
regex_type = new ObjectType ((Class) root_symbol.scope.lookup ("GLib").scope.lookup
("Regex"));
gsource_type = (Class) glib_ns.scope.lookup ("Source");
+
+ delegate_target_type = new StructValueType ((Struct) glib_ns.scope.lookup
("pointer"));
+ destroy_notify = (Delegate) glib_ns.scope.lookup ("DestroyNotify");
+ delegate_target_destroy_type = new DelegateType (destroy_notify);
+ } else {
+ delegate_target_type = new PointerType (new VoidType ());
+ destroy_notify = new Delegate ("ValaDestroyNotify", new VoidType ());
+ destroy_notify.add_parameter (new Parameter ("data", new PointerType (new VoidType
())));
+ destroy_notify.has_target = false;
+ destroy_notify.owner = context.root.scope;
+ delegate_target_destroy_type = new DelegateType (destroy_notify);
}
current_symbol = root_symbol;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]