Enable and fix several more clippy lints.
This commit is contained in:
@@ -31,7 +31,7 @@ impl Ebb {
|
||||
/// Create a new EBB reference from its number. This corresponds to the `ebbNN` representation.
|
||||
///
|
||||
/// This method is for use by the parser.
|
||||
pub fn with_number(n: u32) -> Option<Ebb> {
|
||||
pub fn with_number(n: u32) -> Option<Self> {
|
||||
if n < u32::MAX { Some(Ebb(n)) } else { None }
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,7 @@ impl Value {
|
||||
/// This is the number in the `vNN` notation.
|
||||
///
|
||||
/// This method is for use by the parser.
|
||||
pub fn with_number(n: u32) -> Option<Value> {
|
||||
pub fn with_number(n: u32) -> Option<Self> {
|
||||
if n < u32::MAX / 2 {
|
||||
Some(Value(n))
|
||||
} else {
|
||||
@@ -69,7 +69,7 @@ impl StackSlot {
|
||||
/// Create a new stack slot reference from its number.
|
||||
///
|
||||
/// This method is for use by the parser.
|
||||
pub fn with_number(n: u32) -> Option<StackSlot> {
|
||||
pub fn with_number(n: u32) -> Option<Self> {
|
||||
if n < u32::MAX {
|
||||
Some(StackSlot(n))
|
||||
} else {
|
||||
@@ -87,7 +87,7 @@ impl GlobalVar {
|
||||
/// Create a new global variable reference from its number.
|
||||
///
|
||||
/// This method is for use by the parser.
|
||||
pub fn with_number(n: u32) -> Option<GlobalVar> {
|
||||
pub fn with_number(n: u32) -> Option<Self> {
|
||||
if n < u32::MAX {
|
||||
Some(GlobalVar(n))
|
||||
} else {
|
||||
@@ -105,7 +105,7 @@ impl JumpTable {
|
||||
/// Create a new jump table reference from its number.
|
||||
///
|
||||
/// This method is for use by the parser.
|
||||
pub fn with_number(n: u32) -> Option<JumpTable> {
|
||||
pub fn with_number(n: u32) -> Option<Self> {
|
||||
if n < u32::MAX {
|
||||
Some(JumpTable(n))
|
||||
} else {
|
||||
@@ -123,7 +123,7 @@ impl FuncRef {
|
||||
/// Create a new external function reference from its number.
|
||||
///
|
||||
/// This method is for use by the parser.
|
||||
pub fn with_number(n: u32) -> Option<FuncRef> {
|
||||
pub fn with_number(n: u32) -> Option<Self> {
|
||||
if n < u32::MAX { Some(FuncRef(n)) } else { None }
|
||||
}
|
||||
}
|
||||
@@ -137,7 +137,7 @@ impl SigRef {
|
||||
/// Create a new function signature reference from its number.
|
||||
///
|
||||
/// This method is for use by the parser.
|
||||
pub fn with_number(n: u32) -> Option<SigRef> {
|
||||
pub fn with_number(n: u32) -> Option<Self> {
|
||||
if n < u32::MAX { Some(SigRef(n)) } else { None }
|
||||
}
|
||||
}
|
||||
@@ -151,7 +151,7 @@ impl Heap {
|
||||
/// Create a new heap reference from its number.
|
||||
///
|
||||
/// This method is for use by the parser.
|
||||
pub fn with_number(n: u32) -> Option<Heap> {
|
||||
pub fn with_number(n: u32) -> Option<Self> {
|
||||
if n < u32::MAX { Some(Heap(n)) } else { None }
|
||||
}
|
||||
}
|
||||
@@ -205,55 +205,55 @@ impl fmt::Debug for AnyEntity {
|
||||
}
|
||||
|
||||
impl From<Ebb> for AnyEntity {
|
||||
fn from(r: Ebb) -> AnyEntity {
|
||||
fn from(r: Ebb) -> Self {
|
||||
AnyEntity::Ebb(r)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Inst> for AnyEntity {
|
||||
fn from(r: Inst) -> AnyEntity {
|
||||
fn from(r: Inst) -> Self {
|
||||
AnyEntity::Inst(r)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Value> for AnyEntity {
|
||||
fn from(r: Value) -> AnyEntity {
|
||||
fn from(r: Value) -> Self {
|
||||
AnyEntity::Value(r)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<StackSlot> for AnyEntity {
|
||||
fn from(r: StackSlot) -> AnyEntity {
|
||||
fn from(r: StackSlot) -> Self {
|
||||
AnyEntity::StackSlot(r)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<GlobalVar> for AnyEntity {
|
||||
fn from(r: GlobalVar) -> AnyEntity {
|
||||
fn from(r: GlobalVar) -> Self {
|
||||
AnyEntity::GlobalVar(r)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<JumpTable> for AnyEntity {
|
||||
fn from(r: JumpTable) -> AnyEntity {
|
||||
fn from(r: JumpTable) -> Self {
|
||||
AnyEntity::JumpTable(r)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<FuncRef> for AnyEntity {
|
||||
fn from(r: FuncRef) -> AnyEntity {
|
||||
fn from(r: FuncRef) -> Self {
|
||||
AnyEntity::FuncRef(r)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<SigRef> for AnyEntity {
|
||||
fn from(r: SigRef) -> AnyEntity {
|
||||
fn from(r: SigRef) -> Self {
|
||||
AnyEntity::SigRef(r)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Heap> for AnyEntity {
|
||||
fn from(r: Heap) -> AnyEntity {
|
||||
fn from(r: Heap) -> Self {
|
||||
AnyEntity::Heap(r)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -304,7 +304,7 @@ impl fmt::Display for ArgumentPurpose {
|
||||
|
||||
impl FromStr for ArgumentPurpose {
|
||||
type Err = ();
|
||||
fn from_str(s: &str) -> Result<ArgumentPurpose, ()> {
|
||||
fn from_str(s: &str) -> Result<Self, ()> {
|
||||
match s {
|
||||
"normal" => Ok(ArgumentPurpose::Normal),
|
||||
"sret" => Ok(ArgumentPurpose::StructReturn),
|
||||
|
||||
@@ -56,7 +56,7 @@ impl ExternalName {
|
||||
/// let name = ExternalName::testcase("hello");
|
||||
/// assert_eq!(name.to_string(), "%hello");
|
||||
/// ```
|
||||
pub fn testcase<T: AsRef<[u8]>>(v: T) -> ExternalName {
|
||||
pub fn testcase<T: AsRef<[u8]>>(v: T) -> Self {
|
||||
let vec = v.as_ref();
|
||||
let len = cmp::min(vec.len(), TESTCASE_NAME_LENGTH);
|
||||
let mut bytes = [0u8; TESTCASE_NAME_LENGTH];
|
||||
@@ -77,17 +77,14 @@ impl ExternalName {
|
||||
/// let name = ExternalName::user(123, 456);
|
||||
/// assert_eq!(name.to_string(), "u123:456");
|
||||
/// ```
|
||||
pub fn user(namespace: u32, index: u32) -> ExternalName {
|
||||
ExternalName::User {
|
||||
namespace: namespace,
|
||||
index: index,
|
||||
}
|
||||
pub fn user(namespace: u32, index: u32) -> Self {
|
||||
ExternalName::User { namespace, index }
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for ExternalName {
|
||||
fn default() -> ExternalName {
|
||||
ExternalName::user(0, 0)
|
||||
fn default() -> Self {
|
||||
Self::user(0, 0)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,12 +18,12 @@ pub struct Imm64(i64);
|
||||
|
||||
impl Imm64 {
|
||||
/// Create a new `Imm64` representing the signed number `x`.
|
||||
pub fn new(x: i64) -> Imm64 {
|
||||
pub fn new(x: i64) -> Self {
|
||||
Imm64(x)
|
||||
}
|
||||
|
||||
/// Return self negated.
|
||||
pub fn wrapping_neg(self) -> Imm64 {
|
||||
pub fn wrapping_neg(self) -> Self {
|
||||
Imm64(self.0.wrapping_neg())
|
||||
}
|
||||
}
|
||||
@@ -143,8 +143,8 @@ impl FromStr for Imm64 {
|
||||
type Err = &'static str;
|
||||
|
||||
// Parse a decimal or hexadecimal `Imm64`, formatted as above.
|
||||
fn from_str(s: &str) -> Result<Imm64, &'static str> {
|
||||
parse_i64(s).map(Imm64::new)
|
||||
fn from_str(s: &str) -> Result<Self, &'static str> {
|
||||
parse_i64(s).map(Self::new)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ impl FromStr for Uimm32 {
|
||||
type Err = &'static str;
|
||||
|
||||
// Parse a decimal or hexadecimal `Uimm32`, formatted as above.
|
||||
fn from_str(s: &str) -> Result<Uimm32, &'static str> {
|
||||
fn from_str(s: &str) -> Result<Self, &'static str> {
|
||||
parse_i64(s).and_then(|x| if 0 <= x && x <= i64::from(u32::MAX) {
|
||||
Ok(Uimm32(x as u32))
|
||||
} else {
|
||||
@@ -209,7 +209,7 @@ pub struct Offset32(i32);
|
||||
|
||||
impl Offset32 {
|
||||
/// Create a new `Offset32` representing the signed number `x`.
|
||||
pub fn new(x: i32) -> Offset32 {
|
||||
pub fn new(x: i32) -> Self {
|
||||
Offset32(x)
|
||||
}
|
||||
}
|
||||
@@ -255,14 +255,14 @@ impl FromStr for Offset32 {
|
||||
type Err = &'static str;
|
||||
|
||||
// Parse a decimal or hexadecimal `Offset32`, formatted as above.
|
||||
fn from_str(s: &str) -> Result<Offset32, &'static str> {
|
||||
fn from_str(s: &str) -> Result<Self, &'static str> {
|
||||
if !(s.starts_with('-') || s.starts_with('+')) {
|
||||
return Err("Offset must begin with sign");
|
||||
}
|
||||
parse_i64(s).and_then(|x| if i64::from(i32::MIN) <= x &&
|
||||
x <= i64::from(i32::MAX)
|
||||
{
|
||||
Ok(Offset32::new(x as i32))
|
||||
Ok(Self::new(x as i32))
|
||||
} else {
|
||||
Err("Offset out of range")
|
||||
})
|
||||
@@ -524,12 +524,12 @@ fn parse_float(s: &str, w: u8, t: u8) -> Result<u64, &'static str> {
|
||||
|
||||
impl Ieee32 {
|
||||
/// Create a new `Ieee32` containing the bits of `x`.
|
||||
pub fn with_bits(x: u32) -> Ieee32 {
|
||||
pub fn with_bits(x: u32) -> Self {
|
||||
Ieee32(x)
|
||||
}
|
||||
|
||||
/// Create an `Ieee32` number representing `2.0^n`.
|
||||
pub fn pow2<I: Into<i32>>(n: I) -> Ieee32 {
|
||||
pub fn pow2<I: Into<i32>>(n: I) -> Self {
|
||||
let n = n.into();
|
||||
let w = 8;
|
||||
let t = 23;
|
||||
@@ -542,7 +542,7 @@ impl Ieee32 {
|
||||
|
||||
/// Create an `Ieee32` number representing the greatest negative value
|
||||
/// not convertable from f32 to a signed integer with width n.
|
||||
pub fn fcvt_to_sint_negative_overflow<I: Into<i32>>(n: I) -> Ieee32 {
|
||||
pub fn fcvt_to_sint_negative_overflow<I: Into<i32>>(n: I) -> Self {
|
||||
let n = n.into();
|
||||
debug_assert!(n < 32);
|
||||
debug_assert!(23 + 1 - n < 32);
|
||||
@@ -552,12 +552,12 @@ impl Ieee32 {
|
||||
}
|
||||
|
||||
/// Return self negated.
|
||||
pub fn neg(self) -> Ieee32 {
|
||||
pub fn neg(self) -> Self {
|
||||
Ieee32(self.0 ^ (1 << 31))
|
||||
}
|
||||
|
||||
/// Create a new `Ieee32` representing the number `x`.
|
||||
pub fn with_float(x: f32) -> Ieee32 {
|
||||
pub fn with_float(x: f32) -> Self {
|
||||
Ieee32(unsafe { mem::transmute(x) })
|
||||
}
|
||||
|
||||
@@ -577,7 +577,7 @@ impl Display for Ieee32 {
|
||||
impl FromStr for Ieee32 {
|
||||
type Err = &'static str;
|
||||
|
||||
fn from_str(s: &str) -> Result<Ieee32, &'static str> {
|
||||
fn from_str(s: &str) -> Result<Self, &'static str> {
|
||||
match parse_float(s, 8, 23) {
|
||||
Ok(b) => Ok(Ieee32(b as u32)),
|
||||
Err(s) => Err(s),
|
||||
@@ -587,12 +587,12 @@ impl FromStr for Ieee32 {
|
||||
|
||||
impl Ieee64 {
|
||||
/// Create a new `Ieee64` containing the bits of `x`.
|
||||
pub fn with_bits(x: u64) -> Ieee64 {
|
||||
pub fn with_bits(x: u64) -> Self {
|
||||
Ieee64(x)
|
||||
}
|
||||
|
||||
/// Create an `Ieee64` number representing `2.0^n`.
|
||||
pub fn pow2<I: Into<i64>>(n: I) -> Ieee64 {
|
||||
pub fn pow2<I: Into<i64>>(n: I) -> Self {
|
||||
let n = n.into();
|
||||
let w = 11;
|
||||
let t = 52;
|
||||
@@ -605,7 +605,7 @@ impl Ieee64 {
|
||||
|
||||
/// Create an `Ieee64` number representing the greatest negative value
|
||||
/// not convertable from f64 to a signed integer with width n.
|
||||
pub fn fcvt_to_sint_negative_overflow<I: Into<i64>>(n: I) -> Ieee64 {
|
||||
pub fn fcvt_to_sint_negative_overflow<I: Into<i64>>(n: I) -> Self {
|
||||
let n = n.into();
|
||||
debug_assert!(n < 64);
|
||||
debug_assert!(52 + 1 - n < 64);
|
||||
@@ -615,12 +615,12 @@ impl Ieee64 {
|
||||
}
|
||||
|
||||
/// Return self negated.
|
||||
pub fn neg(self) -> Ieee64 {
|
||||
pub fn neg(self) -> Self {
|
||||
Ieee64(self.0 ^ (1 << 63))
|
||||
}
|
||||
|
||||
/// Create a new `Ieee64` representing the number `x`.
|
||||
pub fn with_float(x: f64) -> Ieee64 {
|
||||
pub fn with_float(x: f64) -> Self {
|
||||
Ieee64(unsafe { mem::transmute(x) })
|
||||
}
|
||||
|
||||
@@ -640,7 +640,7 @@ impl Display for Ieee64 {
|
||||
impl FromStr for Ieee64 {
|
||||
type Err = &'static str;
|
||||
|
||||
fn from_str(s: &str) -> Result<Ieee64, &'static str> {
|
||||
fn from_str(s: &str) -> Result<Self, &'static str> {
|
||||
match parse_float(s, 11, 52) {
|
||||
Ok(b) => Ok(Ieee64(b)),
|
||||
Err(s) => Err(s),
|
||||
|
||||
@@ -72,7 +72,7 @@ impl FromStr for Opcode {
|
||||
type Err = &'static str;
|
||||
|
||||
/// Parse an Opcode name from a string.
|
||||
fn from_str(s: &str) -> Result<Opcode, &'static str> {
|
||||
fn from_str(s: &str) -> Result<Self, &'static str> {
|
||||
use constant_hash::{probe, simple_hash, Table};
|
||||
|
||||
impl<'a> Table<&'a str> for [Option<Opcode>] {
|
||||
@@ -85,7 +85,7 @@ impl FromStr for Opcode {
|
||||
}
|
||||
}
|
||||
|
||||
match probe::<&str, [Option<Opcode>]>(&OPCODE_HASH_TABLE, s, simple_hash(s)) {
|
||||
match probe::<&str, [Option<Self>]>(&OPCODE_HASH_TABLE, s, simple_hash(s)) {
|
||||
Err(_) => Err("Unknown opcode"),
|
||||
// We unwrap here because probe() should have ensured that the entry
|
||||
// at this index is not None.
|
||||
|
||||
@@ -72,7 +72,7 @@ impl LibCall {
|
||||
/// given opcode and controlling type variable.
|
||||
///
|
||||
/// Returns `None` if no well-known library routine name exists for that instruction.
|
||||
pub fn for_inst(opcode: Opcode, ctrl_type: Type) -> Option<LibCall> {
|
||||
pub fn for_inst(opcode: Opcode, ctrl_type: Type) -> Option<Self> {
|
||||
Some(match ctrl_type {
|
||||
types::F32 => {
|
||||
match opcode {
|
||||
|
||||
@@ -17,7 +17,7 @@ use std::u32;
|
||||
pub struct ProgramPoint(u32);
|
||||
|
||||
impl From<Inst> for ProgramPoint {
|
||||
fn from(inst: Inst) -> ProgramPoint {
|
||||
fn from(inst: Inst) -> Self {
|
||||
let idx = inst.index();
|
||||
debug_assert!(idx < (u32::MAX / 2) as usize);
|
||||
ProgramPoint((idx * 2) as u32)
|
||||
@@ -25,7 +25,7 @@ impl From<Inst> for ProgramPoint {
|
||||
}
|
||||
|
||||
impl From<Ebb> for ProgramPoint {
|
||||
fn from(ebb: Ebb) -> ProgramPoint {
|
||||
fn from(ebb: Ebb) -> Self {
|
||||
let idx = ebb.index();
|
||||
debug_assert!(idx < (u32::MAX / 2) as usize);
|
||||
ProgramPoint((idx * 2 + 1) as u32)
|
||||
@@ -33,7 +33,7 @@ impl From<Ebb> for ProgramPoint {
|
||||
}
|
||||
|
||||
impl From<ValueDef> for ProgramPoint {
|
||||
fn from(def: ValueDef) -> ProgramPoint {
|
||||
fn from(def: ValueDef) -> Self {
|
||||
match def {
|
||||
ValueDef::Result(inst, _) => inst.into(),
|
||||
ValueDef::Param(ebb, _) => ebb.into(),
|
||||
@@ -62,19 +62,19 @@ impl ExpandedProgramPoint {
|
||||
}
|
||||
|
||||
impl From<Inst> for ExpandedProgramPoint {
|
||||
fn from(inst: Inst) -> ExpandedProgramPoint {
|
||||
fn from(inst: Inst) -> Self {
|
||||
ExpandedProgramPoint::Inst(inst)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Ebb> for ExpandedProgramPoint {
|
||||
fn from(ebb: Ebb) -> ExpandedProgramPoint {
|
||||
fn from(ebb: Ebb) -> Self {
|
||||
ExpandedProgramPoint::Ebb(ebb)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ValueDef> for ExpandedProgramPoint {
|
||||
fn from(def: ValueDef) -> ExpandedProgramPoint {
|
||||
fn from(def: ValueDef) -> Self {
|
||||
match def {
|
||||
ValueDef::Result(inst, _) => inst.into(),
|
||||
ValueDef::Param(ebb, _) => ebb.into(),
|
||||
@@ -83,7 +83,7 @@ impl From<ValueDef> for ExpandedProgramPoint {
|
||||
}
|
||||
|
||||
impl From<ProgramPoint> for ExpandedProgramPoint {
|
||||
fn from(pp: ProgramPoint) -> ExpandedProgramPoint {
|
||||
fn from(pp: ProgramPoint) -> Self {
|
||||
if pp.0 & 1 == 0 {
|
||||
ExpandedProgramPoint::Inst(Inst::new((pp.0 / 2) as usize))
|
||||
} else {
|
||||
|
||||
@@ -17,7 +17,7 @@ pub struct SourceLoc(u32);
|
||||
|
||||
impl SourceLoc {
|
||||
/// Create a new source location with the given bits.
|
||||
pub fn new(bits: u32) -> SourceLoc {
|
||||
pub fn new(bits: u32) -> Self {
|
||||
SourceLoc(bits)
|
||||
}
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ pub enum StackSlotKind {
|
||||
impl FromStr for StackSlotKind {
|
||||
type Err = ();
|
||||
|
||||
fn from_str(s: &str) -> Result<StackSlotKind, ()> {
|
||||
fn from_str(s: &str) -> Result<Self, ()> {
|
||||
use self::StackSlotKind::*;
|
||||
match s {
|
||||
"explicit_slot" => Ok(ExplicitSlot),
|
||||
@@ -117,8 +117,8 @@ pub struct StackSlotData {
|
||||
|
||||
impl StackSlotData {
|
||||
/// Create a stack slot with the specified byte size.
|
||||
pub fn new(kind: StackSlotKind, size: StackSize) -> StackSlotData {
|
||||
StackSlotData {
|
||||
pub fn new(kind: StackSlotKind, size: StackSize) -> Self {
|
||||
Self {
|
||||
kind,
|
||||
size,
|
||||
offset: None,
|
||||
|
||||
@@ -39,7 +39,7 @@ impl Type {
|
||||
/// Get the lane type of this SIMD vector type.
|
||||
///
|
||||
/// A lane type is the same as a SIMD vector type with one lane, so it returns itself.
|
||||
pub fn lane_type(self) -> Type {
|
||||
pub fn lane_type(self) -> Self {
|
||||
if self.0 < VECTOR_BASE {
|
||||
self
|
||||
} else {
|
||||
@@ -72,7 +72,7 @@ impl Type {
|
||||
}
|
||||
|
||||
/// Get an integer type with the requested number of bits.
|
||||
pub fn int(bits: u16) -> Option<Type> {
|
||||
pub fn int(bits: u16) -> Option<Self> {
|
||||
match bits {
|
||||
8 => Some(I8),
|
||||
16 => Some(I16),
|
||||
@@ -83,7 +83,7 @@ impl Type {
|
||||
}
|
||||
|
||||
/// Get a type with the same number of lanes as `self`, but using `lane` as the lane type.
|
||||
fn replace_lanes(self, lane: Type) -> Type {
|
||||
fn replace_lanes(self, lane: Self) -> Self {
|
||||
debug_assert!(lane.is_lane() && !self.is_special());
|
||||
Type((lane.0 & 0x0f) | (self.0 & 0xf0))
|
||||
}
|
||||
@@ -93,7 +93,7 @@ impl Type {
|
||||
///
|
||||
/// Scalar types are treated as vectors with one lane, so they are converted to the multi-bit
|
||||
/// boolean types.
|
||||
pub fn as_bool_pedantic(self) -> Type {
|
||||
pub fn as_bool_pedantic(self) -> Self {
|
||||
// Replace the low 4 bits with the boolean version, preserve the high 4 bits.
|
||||
self.replace_lanes(match self.lane_type() {
|
||||
B8 | I8 => B8,
|
||||
@@ -108,7 +108,7 @@ impl Type {
|
||||
/// booleans of the same size.
|
||||
///
|
||||
/// Scalar types are all converted to `b1` which is usually what you want.
|
||||
pub fn as_bool(self) -> Type {
|
||||
pub fn as_bool(self) -> Self {
|
||||
if !self.is_vector() {
|
||||
B1
|
||||
} else {
|
||||
@@ -118,7 +118,7 @@ impl Type {
|
||||
|
||||
/// Get a type with the same number of lanes as this type, but with lanes that are half the
|
||||
/// number of bits.
|
||||
pub fn half_width(self) -> Option<Type> {
|
||||
pub fn half_width(self) -> Option<Self> {
|
||||
Some(self.replace_lanes(match self.lane_type() {
|
||||
I16 => I8,
|
||||
I32 => I16,
|
||||
@@ -133,7 +133,7 @@ impl Type {
|
||||
|
||||
/// Get a type with the same number of lanes as this type, but with lanes that are twice the
|
||||
/// number of bits.
|
||||
pub fn double_width(self) -> Option<Type> {
|
||||
pub fn double_width(self) -> Option<Self> {
|
||||
Some(self.replace_lanes(match self.lane_type() {
|
||||
I8 => I16,
|
||||
I16 => I32,
|
||||
@@ -235,7 +235,7 @@ impl Type {
|
||||
///
|
||||
/// If this is already a SIMD vector type, this produces a SIMD vector type with `n *
|
||||
/// self.lane_count()` lanes.
|
||||
pub fn by(self, n: u16) -> Option<Type> {
|
||||
pub fn by(self, n: u16) -> Option<Self> {
|
||||
if self.lane_bits() == 0 || !n.is_power_of_two() {
|
||||
return None;
|
||||
}
|
||||
@@ -251,7 +251,7 @@ impl Type {
|
||||
/// Get a SIMD vector with half the number of lanes.
|
||||
///
|
||||
/// There is no `double_vector()` method. Use `t.by(2)` instead.
|
||||
pub fn half_vector(self) -> Option<Type> {
|
||||
pub fn half_vector(self) -> Option<Self> {
|
||||
if self.is_vector() {
|
||||
Some(Type(self.0 - 0x10))
|
||||
} else {
|
||||
@@ -268,7 +268,7 @@ impl Type {
|
||||
///
|
||||
/// 1. `self.lane_count() == other.lane_count()` and
|
||||
/// 2. `self.lane_bits() >= other.lane_bits()`
|
||||
pub fn wider_or_equal(self, other: Type) -> bool {
|
||||
pub fn wider_or_equal(self, other: Self) -> bool {
|
||||
self.lane_count() == other.lane_count() && self.lane_bits() >= other.lane_bits()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user