MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / value_type

Method value_type

cranelift/reader/src/lexer.rs:369–397  ·  view source on GitHub ↗

Recognize a scalar or vector type.

(text: &str, prefix: &str, number: u32)

Source from the content-addressed store, hash-verified

367
368 // Recognize a scalar or vector type.
369 fn value_type(text: &str, prefix: &str, number: u32) -> Option<Token<'a>> {
370 let is_vector = prefix.ends_with('x');
371 let scalar = if is_vector {
372 &prefix[0..prefix.len() - 1]
373 } else {
374 text
375 };
376 let base_type = match scalar {
377 "i8" => types::I8,
378 "i16" => types::I16,
379 "i32" => types::I32,
380 "i64" => types::I64,
381 "i128" => types::I128,
382 "f16" => types::F16,
383 "f32" => types::F32,
384 "f64" => types::F64,
385 "f128" => types::F128,
386 _ => return None,
387 };
388 if is_vector {
389 if number <= u32::from(u16::MAX) {
390 base_type.by(number).map(Token::Type)
391 } else {
392 None
393 }
394 } else {
395 Some(Token::Type(base_type))
396 }
397 }
398
399 fn scan_name(&mut self) -> Result<LocatedToken<'a>, LocatedError> {
400 let loc = self.loc();

Callers 1

infer_typevarMethod · 0.45

Calls 5

fromFunction · 0.85
TypeClass · 0.50
lenMethod · 0.45
mapMethod · 0.45
byMethod · 0.45

Tested by

no test coverage detected