#[non_exhaustive]pub enum Unsupported {
Show 16 variants
Coroutine,
Class,
Record,
Reference,
RefPlace,
VarVar,
Intrinsic,
Asm,
BigInt,
ForeignUnit,
TypeDirected,
ExternValue,
ExternArgs,
Conversion,
Cast,
Pattern,
}Expand description
A HIR form this release does not compile, named precisely.
Every variant says what is missing and where it is planned, so a front end can report “not supported yet” instead of guessing. Forms that need a missing LSB feature (not a later bcgen-lang release) say so.
§Examples
use bcgen_lang::Unsupported;
assert!(Unsupported::Coroutine.to_string().contains("0.5"));Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Coroutine
yield, await, spawn, or a function or closure declared ASYNC or
YIELD (coroutines arrive in 0.5, with bvm-lang’s coroutine group).
Class
Classes, impls, interfaces with bodies, mixins, and receiver parameters (0.5).
Record
A record or struct literal or pattern naming a declared type, a sum variant, or a constructor pattern (typed data arrives with classes in 0.5; anonymous records compile, as maps).
Reference
*e, &e, a ref pattern, or binding by reference: the dynamic
profile has no reference values.
RefPlace
A reference assignment or by-reference argument whose place is not a local variable (an array element, a property, a global alias). LSB has no reference to a map slot; only whole variables can be shared.
VarVar
$$name: LSB frames have no names at run time.
Intrinsic
An atomic, volatile, or fence intrinsic, or a named intrinsic this release does not know.
Asm
Inline assembly (native backends only).
BigInt
A big-integer literal (no big-integer runtime yet).
ForeignUnit
A definition of another compilation unit: LSB modules link to host functions only, so cross-unit calls wait for loader-lang.
TypeDirected
A path resolved only by type (Vec::new), or naming a primitive,
type parameter, or const parameter as a value (typed paths, 0.5).
ExternValue
A host function used as a value rather than called: LSB imports have a fixed arity, which a first-class value does not know.
ExternArgs
Spread, named, or by-reference arguments to a host function, or a bodyless function with defaults: imports take exactly their parameters.
Conversion
A conversion at a width dynamic values do not have (zext/sext to
fewer than 64 bits, 32-bit bit casts).
Cast
A cast to a type the dynamic profile cannot test or produce.
Pattern
A range pattern bound or type test this release cannot evaluate.