Nate wrote:


> I have four bool values: topLeft, bottomLeft, topRight, and bottomRight

>

> the following line throws an error:

> let value = Int(topLeft.hashValue) | Int(topRight.hashValue) << 1 |

> Int(bottomLeft.hashValue) << 2 | Int(bottomRight.hashValue) << 3

>

> "Expression was too complex to be solved in reasonable time; consider

> breaking up the expression into distinct sub-expressions."

It's really unfortunate how operator overloading and "integer literals" don't 
play nicely together any more.

Rather than break up the expression, you can change each integer literal to 
specify its type, e.g. change:

    3

to

    (3 as Int)

That way you can have the expression structure that you want rather than having 
to break expressions into separate statements (which is particularly important 
if you want to take advantage of short-circuit logical operators such as && and 
||).

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to