         if let getter = _getters[symbol] {
             return try SymbolError.wrap(getter, for: symbol)
         }
+        completeSetup()
         if let expression = self.expression(for: symbol) {
             return try SymbolError.wrap(expression.evaluate, for: symbol)
         }

    }

    private func cleanUp() {
        if let error = _unhandledError, error.isTransient {
            _unhandledError = nil
        }

        guard _suppressUpdates == false else { return }
        defer { _suppressUpdates = false }
        _suppressUpdates = true
        completeSetup()
        try LayoutError.wrap(updateExpressionValues, for: self)
        for child in children {
            try LayoutError.wrap(child.update, for: self)
