Implicit Conversions

Implicit Conversions

Some conversions need no as. Explicit conversions are covered in Casting.

Widening

Integer and float widening is implicit; no as required:

var a: i32 = 42
var b: i64 = a       // implicit

as is permitted but redundant for widening conversions.

Upcasting (derived to base)

Derived-to-base pointer conversion is implicit; no as required:

class Animal { ... }
class Dog derives Animal { ... }

var dog = Dog("Rex", "Labrador")
var animal: *Animal = &dog   // implicit upcast

See also