// ── ForwardReferenceTests__RefData_Inherits_LaterOpenBase ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ForwardReferenceTests.cs::RefData_Inherits_LaterOpenBase topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test ref data Dog : Animal { extra: int init(e: int) : base(4) { self.extra = e } } open ref data Animal { legs: int init(l: int) { self.legs = l } } func go() -> int { let d = Dog(3) return d.legs + d.extra } // ── ILEmitterTests_Coverage_Data__RefData_Inheritance_Override ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Coverage_Data.cs::RefData_Inheritance_Override topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test abstract ref data Shape { init() { } abstract func area() -> int } ref data Square : Shape { side: int init(s: int) : base() { self.side = s } : func area() -> int { return self.side * self.side } } func go() -> int { let sq = Square(5) return sq.area() } // ── ILEmitterTests_Inheritance__Abstract_Func_On_Abstract_Class_Has_No_Body ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Abstract_Func_On_Abstract_Class_Has_No_Body topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test abstract ref data Shape { init() { } abstract func area() -> int } // ── ILEmitterTests_Inheritance__Abstract_Modifier_Emits_Abstract_Class ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Abstract_Modifier_Emits_Abstract_Class topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test abstract ref data Shape { init() { } } // ── ILEmitterTests_Inheritance__Added_Abstract_NotInstantiable_IsAbstractFlag ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Added_Abstract_NotInstantiable_IsAbstractFlag topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test abstract ref data Shape { init() { } abstract func area() -> int } // ── ILEmitterTests_Inheritance__Added_BaseCall_PassesArgs ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Added_BaseCall_PassesArgs topic: inheritance status: verified // verified behavior: Test.go(...) == "dog" namespace Test open ref data Animal { species: string init(s: string) { self.species = s } } ref data Dog : Animal { name: string init(n: string) : base("dog") { self.name = n } } func go() -> string { let d = Dog("rex") return d.species } // ── ILEmitterTests_Inheritance__Added_InheritedFieldResolves ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Added_InheritedFieldResolves topic: inheritance status: verified // verified behavior: Test.go(...) == 42 namespace Test open ref data Base { n: int init(n: int) { self.n = n } } ref data Derived : Base { init() : base(42) { } } func go() -> int { let d = Derived() return d.n } // ── ILEmitterTests_Inheritance__Added_VirtualNotOverridden_UsesBase ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Added_VirtualNotOverridden_UsesBase topic: inheritance status: verified // verified behavior: Test.go(...) == 4 namespace Test open ref data Animal { init() { } virtual func legs() -> int { return 4 } } ref data Snake : Animal { init() : base() { } } func go() -> int { // Snake doesn't override legs(): callvirt resolves to Animal's base body. var a: Animal = Snake() return a.legs() } // ── ILEmitterTests_Inheritance__Added_VirtualOverride_DispatchesDerived ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Added_VirtualOverride_DispatchesDerived topic: inheritance status: verified // verified behavior: Test.go(...) == 2 namespace Test open ref data Animal { init() { } virtual func sound() -> int { return 1 } } ref data Dog : Animal { init() : base() { } : func sound() -> int { return 2 } } func go() -> int { // Base-typed local holding a derived instance — callvirt dispatches to Dog. var a: Animal = Dog() return a.sound() } // ── ILEmitterTests_Inheritance__Base_Class_Field_Read_Through_Subclass ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Base_Class_Field_Read_Through_Subclass topic: inheritance status: verified // verified behavior: Test.test(...) == 42 namespace Test open ref data Base { pub n: int init(n: int) { self.n = n } } ref data Sub : Base { init(n: int) : base(n) {} } func test() -> int { let s = Sub(42) return s.n } // ── ILEmitterTests_Inheritance__Colon_Func_Fulfills_Abstract_Parent ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Colon_Func_Fulfills_Abstract_Parent topic: inheritance status: verified // verified behavior: Test.go(...) == 16 namespace Test abstract ref data Shape { init() { } abstract func area() -> int } ref data Square : Shape { side: int init(s: int) : base() { self.side = s } : func area() -> int { return self.side * self.side } } func go() -> int { let s = Square(4) return s.area() } // ── ILEmitterTests_Inheritance__Colon_Func_Override_Uses_ReuseSlot_VTable ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Colon_Func_Override_Uses_ReuseSlot_VTable topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test open ref data Animal { init() { } virtual func speak() -> string = "..." } ref data Dog : Animal { init() : base() { } : func speak() -> string = "woof" } // ── ILEmitterTests_Inheritance__Colon_Func_Overrides_Virtual_Parent ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Colon_Func_Overrides_Virtual_Parent topic: inheritance status: verified // verified behavior: Test.go(...) == "woof" namespace Test open ref data Animal { init() { } virtual func speak() -> string = "..." } ref data Dog : Animal { init() : base() { } : func speak() -> string = "woof" } func go() -> string { let d = Dog() return d.speak() } // ── ILEmitterTests_Inheritance__Colon_Func_With_No_Matching_Parent_Is_ES2122 ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Colon_Func_With_No_Matching_Parent_Is_ES2122 topic: inheritance status: verified // verified behavior: reports diagnostic ES2122 namespace Test open ref data Animal { init() { } } ref data Dog : Animal { init() : base() { } : func bark() -> string = "woof" } // ── ILEmitterTests_Inheritance__Colon_Func_Without_Body_In_Concrete_Subclass_Is_ES2121 ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Colon_Func_Without_Body_In_Concrete_Subclass_Is_ES2121 topic: inheritance status: verified // verified behavior: reports diagnostic ES2121 namespace Test abstract ref data Shape { init() { } abstract func area() -> int } ref data Square : Shape { init() : base() { } : func area() -> int } // ── ILEmitterTests_Inheritance__Init_Calls_BaseCtor_With_Args ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Init_Calls_BaseCtor_With_Args topic: inheritance status: verified // verified behavior: Test.go(...) == "dog" namespace Test open ref data Animal { species: string init(s: string) { self.species = s } } ref data Dog : Animal { init() : base("dog") { } } func go() -> string { let d = Dog() return d.species } // ── ILEmitterTests_Inheritance__Init_Mismatched_BaseArgs_Is_ES2128 ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Init_Mismatched_BaseArgs_Is_ES2128 topic: inheritance status: verified // verified behavior: reports diagnostic ES2128 namespace Test open ref data Animal { name: string init(n: string) { self.name = n } } ref data Dog : Animal { init() : base() { } } // ── ILEmitterTests_Inheritance__Open_Class_Carries_Open_Flag_In_CLR_Metadata ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Open_Class_Carries_Open_Flag_In_CLR_Metadata topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test open ref data Animal { init() {} } // ── ILEmitterTests_Inheritance__Open_Modifier_Emits_NotSealed_NotAbstract ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Open_Modifier_Emits_NotSealed_NotAbstract topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test open ref data Animal { init() { } } // ── ILEmitterTests_Inheritance__Plain_Func_Shadowing_Virtual_Parent_Is_ES2120 ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Plain_Func_Shadowing_Virtual_Parent_Is_ES2120 topic: inheritance status: verified // verified behavior: reports diagnostic ES2120 namespace Test open ref data Animal { init() { } virtual func speak() -> string = "..." } ref data Dog : Animal { init() : base() { } func speak() -> string = "woof" } // ── ILEmitterTests_Inheritance__Polymorphic_Dispatch_Through_Base_Class_Reference ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Polymorphic_Dispatch_Through_Base_Class_Reference topic: inheritance status: verified // verified behavior: Test.goDog(...) == "woof" namespace Test open ref data Animal { init() { } virtual func speak() -> string = "..." } ref data Cat : Animal { init() : base() { } : func speak() -> string = "meow" } ref data Dog : Animal { init() : base() { } : func speak() -> string = "woof" } func goCat() -> string { let c = Cat() return c.speak() } func goDog() -> string { let d = Dog() return d.speak() } // ── ILEmitterTests_Inheritance__Sealed_Default_Carries_Sealed_Flag_In_CLR_Metadata ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Sealed_Default_Carries_Sealed_Flag_In_CLR_Metadata topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test ref data Locked { init() {} } // ── ILEmitterTests_Inheritance__Sealed_Default_Emits_Sealed_Class ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Sealed_Default_Emits_Sealed_Class topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test ref data Dog { init() { } } // ── ILEmitterTests_Inheritance__Sealed_Explicit_Emits_Sealed_Class ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Sealed_Explicit_Emits_Sealed_Class topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test sealed ref data Cat { init() { } } // ── ILEmitterTests_Inheritance__Subclass_Of_Abstract_Class_Has_Base_Type_Set ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Subclass_Of_Abstract_Class_Has_Base_Type_Set topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test abstract ref data Shape { init() { } } ref data Square : Shape { init() : base() { } } // ── ILEmitterTests_Inheritance__Subclass_Of_Open_Class_Has_Base_Type_Set ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Subclass_Of_Open_Class_Has_Base_Type_Set topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test open ref data Animal { init() { } } ref data Dog : Animal { init() : base() { } } // ── ILEmitterTests_Inheritance__Subclass_Of_Sealed_Implicitly_Fails_Cleanly ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Subclass_Of_Sealed_Implicitly_Fails_Cleanly topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test ref data Cat { init() { } } ref data Bob : Cat { init() { } } // ── ILEmitterTests_Inheritance__Subclass_With_Interface_AND_Base_Class_Reports_Both ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Subclass_With_Interface_AND_Base_Class_Reports_Both topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test interface INamed { func name() -> string } open ref data Animal { init() { } } ref data Dog : Animal, INamed { init() : base() { } func name() -> string = "dog" } // ── ILEmitterTests_Inheritance__Two_Level_PassThrough_To_Fulfill ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Two_Level_PassThrough_To_Fulfill topic: inheritance status: verified // verified behavior: Test.run(...) == 42 namespace Test abstract ref data Top { init() { } abstract func go() -> int } abstract ref data Middle : Top { init() : base() { } } ref data Leaf : Middle { init() : base() { } : func go() -> int = 42 } func run() -> int { return Leaf().go() } // ── ILEmitterTests_Inheritance__Virtual_Func_On_Open_Class_Emits_Virtual_NewSlot ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Virtual_Func_On_Open_Class_Emits_Virtual_NewSlot topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test open ref data Animal { init() { } virtual func speak() -> string = "" } // ── ILEmitterTests_Inheritance__Virtual_Func_On_Sealed_Class_Reports_ES2126 ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Virtual_Func_On_Sealed_Class_Reports_ES2126 topic: inheritance status: verified // verified behavior: reports diagnostic ES2126 namespace Test ref data Cat { init() { } virtual func meow() -> string = "meow" } // ── ILEmitterTests_Inheritance__Virtual_Method_Calls_Another_Virtual_On_Same_Type ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Virtual_Method_Calls_Another_Virtual_On_Same_Type topic: inheritance status: verified // compiles cleanly (no auto-run claim was extracted) namespace Test open ref data Computer { init() {} virtual func step() -> int = 1 virtual func run() -> int = self.step() + self.step() } ref data Faster : Computer { init() : base() {} : func step() -> int = 10 } func test() -> int { let f = Faster() return f.run() } // ── ILEmitterTests3__Abstract_Method_Implemented_By_Subclass ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests3.cs::Abstract_Method_Implemented_By_Subclass topic: inheritance status: verified // verified behavior: Test.test(...) == 25 namespace Test abstract ref data Shape { init() {} abstract func area() -> int } ref data Square : Shape { pub side: int init(s: int) : base() { self.side = s } : func area() -> int = self.side * self.side } func test() -> int { let sq = Square(5) return sq.area() } // ── ILEmitterTests3__Inheritance_Base_Constructor_With_Args ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests3.cs::Inheritance_Base_Constructor_With_Args topic: inheritance status: verified // verified behavior: Test.test(...) == "alice" namespace Test open ref data Named { pub name: string init(name: string) { self.name = name } } ref data Greet : Named { init(name: string) : base(name) {} } func test() -> string { let g = Greet("alice") return g.name } // ── ILEmitterTests3__Inheritance_Three_Level_Chain_Pin ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests3.cs::Inheritance_Three_Level_Chain_Pin topic: inheritance status: verified // verified behavior: Test.test(...) == "dog" namespace Test open ref data Animal { pub kind: string init(k: string) { self.kind = k } } open ref data Mammal : Animal { init(k: string) : base(k) {} } ref data Dog : Mammal { init() : base("dog") {} } func test() -> string { let d = Dog() return d.kind } // ── ILEmitterTests3__RefData_Virtual_Method_Overridden_Multiple_Levels_Pin ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests3.cs::RefData_Virtual_Method_Overridden_Multiple_Levels_Pin topic: inheritance status: verified // verified behavior: Test.test(...) == "ABC" namespace Test open ref data A { init() {} virtual func name() -> string = "A" } open ref data B : A { init() : base() {} : func name() -> string = "B" } ref data C : B { init() : base() {} : func name() -> string = "C" } func test() -> string { let a = A() let b = B() let c = C() return a.name() + b.name() + c.name() } // ── ILEmitterTests3__Virtual_Method_Default_Used_When_Not_Overridden ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests3.cs::Virtual_Method_Default_Used_When_Not_Overridden topic: inheritance status: verified // verified behavior: Test.test(...) == "noise" namespace Test open ref data Animal { init() {} virtual func sound() -> string = "noise" } func test() -> string { let a = Animal() return a.sound() } // ── ILEmitterTests3__Virtual_Method_Override_Wins ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests3.cs::Virtual_Method_Override_Wins topic: inheritance status: verified // verified behavior: Test.test(...) == "woof" namespace Test open ref data Animal { init() {} virtual func sound() -> string = "noise" } ref data Dog : Animal { init() : base() {} : func sound() -> string = "woof" } func test() -> string { let d = Dog() return d.sound() } // ── ILEmitterTests_Inheritance__Abstract_Func_Outside_Abstract_Class_Reports_ES2125 ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Abstract_Func_Outside_Abstract_Class_Reports_ES2125 topic: inheritance status: unverified // verified behavior: reports diagnostic ES2125 namespace Test open ref data Animal { init() { } abstract func voice() -> string } // ── ILEmitterTests_Inheritance__Colon_Marker_Without_Inheritance_Header_Is_ES2124 ── // E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript). // provenance: ILEmitterTests_Inheritance.cs::Colon_Marker_Without_Inheritance_Header_Is_ES2124 topic: inheritance status: unverified // verified behavior: reports diagnostic ES2124 namespace Test ref data Solo { init() { } : func go() -> int = 1 }