     }
 
     private func computeExplicitHeight() throws -> CGFloat? {
-        if !_evaluating.contains("height") {
+        if !_evaluating.contains("height"),
+            !_evaluating.contains("width") || !value(forSymbol: "height", dependsOn: "width") {
             return try cgFloatValue(forSymbol: "height")
         }
         if expressions["contentSize.height"] != nil, !_evaluating.contains("contentSize.height") {

                        self._view.value(forSymbol: symbol) {
                        return value
                    }
                    throw SymbolError("\(symbol) not found", for: symbol)
                }
            }
        }

    }

    private func computeExplicitWidth() throws -> CGFloat? {
        if !_evaluating.contains("width"),
            !_evaluating.contains("height") || !value(forSymbol: "width", dependsOn: "height") {
            return try cgFloatValue(forSymbol: "width")
        }
        if expressions["contentSize.width"] != nil, !_evaluating.contains("contentSize.width") {
