// Core operators and kinds. #[lang="const"] trait Const { // Empty. } #[lang="copy"] trait Copy { // Empty. } #[lang="send"] trait Send { // Empty. } #[lang="owned"] trait Owned { // Empty. } #[cfg(stage0)] #[lang="add"] trait Add { pure fn add(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="add"] trait Add { pure fn add(rhs: &RHS) -> Result; } #[cfg(stage0)] #[lang="sub"] trait Sub { pure fn sub(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="sub"] trait Sub { pure fn sub(rhs: &RHS) -> Result; } #[cfg(stage0)] #[lang="mul"] trait Mul { pure fn mul(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="mul"] trait Mul { pure fn mul(rhs: &RHS) -> Result; } #[cfg(stage0)] #[lang="div"] trait Div { pure fn div(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="div"] trait Div { pure fn div(rhs: &RHS) -> Result; } #[cfg(stage0)] #[lang="modulo"] trait Modulo { pure fn modulo(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="modulo"] trait Modulo { pure fn modulo(rhs: &RHS) -> Result; } #[lang="neg"] trait Neg { pure fn neg() -> Result; } #[cfg(stage0)] #[lang="bitand"] trait BitAnd { pure fn bitand(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="bitand"] trait BitAnd { pure fn bitand(rhs: &RHS) -> Result; } #[cfg(stage0)] #[lang="bitor"] trait BitOr { pure fn bitor(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="bitor"] trait BitOr { pure fn bitor(rhs: &RHS) -> Result; } #[cfg(stage0)] #[lang="bitxor"] trait BitXor { pure fn bitxor(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="bitxor"] trait BitXor { pure fn bitxor(rhs: &RHS) -> Result; } #[cfg(stage0)] #[lang="shl"] trait Shl { pure fn shl(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="shl"] trait Shl { pure fn shl(rhs: &RHS) -> Result; } #[cfg(stage0)] #[lang="shr"] trait Shr { pure fn shr(rhs: RHS) -> Result; } #[cfg(stage1)] #[cfg(stage2)] #[lang="shr"] trait Shr { pure fn shr(rhs: &RHS) -> Result; } #[lang="index"] trait Index { pure fn index(index: Index) -> Result; }