MCPcopy Index your code
hub / github.com/aiscriptdev/aiscript / validate_enum_variant

Method validate_enum_variant

aiscript-vm/src/compiler/codegen.rs:1562–1578  ·  view source on GitHub ↗
(&mut self, enum_name: Token<'gc>, variant: Token<'gc>)

Source from the content-addressed store, hash-verified

1560 }
1561
1562 fn validate_enum_variant(&mut self, enum_name: Token<'gc>, variant: Token<'gc>) {
1563 // Validate enums and variants
1564 if let Some(enum_) = self.get_enum(enum_name.lexeme) {
1565 let variant_name = self.ctx.intern(variant.lexeme.as_bytes());
1566 if enum_.borrow().get_variant_value(variant_name).is_none() {
1567 self.error_at(
1568 variant,
1569 &format!(
1570 "No variant called '{}' in enum '{}'.",
1571 variant.lexeme, enum_name.lexeme
1572 ),
1573 );
1574 }
1575 } else {
1576 self.error_at(enum_name, &format!("Invalid enum '{}'.", enum_name.lexeme));
1577 }
1578 }
1579
1580 // Bytecode emission methods
1581 fn emit(&mut self, op: OpCode) {

Callers 1

generate_exprMethod · 0.80

Calls 6

get_enumMethod · 0.80
as_bytesMethod · 0.80
get_variant_valueMethod · 0.80
internMethod · 0.45
borrowMethod · 0.45
error_atMethod · 0.45

Tested by

no test coverage detected