summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Bruno <lucabru@src.gnome.org>2014-02-01 10:22:41 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2019-03-11 13:52:38 +0100
commit9355eb0c209b5111d551959a034189032a582aac (patch)
treeca31aaab662f0171d8f38822ea1d9e05475c0fdb
parentc62bfa6b6d25b323b7dff2faa0709df33a51de72 (diff)
downloadvala-9355eb0c209b5111d551959a034189032a582aac.tar.gz
Visit all nodes for transformation, not only the source ones
-rw-r--r--codegen/valaccodetransformer.vala6
-rw-r--r--vala/valacodetransformer.vala9
2 files changed, 8 insertions, 7 deletions
diff --git a/codegen/valaccodetransformer.vala b/codegen/valaccodetransformer.vala
index 8e28b1f97..b63c20211 100644
--- a/codegen/valaccodetransformer.vala
+++ b/codegen/valaccodetransformer.vala
@@ -70,6 +70,10 @@ public class Vala.CCodeTransformer : CodeTransformer {
}
public override void visit_method (Method m) {
+ if (m.body == null) {
+ return;
+ }
+
m.accept_children (this);
}
@@ -421,7 +425,7 @@ public class Vala.CCodeTransformer : CodeTransformer {
Expression replacement = null;
var old_parent_node = expr.parent_node;
- var target_type = expr.target_type != null ? expr.target_type.copy () : null;
+ var target_type = copy_type (expr.target_type);
push_builder (new CodeBuilder (context, parent_statement, expr.source_reference));
if (context.analyzer.get_current_non_local_symbol (expr) is Block
diff --git a/vala/valacodetransformer.vala b/vala/valacodetransformer.vala
index 86e3a2d01..3e9f6ffae 100644
--- a/vala/valacodetransformer.vala
+++ b/vala/valacodetransformer.vala
@@ -54,12 +54,9 @@ public class Vala.CodeTransformer : CodeVisitor {
/* we're only interested in non-pkg source files */
var source_files = context.get_source_files ();
foreach (SourceFile file in source_files) {
- if (file.file_type == SourceFileType.SOURCE ||
- (context.header_filename != null && file.file_type == SourceFileType.FAST)) {
- /* clear wrapper cache for every file */
- wrapper_cache = new HashMap<string, CodeNode> (str_hash, str_equal);
- file.accept (this);
- }
+ /* clear wrapper cache for every file */
+ wrapper_cache = new HashMap<string, CodeNode> (str_hash, str_equal);
+ file.accept (this);
}
}