Files
swift-mirror/test/AutoDiff/ModuleInterface/differentiation.swift
Allan Shortlidge d3dbe75419 ModuleInterface: Introduce the %target-swift-emit-module-interface and %target-swift-typecheck-module-from-interface lit substitutions and adopt them in some tests that involve emitting a swiftinterface. The substitutions specify the additional flags -swift-version 5 -enable-library-evolution. There are a few motivations for adding these substitutions:
- Tests that depend on emitted interfaces should generally use flags that are typical for modules that have textual interfaces (e.g. `-enable-library-evolution`).
- If a test is intended to produce a valid `swiftinterface` then it should verify that interface. This will help prevent interface printing regressions caused by compiler changes.
- Having commonly used substitutions for tests that emit interfaces makes it easy to experiment with compiler flags that might effect interface printing.

Resolves rdar://91634358
2022-04-14 15:09:36 -07:00

16 lines
751 B
Swift

// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %s
// RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface)
// RUN: %FileCheck %s < %t.swiftinterface
import _Differentiation
public func a(f: @differentiable(reverse) (Float) -> Float) {}
// CHECK: public func a(f: @differentiable(reverse) (Swift.Float) -> Swift.Float)
// TODO: Remove once `@differentiable` becomes deprecated.
public func b(f: @differentiable(reverse) (Float) -> Float) {}
// CHECK: public func b(f: @differentiable(reverse) (Swift.Float) -> Swift.Float)
public func c(f: @differentiable(reverse) (Float, @noDerivative Float) -> Float) {}
// CHECK: public func c(f: @differentiable(reverse) (Swift.Float, @noDerivative Swift.Float) -> Swift.Float)