File: ConcreteTypes.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 (73 lines) | stat: -rw-r--r-- 2,172 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
public class Box<Treasure> {
  public let item: Treasure
  public init(item: Treasure) {
    self.item = item
  }
}

public class C {
  public let aClass: C
  public let aStruct: S
  public let anEnum: E
  public let aTuple: (C, S, E, Int)
  public let aTupleWithLabels: (a: C, s: S, e: E)
  public let aMetatype: C.Type
  public let aFunction: (C, S, E, Int) -> (Int)
  public let aFunctionWithVarArgs: (C, S...) -> ()
  public let aFunctionWithInout1: (inout C) -> Void = { _ in }
  public let aFunctionWithInout2: (C, inout Int) -> Void = { _,_ in }
  public let aFunctionWithInout3: (inout C, inout Int) -> Void = { _,_ in }
  public let aFunctionWithShared: (__shared C) -> Void = { _ in }
  public init(aClass: C, aStruct: S, anEnum: E, aTuple: (C, S, E, Int), aTupleWithLabels: (a: C, s: S, e: E), aMetatype: C.Type, aFunction: @escaping (C, S, E, Int) -> Int, aFunctionWithVarArgs: @escaping (C, S...) -> ()) {
    self.aClass = aClass
    self.aStruct = aStruct
    self.anEnum = anEnum
    self.aTuple = aTuple
    self.aTupleWithLabels = aTupleWithLabels
    self.aMetatype = aMetatype
    self.aFunction = aFunction
    self.aFunctionWithVarArgs = aFunctionWithVarArgs
  }
}

public struct S {
  public let aClass: C
  public let aStruct: Box<S>
  public let anEnum: Box<E>
  public let aTuple: (C, Box<S>, Box<E>, Int)
  public let aMetatype: C.Type
  public let aFunction: (C, S, E, Int) -> (Int)
  public let aFunctionWithThinRepresentation: @convention(thin) () -> ()
  public let aFunctionWithCRepresentation: @convention(c) () -> ()

  public struct NestedS {
    public let aField: Int
  }
}

public enum E {
  case Class(C)
  case Struct(S)
  indirect case Enum(E)
  case Function((C,S,E,Int) -> ())
  case Tuple(C, S, Int)
  indirect case IndirectTuple(C, S, E, Int)
  case Metatype(E.Type)
  case NestedStruct(S.NestedS)
  case EmptyCase
}

public struct References {
  public let strongRef: C
  public weak var weakRef: C?
  public unowned var unownedRef: C
  public unowned(unsafe) var unownedUnsafeRef: C
}

private struct PrivateStructField {
  var x: Int16
}

public struct HasArrayOfPrivateStructField {
  private var x: [PrivateStructField]
}