[vala/0.48] parser: Minor semantic checks to improve error messages
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/0.48] parser: Minor semantic checks to improve error messages
- Date: Wed, 28 Apr 2021 07:46:15 +0000 (UTC)
commit 33aa1e14a25585ff4aa5009db7d97f1f255db115
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Thu Apr 15 16:49:14 2021 +0200
parser: Minor semantic checks to improve error messages
vala/valaparser.vala | 15 +++++++++++++++
1 file changed, 15 insertions(+)
---
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index e64591c73..3b69759d3 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -2384,12 +2384,18 @@ public class Vala.Parser : CodeVisitor {
case TokenType.CONSTRUCT:
if (context.profile == Profile.GOBJECT) {
rollback (begin);
+ if (!(parent is TypeSymbol)) {
+ throw new ParseError.SYNTAX ("unexpected `construct' declaration");
+ }
parse_constructor_declaration (parent, attrs);
return;
}
break;
case TokenType.TILDE:
rollback (begin);
+ if (!(parent is TypeSymbol)) {
+ throw new ParseError.SYNTAX ("unexpected `destructor' declaration");
+ }
parse_destructor_declaration (parent, attrs);
return;
case TokenType.OPEN_BRACE:
@@ -2468,6 +2474,9 @@ public class Vala.Parser : CodeVisitor {
break;
case TokenType.OPEN_PARENS:
rollback (begin);
+ if (!(parent is TypeSymbol)) {
+ throw new ParseError.SYNTAX ("unexpected `constructor' declaration");
+ }
parse_creation_method_declaration (parent, attrs);
return;
default:
@@ -2480,6 +2489,9 @@ public class Vala.Parser : CodeVisitor {
parse_delegate_declaration (parent, attrs);
return;
case TokenType.SIGNAL:
+ if (!(parent is ObjectTypeSymbol)) {
+ throw new ParseError.SYNTAX ("unexpected `signal'
declaration");
+ }
parse_signal_declaration (parent, attrs);
return;
default:
@@ -2500,6 +2512,9 @@ public class Vala.Parser : CodeVisitor {
case TokenType.OPEN_BRACE:
case TokenType.THROWS:
rollback (begin);
+ if (!(parent is TypeSymbol)) {
+ throw new ParseError.SYNTAX ("unexpected `property'
declaration");
+ }
parse_property_declaration (parent, attrs);
return;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]