[glsl-in] use TypeInner::scalar_kind for casts (#279)

* [glsl-in] use TypeInner::scalar_kind for casts

* [glsl-in] Use .ok_or for casts
This commit is contained in:
Pelle Johnsen
2020-11-16 17:57:34 +01:00
committed by GitHub
parent 9041cd4b10
commit 437b33d536

View File

@@ -245,13 +245,9 @@ pomelo! {
match fc.kind {
FunctionCallKind::TypeConstructor(ty) => {
let h = if fc.args.len() == 1 {
let kind = match extra.module.types[ty].inner {
TypeInner::Scalar{kind, ..} => kind,
TypeInner::Vector{kind, ..} => kind,
_ => {
return Err(ErrorKind::SemanticError("Can only cast to scalar or vector"));
}
};
let kind = extra.module.types[ty].inner
.scalar_kind()
.ok_or(ErrorKind::SemanticError("Can only cast to scalar or vector"))?;
extra.context.expressions.append(Expression::As {
kind,
expr: fc.args[0].expression,