Check the condition and calls Assertable.ice if condition is false.
Check the condition and calls Assertable.ice if condition is false.
condition to check
additional data to include in error message
error message
Check for loop annotations.
Check for loop annotations.
All labels in independent property must be unique.
Default action for leaf processing.
Default action for leaf processing. Can be overridden to call ICE (to ensure that all processing is implemented by pass).
Report internal compilation error and throw RuntimeException.
Report internal compilation error and throw RuntimeException.
additional data to include in error message
error message
Check array constant.
Check array constant.
The type of the elements must be compatible with the base type of the constant type.
Check array indexing expression.
Check array indexing expression.
Index expression must have integer type.
Check array variable reference.
Check array variable reference.
Same variable reference cannot be used twice. If variable has initializer, its type must be compatible with type of the variable.
All raw variables must be eliminated before leaving the front-end.
All raw variables must be eliminated before leaving the front-end.
Check assignment statement.
Check break statement.
Check call expression.
Check call expression.
Arguments supplied must be compatable with corresponding functions parameters. No recursion is allowed.
Check continue statement.
Check convert expression.
Check convert expression.
Operand of the convert expression must have type, convertible to the target type.
Check for loop.
Check the if/while guard expression.
Check intrinsic call expression.
Check intrinsic call expression.
Intrinsic function must be known to the compiler (see BuiltIn.function). The number and type of the arguments must correspond to the declaration, known by the compiler.
Same operation object can not be used twice.
Check for loop iteration range.
Check return statement.
Check general scalar binary expression.
Check general scalar binary expression.
For ModExpression (%) both operands must have integer type. For Boolean expressions both operands must have boolean type. For comparison expressions (==, !=) both operands must have numeric or boolean types. For comparison expressions (except == and !=) both operands must have numeric types.
Check array indexing expression.
Check array indexing expression.
Index expression must have integer type.
Check ternary expression.
Check ternary expression.
The guard expression must have boolean type. Both alternatives must have compatible types.
Check scalar unary expression.
Check scalar unary expression.
For unary minus expression the operand must have numeric type. For boolen not expression the operand type must have boolean type. For bit reverse (~) expression the operand must have integer type.
Check scalar variable reference.
Check scalar variable reference.
All raw variables must be eliminated before leaving the front-end.
All raw variables must be eliminated before leaving the front-end.
Sizeof expression cannot be applied to void type.
Sizeof expression cannot be applied to void type.
Check while loop.
Provides compile time consistency checks for internal PENCIL representation.