[vala] Fix generated code for stack-allocated arrays



commit 2dda5192f775543bbd49494934f4d5c54cd45af1
Author: Jürg Billeter <j bitron ch>
Date:   Fri Oct 2 23:46:29 2009 +0200

    Fix generated code for stack-allocated arrays
    
    Fixes bug 595751.

 tests/Makefile.am                |    1 +
 tests/basic-types/bug595751.vala |    3 +++
 vala/valasymbolresolver.vala     |    7 ++++++-
 3 files changed, 10 insertions(+), 1 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index eb19c7f..d18a993 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -20,6 +20,7 @@ TESTS = \
 	basic-types/strings.vala \
 	basic-types/arrays.vala \
 	basic-types/pointers.vala \
+	basic-types/bug595751.vala \
 	basic-types/bug596637.vala \
 	basic-types/bug596785.vala \
 	namespaces.vala \
diff --git a/tests/basic-types/bug595751.vala b/tests/basic-types/bug595751.vala
new file mode 100644
index 0000000..c57d4e9
--- /dev/null
+++ b/tests/basic-types/bug595751.vala
@@ -0,0 +1,3 @@
+void main () {
+        int a[2];
+}
diff --git a/vala/valasymbolresolver.vala b/vala/valasymbolresolver.vala
index 213bd53..09a9c19 100644
--- a/vala/valasymbolresolver.vala
+++ b/vala/valasymbolresolver.vala
@@ -350,7 +350,12 @@ public class Vala.SymbolResolver : CodeVisitor {
 	public override void visit_local_variable (LocalVariable local) {
 		local.accept_children (this);
 		if (local.variable_type is ReferenceType) {
-			local.variable_type.nullable = true;
+			var array_type = local.variable_type as ArrayType;
+			if (array_type != null && array_type.fixed_length) {
+				// local fixed length arrays are not nullable
+			} else {
+				local.variable_type.nullable = true;
+			}
 		}
 	}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]