Files
swift-mirror/test/SILGen/capture_resilience.swift
Erik Eckstein 70981cf95f tests: fix misspelled check prefixes
Fix the common error of using underscores instead of dashes.
In the rebranch this is an error (lit got more picky), but it also makes sense to fix the tests in the main branch
2022-11-08 17:27:48 +01:00

77 lines
3.9 KiB
Swift

// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -emit-module -enable-library-evolution -emit-module-path=%t/resilient_struct.swiftmodule %S/../Inputs/resilient_struct.swift
// RUN: %target-swift-emit-silgen -I %t -enable-library-evolution %s | %FileCheck %s
import resilient_struct
public struct ResilientStruct {
public init() {}
}
// CHECK-LABEL: sil [ossa] @$s18capture_resilience13hasClosureLetAA15ResilientStructVycyF : $@convention(thin) () -> @owned @callee_guaranteed () -> @out ResilientStruct
public func hasClosureLet() -> () -> ResilientStruct {
let s = ResilientStruct()
// CHECK-LABEL: sil private [ossa] @$s18capture_resilience13hasClosureLetAA15ResilientStructVycyFADycfU_ : $@convention(thin) (ResilientStruct) -> @out ResilientStruct
return { s }
}
// CHECK-LABEL: sil [ossa] @$s18capture_resilience13hasClosureVarAA15ResilientStructVycyF : $@convention(thin) () -> @owned @callee_guaranteed () -> @out ResilientStruct
public func hasClosureVar() -> () -> ResilientStruct {
var s = ResilientStruct()
// CHECK-LABEL: sil private [ossa] @$s18capture_resilience13hasClosureVarAA15ResilientStructVycyFADycfU_ : $@convention(thin) (@guaranteed { var ResilientStruct }) -> @out ResilientStruct
return { s }
}
// CHECK-LABEL: sil [serialized] [ossa] @$s18capture_resilience22hasInlinableClosureLetAA15ResilientStructVycyF : $@convention(thin) () -> @owned @callee_guaranteed () -> @out ResilientStruct
@inlinable public func hasInlinableClosureLet() -> () -> ResilientStruct {
let s = ResilientStruct()
// CHECK-LABEL: sil shared [serialized] [ossa] @$s18capture_resilience22hasInlinableClosureLetAA15ResilientStructVycyFADycfU_ : $@convention(thin) (@in_guaranteed ResilientStruct) -> @out ResilientStruct
return { s }
}
// CHECK-LABEL: sil [serialized] [ossa] @$s18capture_resilience22hasInlinableClosureVarAA15ResilientStructVycyF : $@convention(thin) () -> @owned @callee_guaranteed () -> @out ResilientStruct
@inlinable public func hasInlinableClosureVar() -> () -> ResilientStruct {
var s = ResilientStruct()
// CHECK-LABEL: sil shared [serialized] [ossa] @$s18capture_resilience22hasInlinableClosureVarAA15ResilientStructVycyFADycfU_ : $@convention(thin) (@guaranteed { var ResilientStruct }) -> @out ResilientStruct
return { s }
}
public func consume(_: () -> ResilientStruct) {}
// CHECK-LABEL: sil [ossa] @$s18capture_resilience21hasNoEscapeClosureLetyyF : $@convention(thin) () -> ()
public func hasNoEscapeClosureLet() {
let s = ResilientStruct()
// CHECK-LABEL: sil private [ossa] @$s18capture_resilience21hasNoEscapeClosureLetyyFAA15ResilientStructVyXEfU_ : $@convention(thin) (ResilientStruct) -> @out ResilientStruct
consume { s }
}
// CHECK-LABEL: sil [ossa] @$s18capture_resilience21hasNoEscapeClosureVaryyF : $@convention(thin) () -> ()
public func hasNoEscapeClosureVar() {
var s = ResilientStruct()
// CHECK-LABEL: sil private [ossa] @$s18capture_resilience21hasNoEscapeClosureVaryyFAA15ResilientStructVyXEfU_ : $@convention(thin) (@inout_aliasable ResilientStruct) -> @out ResilientStruct
consume { s }
}
// CHECK-LABEL: sil [serialized] [ossa] @$s18capture_resilience30hasInlinableNoEscapeClosureLetyyF : $@convention(thin) () -> ()
@inlinable public func hasInlinableNoEscapeClosureLet() {
let s = ResilientStruct()
// CHECK-LABEL: sil shared [serialized] [ossa] @$s18capture_resilience30hasInlinableNoEscapeClosureLetyyFAA15ResilientStructVyXEfU_ : $@convention(thin) (@in_guaranteed ResilientStruct) -> @out ResilientStruct
consume { s }
}
// CHECK-LABEL: sil [serialized] [ossa] @$s18capture_resilience30hasInlinableNoEscapeClosureVaryyF : $@convention(thin) () -> ()
@inlinable public func hasInlinableNoEscapeClosureVar() {
var s = ResilientStruct()
// CHECK-LABEL: sil shared [serialized] [ossa] @$s18capture_resilience30hasInlinableNoEscapeClosureVaryyFAA15ResilientStructVyXEfU_ : $@convention(thin) (@inout_aliasable ResilientStruct) -> @out ResilientStruct
consume { s }
}