class C
{
	public void MethodRef (ref int a)
	{
		a += 10;
	}
	
	public void MethodOut (out ushort a)
	{
		a = 40;
	}
}

public class Test
{
	static void M (ref dynamic[] d, ref object[] o)
	{
	}
	
	public static int Main ()
	{
		dynamic d = new C ();
		int i = 1;
		
		d.MethodRef (ref i);
		if (i != 11)
			return 1;

		ushort u = 9;
		d.MethodOut (out u);
		if (u != 40)
			return 2;
		
		object[] o = null;
		M (ref o, ref o);
		
		return 0;
	}
}