Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 55259b2d4a60a4ea974fc3579e087ead8fef7c2a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import bug416584lib;

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

transformation T2(in inModel : Ecore, out outModel : Ecore) 
	extends T1
	extends T3
	extends libT
{
	property prop2 = prop;
	main() {
		var v1 = new T3();
		var v2 = new T1(inModel, outModel);
		var v4 = libProp; 
		var v5 = prop; 
		var v6: Tuple(obj : EClassifier, size : Integer);
		log("=== T2 ===");	
		assert fatal (lib_helper() = "lib_helper 123");
		log(lib_helper());
		assert fatal (T3_helper() = "T3_helper 123");
		log(T3_helper());
		new T1(inModel, outModel).transform();
	}
}

transformation T1(in inModel : Ecore, out outModel : Ecore) 
	access T3
	access libT
{
	configuration property prop : String;
	
	main() {
		inModel.rootObjects()![EPackage].deepclone();
		var v1 = new T3();
		var v2 = prop;
		var v3: Tuple(obj : EClassifier, size : Integer);
		log("=== T1 ===");	
		assert fatal (prop = "prop");
		log(prop);
		new T3().transform();
	}
}
 

transformation T3() 
	extends libT
{
	configuration property prop2 : String;
	property prop3 = 123;
	main() {
		var v1 = new T3();
		var v3 = libProp; // libT.libProp
		var v4: Tuple(obj : EClassifier, size : Integer);	
		log("=== T3 ===");	
		assert fatal (prop2 = "prop2");
		log(prop2);	
		assert fatal (prop3.repr() = "123");
		log(prop3.repr());	
		assert fatal (lib_helper() = "lib_helper 123");
	}
	
	helper T3_helper() : String {
		return 'T3_helper ' + libProp.repr();
	}
}

Back to the top