     private class func closestCommonSuperviewFromView(fromView: View?, toView: View?) -> View? {
         var closestCommonSuperview: View?
         var secondViewSuperview: View? = toView
-        while !closestCommonSuperview && secondViewSuperview {
+        while closestCommonSuperview == nil && secondViewSuperview != nil {
             var firstViewSuperview = fromView
-            while !closestCommonSuperview && firstViewSuperview {
+            while closestCommonSuperview == nil && firstViewSuperview != nil {
                 if secondViewSuperview == firstViewSuperview {
                     closestCommonSuperview = secondViewSuperview
                 }

    
    func install() -> Array<LayoutConstraint> {
        var installOnView: View? = nil
        if self.toItem.view {
            installOnView = Constraint.closestCommonSuperviewFromView(self.fromItem.view, toView: self.toItem.view)
            if !installOnView {
                NSException(name: "Cannot Install Constraint", reason: "No common superview between views", userInfo: nil).raise()
                return []
            }
        } else {
            installOnView = self.fromItem.view?.superview
            if !installOnView {
                NSException(name: "Cannot Install Constraint", reason: "Missing superview", userInfo: nil).raise()
                return []
            }

        return attrs
    }
}
func += (inout left: ConstraintAttributes, right: ConstraintAttributes) {
    left = (left | right)
}
func -= (inout left: ConstraintAttributes, right: ConstraintAttributes) {
    left = left & ~right
}

/**
