| 162 | } |
| 163 | |
| 164 | static bool isComputableValue(const Token* parent, const Value& value) |
| 165 | { |
| 166 | const bool noninvertible = isNonInvertibleOperation(parent); |
| 167 | if (noninvertible && value.isImpossible()) |
| 168 | return false; |
| 169 | if (!value.isIntValue() && !value.isFloatValue() && !value.isTokValue() && !value.isIteratorValue()) |
| 170 | return false; |
| 171 | if (value.isIteratorValue() && !Token::Match(parent, "+|-")) |
| 172 | return false; |
| 173 | if (value.isTokValue() && (!parent->isComparisonOp() || !Token::Match(value.tokvalue, "{|%str%"))) |
| 174 | return false; |
| 175 | return true; |
| 176 | } |
| 177 | |
| 178 | /** Set token value for cast */ |
| 179 | static bool isCompatibleValueTypes(Value::ValueType x, Value::ValueType y) |
no test coverage detected