Files
swift-mirror/test/AutoDiff/compiler_crashers_fixed/tf1167-differentiable-attr-override-match.swift
Dan Zheng 1308fc69c5 [AutoDiff] Simplify conditions enabling differentiable programming. (#30765)
Previously, two conditions were necessary to enable differentiable programming:
- Using the `-enable-experimental-differentiable-programming` frontend flag.
- Importing the `_Differentiation` module.

Importing the `_Differentiation` module is the true condition because it
contains the required compiler-known `Differentiable` protocol. The frontend
flag is redundant and cumbersome.

Now, the frontend flag is removed.
Importing `_Differentiation` is the only condition.
2020-04-02 03:24:03 -07:00

25 lines
937 B
Swift

// RUN: %target-swift-frontend -typecheck -verify %s
// REQUIRES: asserts
// TF-1167: `OverrideMatcher::match` crash due to meaningless assertion:
// `assert(false)`. The assertion was triggered when parameter indices
// could not be resolved for neither base nor derived declaration
// `@differentiable` attributes.
//
// `import _Differentiation` is intentionally omitted from this test case.
public protocol Base {
associatedtype Input
// expected-error @+1 {{use of undeclared type 'Differentiable'}}
associatedtype Output: Differentiable
// expected-error @+1 {{@differentiable attribute used without importing module '_Differentiation'}}
@differentiable(wrt: self)
func callAsFunction(_ input: Input) -> Output
}
public protocol Derived: Base {
// expected-error @+1 {{@differentiable attribute used without importing module '_Differentiation'}}
@differentiable
func callAsFunction(_ input: Input) -> Output
}