Files
swift-mirror/test/Parse/diagnose_dynamicReplacement.swift
Arnold Schwaighofer b102c7f6b4 Parser/Sema/SILGen changes for @_dynamicReplacement(for:)
Dynamic replacements are currently written in extensions as

extension ExtendedType {
  @_dynamicReplacement(for: replacedFun())
  func replacement() { }
}

The runtime implementation allows an implementation in the future where
dynamic replacements are gather in a scope and can be dynamically
enabled and disabled.

For example:

dynamic_extension_scope CollectionOfReplacements {
  extension ExtentedType {
    func replacedFun() {}
  }

  extension ExtentedType2 {
    func replacedFun() {}
  }
}

CollectionOfReplacements.enable()
CollectionOfReplacements.disable()
2018-11-06 09:58:36 -08:00

21 lines
595 B
Swift

// RUN: %target-typecheck-verify-swift -swift-version 5
dynamic func dynamic_replaceable() {
}
@_dynamicReplacement
// expected-error@-1 {{expected '(' in '_dynamicReplacement' attribute}}
func test_dynamic_replacement_for() {
}
@_dynamicReplacement(
// expected-error@-1 {{expected 'for' in '_dynamicReplacement' attribute}}
func test_dynamic_replacement_for2() {
}
@_dynamicReplacement(for: dynamically_replaceable() // expected-note {{to match this opening '('}}
func test_dynamic_replacement_for3() {
// expected-error@-1 {{expected ')' after function name for @_dynamicReplacement}}
}