// No array static/dynamic initializers should be produced in this test

using System;
using System.Reflection;

class T
{
	const byte c = 0;
	const string s = null;

	long [,,] a1 = new long [,,] {{{10,0}, {0,0}}, {{0,0}, {0,c}}};	
	byte [] a2 = new byte [] { 2 - 2, 0, c };
	decimal [] a3 = new decimal [] { 2m - 2m, 0m, c };
	string[,] a4 = new string[,] { {s, null}, { s, s }};
	T[] a5 = new T[] { null, default (T) };

	public static int Main ()
	{
		ConstructorInfo mi = typeof(T).GetConstructors ()[0];
		MethodBody mb = mi.GetMethodBody();
		
		if (mb.GetILAsByteArray ().Length > 90) {
			Console.WriteLine("Optimization failed");
			return 3;
		}
			
		return 0;
	}
}