mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
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()
21 lines
595 B
Swift
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}}
|
|
}
|