summaryrefslogtreecommitdiff
path: root/CiResolver.cs
diff options
context:
space:
mode:
Diffstat (limited to 'CiResolver.cs')
-rw-r--r--CiResolver.cs8
1 files changed, 4 insertions, 4 deletions
diff --git a/CiResolver.cs b/CiResolver.cs
index 9701a01..8a2cd0e 100644
--- a/CiResolver.cs
+++ b/CiResolver.cs
@@ -248,9 +248,9 @@ public class CiResolver : CiVisitor
delegate CiRangeType UnsignedOp(CiRangeType left, CiRangeType right);
- bool IsEnumFlags(CiExpr left, CiExpr right)
+ bool IsEnumOp(CiExpr left, CiExpr right)
{
- if (left.Type is CiEnumFlags) {
+ if (left.Type is CiEnumFlags || left.Type == CiSystem.BoolType) {
Coerce(right, left.Type);
return true;
}
@@ -279,7 +279,7 @@ public class CiResolver : CiVisitor
}
return range;
}
- if (IsEnumFlags(left, right))
+ if (IsEnumOp(left, right))
return left.Type;
return GetIntegerType(left, right);
}
@@ -848,7 +848,7 @@ public class CiResolver : CiVisitor
case CiToken.OrAssign:
case CiToken.XorAssign:
CheckLValue(left);
- if (!IsEnumFlags(left, right)) {
+ if (!IsEnumOp(left, right)) {
Coerce(left, CiSystem.IntType);
Coerce(right, CiSystem.IntType);
}