File: fixed_layout_class.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 (129 lines) | stat: -rw-r--r-- 2,628 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129

import resilient_struct


// Fixed-layout, fixed-size base class

@_fixed_layout
open class OutsideParent {
  public final var property: String = "OutsideParent.property"

  open class var classProperty: String {
    return "OutsideParent.classProperty"
  }

  public init() {
    print("OutsideParent.init()")
  }

  open func method() {
    print("OutsideParent.method()")
  }

  open class func classMethod() {
    print("OutsideParent.classMethod()")
  }
}


// Fixed-layout, resiliently-sized base class

@_fixed_layout
open class OutsideParentWithResilientProperty {
  public let p: Point
  public let s: Size
  public let color: Int32

  public final lazy var laziestNumber = 0

  public init(p: Point, s: Size, color: Int32) {
    self.p = p
    self.s = s
    self.color = color
  }
}


// Fixed-layout, fixed-size subclass

@_fixed_layout
open class OutsideChild : OutsideParent {
  public let childProperty: Int = 0

  open override func method() {
    print("OutsideChild.method()")
    super.method()
  }

  open override class func classMethod() {
    print("OutsideChild.classMethod()")
    super.classMethod()
  }
}


// Fixed-layout, dependently-sized, generic base class

@_fixed_layout
open class GenericOutsideParent<A> {
  public final var property: A
  public init(property: A) {
    self.property = property
    print("GenericOutsideParent.init()")
  }

  open func method() {
    print("GenericOutsideParent.method()")
  }

  open class func classMethod() {
    print("GenericOutsideParent.classMethod()")
  }
}


// Fixed-layout, dependently-sized, generic subclass

@_fixed_layout
open class GenericOutsideChild<A> : GenericOutsideParent<A> {
  public final var childProperty: A

  public override init(property: A) {
    self.childProperty = property
    print("GenericOutsideGenericChild.init(a: A)")
    super.init(property: property)
  }

  open override func method() {
    print("GenericOutsideChild.method()")
    super.method()
  }

  open override class func classMethod() {
    print("GenericOutsideChild.classMethod()")
    super.classMethod()
  }
}


// Fixed-layout, fixed-size subclass of generic class

@_fixed_layout
open class ConcreteOutsideChild : GenericOutsideParent<String> {
  public final var childProperty: Int = 0

  public override init(property: String) {
    print("ConcreteOutsideChild.init(property: String)")
    super.init(property: property)
  }

  open override func method() {
    print("ConcreteOutsideChild.method()")
    super.method()
  }

  open override class func classMethod() {
    print("ConcreteOutsideChild.classMethod()")
    super.classMethod()
  }
}