       return (f(x), { v in 3 * v })
     }
   }
+#endif
 
   func classValueWithGradient<T: Differentiable & FloatingPoint>(
     _ c: Super<T>

  expectEqual((1, 1), classValueWithGradient(SubOverride<Float>()))
  expectEqual((3, 3), classValueWithGradient(SubSpecializeOverride()))
  expectEqual((3, 3), classValueWithGradient(SubOverrideCustomDerivatives<Float>()))
  expectEqual((3, 3), classValueWithGradient(SubSpecializeOverrideCustomDerivatives()))
}

ClassTests.test("ClassMethods - closure captures") {

    }
  }

#if !(os(Windows) || os(Android)) && (arch(i386) || arch(x86_64))
  class SubSpecializeOverrideCustomDerivatives: Super<Float80> {
    @differentiable(wrt: x)
    override func f(_ x: Tracked<Float80>) -> Tracked<Float80> {
