vala r1604 - in trunk: . vala



Author: jamiemcc
Date: Tue Jun 17 00:57:12 2008
New Revision: 1604
URL: http://svn.gnome.org/viewvc/vala?rev=1604&view=rev

Log:
2008-06-16  Jamie McCracken  <jamiemcc gnome org>

	* vala/valagenieparser.vala:

	Report error when using invalid modifiers for methods and fields,



Modified:
   trunk/ChangeLog
   trunk/vala/valagenieparser.vala

Modified: trunk/vala/valagenieparser.vala
==============================================================================
--- trunk/vala/valagenieparser.vala	(original)
+++ trunk/vala/valagenieparser.vala	Tue Jun 17 00:57:12 2008
@@ -2313,11 +2313,15 @@
 			ns.add_delegate ((Delegate) sym);
 		} else if (sym is Method) {
 			var method = (Method) sym;
-			method.binding = MemberBinding.STATIC;
+			if (method.binding == MemberBinding.INSTANCE) {
+				method.binding = MemberBinding.STATIC;
+			}
 			ns.add_method (method);
 		} else if (sym is Field) {
 			var field = (Field) sym;
-			field.binding = MemberBinding.STATIC;
+			if (field.binding == MemberBinding.INSTANCE) {
+				field.binding = MemberBinding.STATIC;
+			}
 			ns.add_field (field);
 		} else if (sym is Constant) {
 			ns.add_constant ((Constant) sym);
@@ -2525,6 +2529,10 @@
 
 		var f = new Field (id, type, null, get_src_com (begin));
 
+		if (ModifierFlags.ABSTRACT in flags || ModifierFlags.VIRTUAL in flags || ModifierFlags.OVERRIDE in flags) {
+			Report.error (f.source_reference, "abstract, virtual, and override modifiers are not applicable to fields");
+                }
+
 		if (ModifierFlags.PRIVATE in flags) {
 			f.access = SymbolAccessibility.PRIVATE;
 		} else {
@@ -2537,7 +2545,6 @@
 			f.initializer = parse_expression ();
 		}
 
-
 		if (ModifierFlags.STATIC in flags) {
 			f.binding = MemberBinding.STATIC;
 		} else if (ModifierFlags.CLASS in flags) {



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