File: SemicolonTests.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 (151 lines) | stat: -rw-r--r-- 2,733 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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2023 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//

// This test file has been translated from swift/test/Parse/semicolon.swift

import XCTest

final class SemicolonTests: ParserTestCase {
  func testSemicolon1() {
    assertParse(
      #"""
      let a = 42;
      var b = "b";
      """#
    )
  }

  func testSemicolon2() {
    assertParse(
      """
      struct A {
          var a1: Int;
          let a2: Int ;
          var a3: Int;let a4: Int
          var a5: Int; let a6: Int;
      };
      """
    )
  }

  func testSemicolon3() {
    assertParse(
      """
      enum B {
          case B1;
          case B2(value: Int);
          case B3
          case B4; case B5 ; case B6;
      };
      """
    )
  }

  func testSemicolon4() {
    assertParse(
      """
      class C {
          var x: Int;
          let y = 3.14159;
          init(x: Int) { self.x = x; }
      };
      """
    )
  }

  func testSemicolon5() {
    assertParse(
      """
      typealias C1 = C;
      """
    )
  }

  func testSemicolon6() {
    assertParse(
      """
      protocol D {
          var foo: () -> Int { get };
      }
      """
    )
  }

  func testSemicolon7() {
    assertParse(
      """
      struct D1: D {
          let foo = { return 42; };
      }
      func e() -> Bool {
          return false;
      }
      """
    )
  }

  func testSemicolon8() {
    assertParse(
      """
      import Swift;
      """
    )
  }

  func testSemicolon9() {
    assertParse(
      """
      for i in 1..<1000 {
          if i % 2 == 1 {
              break;
          };
      }
      """
    )
  }

  func testSemicolon10() {
    assertParse(
      """
      let six = (1..<3).reduce(0, +);
      """
    )
  }

  func testSemicolon11() {
    assertParse(
      """
      func lessThanTwo(input: UInt) -> Bool {
          switch input {
          case 0:     return true;
          case 1, 2:  return true;
          default:
              return false;
          }
      }
      """
    )
  }

  func testSemicolon12() {
    assertParse(
      """
      enum StarWars {
          enum Quality { case 😀; case 🙂; case 😐; case 😏; case 😞 };
          case Ep4; case Ep5; case Ep6
          case Ep1, Ep2; case Ep3;
      };
      """
    )
  }

}