modeltype Ecore uses ecore('http://www.eclipse.org/emf/2002/Ecore');

transformation bug413131;

property t5 : Tuple(obj : Tuple(name : String, size : Integer), size : Integer) = Tuple {obj = Tuple{name = null, size = 10}, size = null};
property t6 = Tuple {obj = Tuple{name = "it's a string", size = 10}, size = 10};

main() {
	var t0: Tuple(name : String, size : Integer);
	t0 = Tuple { name = null, size = 10};

	var t1: Tuple(name : String, size : Integer) = Tuple { name = null, size = 10};

	var t2: Tuple(obj : EClassifier, size : Integer);	
	t2 := Tuple {size = 3, obj = object EClass{}};

	var t3: Tuple(name : EClassifier, size : Integer);	
	t3 := Tuple {size = null, name = object EClass{}};

	var t4: Tuple(obj : Tuple(name : String, size : Integer), size : Integer);	
	t4 := Tuple {obj = Tuple{name = null, size = 10}, size = null};
	t4 := Tuple {obj = null, size = 5};
	
	t5 := Tuple {obj = Tuple{name = null, size = 10}, size = null};
	t6 := Tuple {obj = Tuple{name = null, size = 10}, size = null};
}
