diff options
author | Jeremy Philippe <jeremy.philippe@gmail.com> | 2019-12-21 20:55:53 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-01-06 09:29:36 +0100 |
commit | 1384dd0bac5a93721e1ca11efed51fba4cb050ed (patch) | |
tree | d5f622e449f56958a617d007e79286d82efb3b78 /vala/valagenieparser.vala | |
parent | 4e78d7713e80ce0b3044979e848b78229a1b6061 (diff) | |
download | vala-1384dd0bac5a93721e1ca11efed51fba4cb050ed.tar.gz |
genie: Fix parser's inner state when a struct is declared after a class
If the struct is declared after a class and has a default creation
method, the parser will raise a "missing return type in method ..."
error.
The cause of the bug is that the global 'class_name' variable is not
updated when the parser encounters a struct, so the previous value
is used, and if a class has been parsed before, this value will be the
name of the class instead of the struct.
Diffstat (limited to 'vala/valagenieparser.vala')
-rw-r--r-- | vala/valagenieparser.vala | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala index 668c40428..6e6e9cd5c 100644 --- a/vala/valagenieparser.vala +++ b/vala/valagenieparser.vala @@ -3290,6 +3290,8 @@ public class Vala.Genie.Parser : CodeVisitor { expect (TokenType.EOL); + class_name = st.name; + parse_declarations (st); Symbol result = st; |