[vala/0.50] parser: Minor semantic checks to improve error messages
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/0.50] parser: Minor semantic checks to improve error messages
- Date: Wed, 28 Apr 2021 07:07:53 +0000 (UTC)
commit cc65cabdc3c47a1a1a4ecc887642b594d7ffa4a6
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 832f1233e..d3f0875fe 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -2489,12 +2489,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:
@@ -2573,6 +2579,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:
@@ -2585,6 +2594,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:
@@ -2605,6 +2617,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]