embedding — examples
← all topics · 20 examples · page 1 of 1 · raw source ↓
Runs `test` → 99
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::Added_OuterFieldShadowsPromoted topic: embedding status: verified
// verified behavior: Test.test(...) == 99
namespace Test
data Base { tag: int }
data Wrap { Base, tag: int }
func test() -> int {
let w = Wrap { Base: Base { tag: 1 }, tag: 99 }
return w.tag
}Runs `test` → 42
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::Added_PointerEmbed_NewConstruction topic: embedding status: verified
// verified behavior: Test.test(...) == 42
namespace Test
data Vec2 { var x: int, var y: int }
data Entity { *Vec2, name: string }
func test() -> int {
var e = new Entity { Vec2: new Vec2 { x: 10, y: 20 }, name: "p" }
e.x += 12
return e.x + e.y
}Runs `test` → 7
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::Added_ValueEmbed_DirectAccessByName topic: embedding status: verified
// verified behavior: Test.test(...) == 7
namespace Test
data Vec2 { var x: int, var y: int }
data Transform { Vec2, var scale: int }
func test() -> int {
let t = Transform { x: 7, y: 0, scale: 1 }
let v = t.Vec2
return v.x
}Runs `test` → 35
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::Added_ValueEmbed_PromotedField topic: embedding status: verified
// verified behavior: Test.test(...) == 35
namespace Test
data Vec2 { var x: int, var y: int }
data Transform { Vec2, var scale: int }
func test() -> int {
var t = Transform { x: 10, y: 20, scale: 2 }
t.x += 5
return t.x + t.y // 15 + 20
}Runs `test` → 25
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::Added_ValueEmbed_PromotedMethod topic: embedding status: verified
// verified behavior: Test.test(...) == 25
namespace Test
data Vec2 { var x: int, var y: int }
func magnitude(v: Vec2) -> int = v.x * v.x + v.y * v.y
data Transform { Vec2, var scale: int }
func test() -> int {
let t = Transform { x: 3, y: 4, scale: 1 }
return t.magnitude()
}Runs `test` → 42
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::Embedded_Field_Read_Returns_Inner_Value topic: embedding status: verified
// verified behavior: Test.test(...) == 42
namespace Test
data Inner { value: int }
data Outer {
pub Inner
}
func test() -> int {
let o = Outer { Inner: Inner { value: 42 } }
return o.value
}Compiles
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::PointerEmbed_FieldExists topic: embedding status: verified
// compiles cleanly (no auto-run claim was extracted)
namespace Test
data Base {
var x: int
var y: int
}
data WidgetRef {
*Base
label: string
}
func getLabel() -> string {
var w = WidgetRef { Base: new Base { x: 10, y: 20 }, label: "hello" }
return w.label
}Runs `isNotNil` → true
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::PointerEmbed_NilCheck topic: embedding status: verified
// verified behavior: Test.isNotNil(...) == true
namespace Test
data Inner {
var x: int
}
data Outer {
*Inner
tag: int
}
func isNil() -> bool {
var o = Outer { tag: 1 }
return o.Inner == nil
}
func isNotNil() -> bool {
var o = Outer { Inner: new Inner { x: 42 }, tag: 1 }
return o.Inner != nil
}Runs `getX` → 42
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::PointerEmbed_PromotedFieldRead topic: embedding status: verified
// verified behavior: Test.getX(...) == 42
namespace Test
data Base {
var x: int
var y: int
}
data WidgetRef {
*Base
label: string
}
func getX() -> int {
var w = WidgetRef { Base: new Base { x: 42, y: 7 }, label: "test" }
return w.x
}Runs `mutateX` → 99
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::PointerEmbed_PromotedFieldWrite topic: embedding status: verified
// verified behavior: Test.mutateX(...) == 99
namespace Test
data Base {
var x: int
var y: int
}
data WidgetRef {
*Base
label: string
}
func mutateX() -> int {
var w = WidgetRef { Base: new Base { x: 10, y: 20 }, label: "test" }
w.x = 99
return w.x
}Runs `addToX` → 15
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_CompoundAssignment topic: embedding status: verified
// verified behavior: Test.addToX(...) == 15
namespace Test
data Base {
var x: int
}
data Wrapper {
Base
tag: int
}
func addToX() -> int {
var w = Wrapper { x: 10, tag: 1 }
w.x += 5
return w.x
}Runs `getBaseY` → 20
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_DirectFieldAccess topic: embedding status: verified
// verified behavior: Test.getBaseY(...) == 20
namespace Test
data Base {
var x: int
var y: int
}
data Widget {
Base
label: string
}
func getBaseY() -> int {
var w = Widget { x: 10, y: 20, label: "test" }
return w.Base.y
}Compiles
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_FieldExists topic: embedding status: verified
// compiles cleanly (no auto-run claim was extracted)
namespace Test
data Base {
var x: int
var y: int
}
data Widget {
Base
label: string
}
func getLabel() -> string {
var w = Widget { x: 10, y: 20, label: "hello" }
return w.label
}Runs `getX` → 42
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_InRefData topic: embedding status: verified
// verified behavior: Test.getX(...) == 42
namespace Test
data Vec2 {
var x: int
var y: int
}
ref data Entity {
Vec2
name: string
}
func getX() -> int {
var e = Entity()
e.x = 42
return e.x
}Runs `checkPlayer` → 88
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_MixedFields topic: embedding status: verified
// verified behavior: Test.checkPlayer(...) == 88
namespace Test
data Position {
var x: int
var y: int
}
data Player {
Position
name: string
var health: int
}
func checkPlayer() -> int {
var p = Player { x: 5, y: 10, name: "hero", health: 100 }
p.x += 3
p.health -= 20
return p.x + p.health
}Runs `moveAndGet` → 15
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_MutatingMethodCall topic: embedding status: verified
// verified behavior: Test.moveAndGet(...) == 15
namespace Test
data Vec2 {
var x: int
var y: int
func addTo(dx: int, dy: int) {
self.x += dx
self.y += dy
}
}
data Entity {
Vec2
name: string
}
func moveAndGet() -> int {
var e = Entity { x: 10, y: 20, name: "test" }
e.addTo(5, 3)
return e.x
}Runs `getQuad` → 20
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_OuterCallsPromoted topic: embedding status: verified
// verified behavior: Test.getQuad(...) == 20
namespace Test
data Base {
var value: int
func doubled() -> int {
return self.value * 2
}
}
data Wrapper {
Base
func quadrupled() -> int {
return self.doubled() * 2
}
}
func getQuad() -> int {
var w = Wrapper { value: 5 }
return w.quadrupled()
}Runs `getY` → 7
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_PromotedFieldRead topic: embedding status: verified
// verified behavior: Test.getY(...) == 7
namespace Test
data Base {
var x: int
var y: int
}
data Widget {
Base
label: string
}
func getX() -> int {
var w = Widget { x: 42, y: 7, label: "test" }
return w.x
}
func getY() -> int {
var w = Widget { x: 42, y: 7, label: "test" }
return w.y
}Runs `mutateX` → 99
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_PromotedFieldWrite topic: embedding status: verified
// verified behavior: Test.mutateX(...) == 99
namespace Test
data Base {
var x: int
var y: int
}
data Widget {
Base
label: string
}
func mutateX() -> int {
var w = Widget { x: 10, y: 20, label: "test" }
w.x = 99
return w.x
}Runs `getSum` → 30
// E# — a verified example from the E# language corpus (CLR language; .es, not ECMAScript).
// provenance: ILEmitterTests_Embedding.cs::ValueEmbed_PromotedMethodCall topic: embedding status: verified
// verified behavior: Test.getSum(...) == 30
namespace Test
data Vec2 {
var x: int
var y: int
func sum() -> int {
return self.x + self.y
}
}
data Entity {
Vec2
name: string
}
func getSum() -> int {
var e = Entity { x: 10, y: 20, name: "test" }
return e.sum()
}