26 switch (expr.
kind()) {
27 case Expression::Kind::kLiteral:
28 case Expression::Kind::kVariableReference:
31 case Expression::Kind::kSwizzle:
35 case Expression::Kind::kPrefix: {
37 switch (prefix.getOperator().kind()) {
48 case Expression::Kind::kFieldAccess:
52 case Expression::Kind::kIndex: {
57 case Expression::Kind::kConstructorArray:
58 case Expression::Kind::kConstructorStruct:
60 return expr.
type().
slotCount() <= 4 && IsCompileTimeConstant(expr);
62 case Expression::Kind::kConstructorArrayCast:
63 case Expression::Kind::kConstructorMatrixResize:
67 case Expression::Kind::kConstructorCompound:
69 return IsCompileTimeConstant(expr);
71 case Expression::Kind::kConstructorCompoundCast:
72 case Expression::Kind::kConstructorScalarCast:
73 case Expression::Kind::kConstructorSplat:
74 case Expression::Kind::kConstructorDiagonalMatrix: {