Fix using custom type-labels for e.g. return type
This commit is contained in:
parent
0f782dcb96
commit
ce2278ce45
@ -39,7 +39,7 @@ impl Parse for Type {
|
|||||||
"u64" => TypeKind::U64,
|
"u64" => TypeKind::U64,
|
||||||
"u128" => TypeKind::U128,
|
"u128" => TypeKind::U128,
|
||||||
"string" => TypeKind::String,
|
"string" => TypeKind::String,
|
||||||
_ => Err(stream.expected_err("known type identifier")?)?,
|
_ => TypeKind::Custom(ident),
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return Err(stream.expected_err("type identifier")?)?;
|
return Err(stream.expected_err("type identifier")?)?;
|
||||||
|
@ -275,7 +275,7 @@ impl From<ast::TypeKind> for mir::TypeKind {
|
|||||||
mir::TypeKind::Array(Box::new(mir::TypeKind::from(*type_kind.clone())), *length)
|
mir::TypeKind::Array(Box::new(mir::TypeKind::from(*type_kind.clone())), *length)
|
||||||
}
|
}
|
||||||
ast::TypeKind::String => mir::TypeKind::StringPtr,
|
ast::TypeKind::String => mir::TypeKind::StringPtr,
|
||||||
ast::TypeKind::Custom(_) => todo!("Add processing for custom types"),
|
ast::TypeKind::Custom(name) => mir::TypeKind::CustomType(name.clone()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,19 +5,24 @@ struct Test {
|
|||||||
second: [u32; 4]
|
second: [u32; 4]
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() -> v u32 {
|
fn test() -> [Test; 1] {
|
||||||
let mut value = [Test {
|
let value = [Test {
|
||||||
field: 5,
|
field: 5,
|
||||||
second: [6, 3, "hello", 8],
|
second: [6, 3, 4, 8],
|
||||||
}];
|
}];
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() -> u32 {
|
||||||
|
let mut value = test();
|
||||||
|
|
||||||
let val1 = 0;
|
let val1 = 0;
|
||||||
let val2 = 1;
|
let val2 = 1;
|
||||||
|
|
||||||
// value[val1].second[val2 + 1] = 99;
|
// value[val1].second[val2 + 1] = 99;
|
||||||
|
|
||||||
let mut b = valude[val1];
|
let mut b = value[val1];
|
||||||
b.second[2] = 99;
|
b.second[2] = 99;
|
||||||
|
|
||||||
return value[val1].sezcond[2];
|
return value[val1].second[2];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user