fix warnings on invalid code
authorJuerg Billeter <j@bitron.ch>
Wed, 29 Aug 2007 10:08:43 +0000 (10:08 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Wed, 29 Aug 2007 10:08:43 +0000 (10:08 +0000)
2007-08-29  Juerg Billeter  <j@bitron.ch>

* vala/valasymbolresolver.vala: fix warnings on invalid code

svn path=/trunk/; revision=525

ChangeLog
vala/valasymbolresolver.vala

index 36d59ff..fea92ce 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2007-08-29  Jürg Billeter  <j@bitron.ch>
 
+       * vala/valasymbolresolver.vala: fix warnings on invalid code
+
+2007-08-29  Jürg Billeter  <j@bitron.ch>
+
        * gobject/valadbusbindingprovider.vala: fix warnings on invalid code
 
 2007-08-28  Jürg Billeter  <j@bitron.ch>
index 598ee01..f726f42 100644 (file)
@@ -216,8 +216,11 @@ public class Vala.SymbolResolver : CodeVisitor {
                        }
                        if (sym is TypeParameter) {
                                type.type_parameter = (TypeParameter) sym;
-                       } else {
+                       } else if (sym is DataType) {
                                type.data_type = (DataType) sym;
+                       } else {
+                               Report.error (type.source_reference, "`%s' is not a type".printf (sym.get_full_name ()));
+                               return;
                        }
                } else {
                        var ns_symbol = root_symbol.scope.lookup (type.namespace_name);
@@ -232,7 +235,12 @@ public class Vala.SymbolResolver : CodeVisitor {
                                Report.error (type.source_reference, "The type name `%s' does not exist in the namespace `%s'".printf (type.type_name, type.namespace_name));
                                return;
                        }
-                       type.data_type = (DataType) sym;
+                       if (sym is DataType) {
+                               type.data_type = (DataType) sym;
+                       } else {
+                               Report.error (type.source_reference, "`%s' is not a type".printf (sym.get_full_name ()));
+                               return;
+                       }
                }
 
                if (type.pointer_level > 0) {