-
Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathreuse.swift
54 lines (45 loc) · 1.52 KB
/
reuse.swift
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
// RUN: %empty-directory(%t)
// RUN: %validate-incrparse %s --test-case MODIFY_ACCESSOR
// RUN: %validate-incrparse %s --test-case ADD_PROPERTY
// RUN: %validate-incrparse %s --test-case WRAP_IN_CLASS
// RUN: %validate-incrparse %s --test-case UNWRAP_CLASS
// RUN: %validate-incrparse %s --test-case NEXT_TOKEN_CALCULATION
func start() {}
<reparse MODIFY_ACCESSOR>var someprop: Int {</reparse MODIFY_ACCESSOR>
<reparse MODIFY_ACCESSOR>get {</reparse MODIFY_ACCESSOR>
return 0
<reparse MODIFY_ACCESSOR>}</reparse MODIFY_ACCESSOR>
<reparse MODIFY_ACCESSOR>set { print(<<MODIFY_ACCESSOR<|||0>>>) }</reparse MODIFY_ACCESSOR>
<reparse MODIFY_ACCESSOR>}</reparse MODIFY_ACCESSOR>
<reparse ADD_PROPERTY>struct Foo {</reparse ADD_PROPERTY>
let a: Int
let b: Int
let c: Int
<reparse ADD_PROPERTY>
let d: String
<<ADD_PROPERTY<|||let e_newProp: String>>>
let f: Int
</reparse ADD_PROPERTY>
let g: Int
<reparse ADD_PROPERTY>}</reparse ADD_PROPERTY>
// FIXME: The functions inside the class should not need to get reparsed
<<WRAP_IN_CLASS<|||class Foo {>>>
func foo1() {
print("Hello Foo!")
}
func foo2() {
print("Hello again")
}
<<UNWRAP_CLASS<class Bar {|||>>>
func bar1() {
let pi = 3.1415
print("Pi is (approximately) \(pi)")
}
func bar2() {
print("I can compute Pi as well:")
bar1()
}
}
// The indentation on these lines is important for the test case
let a = "hello"
<reparse NEXT_TOKEN_CALCULATION> let c = "<<NEXT_TOKEN_CALCULATION< |||>>>world"</reparse NEXT_TOKEN_CALCULATION>