diff --git a/vala/valaunaryexpression.vala b/vala/valaunaryexpression.vala
index d2d38dd..6bdde58 100644
--- a/vala/valaunaryexpression.vala
+++ b/vala/valaunaryexpression.vala
@@ -215,7 +215,7 @@ public class Vala.UnaryExpression : Expression {
 			return true;
 		} else if (operator == UnaryOperator.REF || operator == UnaryOperator.OUT) {
 			var ea = inner as ElementAccess;
-			if (inner.symbol_reference is Field || inner.symbol_reference is FormalParameter || inner.symbol_reference is LocalVariable ||
+			if (inner.symbol_reference is Field || inner.symbol_reference is FormalParameter || inner.symbol_reference is LocalVariable || inner.symbol_reference is Constant || inner.symbol_reference is Method ||
 			    (ea != null && ea.container.value_type is ArrayType)) {
 				// ref and out can only be used with fields, parameters, local variables, and array element access
 				lvalue = true;
