[vala] girparser: improve support for changing symbol types away from instance
- From: Evan Nemerson <evann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] girparser: improve support for changing symbol types away from instance
- Date: Wed, 28 May 2014 20:22:23 +0000 (UTC)
commit b9a36a992a5a9474b0b27aec834837981b6edf38
Author: Evan Nemerson <evan nemerson com>
Date: Sun May 25 19:40:55 2014 -0700
girparser: improve support for changing symbol types away from instance
This makes it possible to move a symbol from an instance method of one
type to a constructor of another, or to a static method.
vala/valagirparser.vala | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index d60dffb..f35f1ec 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -2246,7 +2246,11 @@ public class Vala.GirParser : CodeVisitor {
closure_idx = -1;
destroy_idx = -1;
- start_element ("parameter");
+ string element_type = reader.name;
+ if (current_token != MarkupTokenType.START_ELEMENT || (element_type != "parameter" &&
element_type != "instance-parameter")) {
+ Report.error (get_current_src (), "expected start element of `parameter' or
`instance-parameter'");
+ }
+ start_element (element_type);
string name = reader.get_attribute ("name");
if (name == null) {
name = default_name;
@@ -2337,7 +2341,7 @@ public class Vala.GirParser : CodeVisitor {
param.initializer = null;
}
}
- end_element ("parameter");
+ end_element (element_type);
return param;
}
@@ -2972,7 +2976,8 @@ public class Vala.GirParser : CodeVisitor {
next ();
while (current_token == MarkupTokenType.START_ELEMENT) {
- if (reader.name == "instance-parameter") {
+ if (reader.name == "instance-parameter" &&
+ !(symbol_type == "function" || symbol_type == "constructor")) {
skip_element ();
continue;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]