3 // Transition from global 'self' to local 'this'
5 [[alias("self")]] entity __self;
7 // Step 1: auto oldself
9 #define SELFPARAM() noref entity this = __self
10 #define setself(s) (__self = s)
14 // Step 2: check SELFPARAM() is present for functions that use self
16 #define SELFPARAM() [[alias("__self")]] noref entity this = __self
17 #define setself(s) (__self = s)
23 #define SELFPARAM() noref const entity this = __self
24 entity setself(entity e) { return self = e; }
25 entity getself() { return self; }
26 #define self getself()
29 // Step 4: enable when possible
30 // TODO: Remove SELFPARAM in favor of a parameter
32 #define SELFPARAM() noref const entity this = __self