File: function-template-module-interface.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (29 lines) | stat: -rw-r--r-- 1,345 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// RUN: %target-swift-ide-test -print-module -module-to-print=FunctionTemplates -I %S/Inputs -source-filename=x -enable-experimental-cxx-interop | %FileCheck %s

// CHECK: func addSameTypeParams<T>(_ a: T, _ b: T) -> T
// CHECK: func addMixedTypeParams<A, B>(_ a: A, _ b: B) -> A
// CHECK: func passThrough<T>(_ value: T) -> T
// CHECK: func passThroughConst<T>(_ value: T) -> T
// CHECK: func templateParameterReturnType<R, T, U>(_ a: T, _ b: U) -> R
// CHECK: func cannotInferTemplate<T>(T: T.Type)

// CHECK: struct HasVariadicMember {
// CHECK:   @available(*, unavailable, message: "Variadic function is unavailable")
// CHECK:   mutating func test1(_ varargs: Any...)
// CHECK:   @available(*, unavailable, message: "Variadic function is unavailable")
// CHECK:   mutating func test2(_: Int32, _ varargs: Any...)
// CHECK: }

// TODO: import functions that take a pointer to a dependent type (rdar://90587703).
// CHECK-NOT: func takesPointerToDependent
// CHECK-NOT: func takesDeclTypePointer

// CHECK: func lvalueReference<T>(_ ref: inout T)
// CHECK: func constLvalueReference<T>(_: T)
// CHECK: func PointerTemplateParameter<T>(_: UnsafeMutablePointer<T>)

// CHECK: enum Orbiters {
// CHECK:   static func galileo<T>(_: T)
// CHECK:   static func cassini<T, U>(_: T, _: U)
// CHECK:   static func magellan<T>(_: inout T)
// CHECK: }