test92

Undocumented in source.
immutable
auto test92 = q{--- test92 // struct methods struct Struct { i32 member; void set42() { this.member += 42; member = 42; } void set(i32 par) { member = par; this.member = par; } void set2() { set42(); // pass this } void set3() { set42; // pass this } void set4() { this.set42; // explicit this } void set5() { this.set42(); // explicit this } void set6() { set(42); // pass this } } i32 testMethod1() { Struct s; s.set42(); // take address return s.member; } i32 testMethod2(i32 val) { Struct s; s.set(val); // take address return s.member; } i32 testMethod3() { Struct s; s.set42; // take address return s.member; } i32 testMethod4() { Struct s; Struct* sptr = &s; sptr.set42; // call method on pointer return sptr.member; } i32 testMethod5() { Struct[1] s; s[0].set42; // call method on index expr s[0].set42(); s[0].set(42); return s[0].member; } i32 testMethodToMethod2() { Struct s = Struct(10); // reset stack value for future tests s.set2; return s.member; } i32 testMethodToMethod3() { Struct s = Struct(10); // reset stack value for future tests s.set3; return s.member; } i32 testMethodToMethod4() { Struct s = Struct(10); // reset stack value for future tests s.set4; return s.member; } i32 testMethodToMethod5() { Struct s = Struct(10); // reset stack value for future tests s.set5; return s.member; } i32 testMethodToMethod6() { Struct s = Struct(10); // reset stack value for future tests s.set6; return s.member; } };

Meta