@@ -2,6 +2,7 @@ package scala.tools.refactoring.tests
2
2
package sourcegen
3
3
4
4
import scala .reflect .internal .util .BatchSourceFile
5
+ import scala .tools .nsc .ast .parser .Tokens
5
6
import scala .tools .refactoring .common .SilentTracing
6
7
import scala .tools .refactoring .sourcegen .EmptyFragment
7
8
import scala .tools .refactoring .sourcegen .Fragment
@@ -44,9 +45,11 @@ class ReusingPrinterTest extends TestHelper with SilentTracing {
44
45
45
46
@ Test
46
47
def add_return_type_to_def () = """
48
+ package add_return_type_to_def
47
49
object X {
48
50
def value = new java.io.File("")
49
51
}""" becomes """
52
+ package add_return_type_to_def
50
53
object X {
51
54
def value: java.io.File = new java.io.File("")
52
55
}""" after topdown { matchingChildren { transform {
@@ -57,9 +60,11 @@ class ReusingPrinterTest extends TestHelper with SilentTracing {
57
60
58
61
@ Test
59
62
def add_return_type_to_val () = """
63
+ package add_return_type_to_val
60
64
object X {
61
65
val value = new java.io.File("")
62
66
}""" becomes """
67
+ package add_return_type_to_val
63
68
object X {
64
69
val value: java.io.File = new java.io.File("")
65
70
}
@@ -71,9 +76,11 @@ class ReusingPrinterTest extends TestHelper with SilentTracing {
71
76
72
77
@ Test
73
78
def add_return_type_to_var () = """
79
+ package add_return_type_to_var
74
80
object X {
75
81
var variable = new java.io.File("")
76
82
}""" becomes """
83
+ package add_return_type_to_var
77
84
object X {
78
85
var variable: java.io.File = new java.io.File("")
79
86
}
@@ -85,13 +92,15 @@ class ReusingPrinterTest extends TestHelper with SilentTracing {
85
92
86
93
@ Test
87
94
def add_override_flag () = """
95
+ package add_override_flag
88
96
trait T {
89
97
def meth: Int
90
98
}
91
99
trait TT extends T {
92
- override def meth = 0
100
+ def meth = 0
93
101
}
94
102
""" becomes """
103
+ package add_override_flag
95
104
trait T {
96
105
def meth: Int
97
106
}
@@ -109,15 +118,45 @@ class ReusingPrinterTest extends TestHelper with SilentTracing {
109
118
}
110
119
}}
111
120
121
+ @ Test
122
+ def add_override_final_flags_to_lazy_val () = """
123
+ package add_override_final_flags_to_lazy_val
124
+ trait T {
125
+ def meth: Int
126
+ }
127
+ trait TT extends T {
128
+ lazy val meth = 0
129
+ }
130
+ """ becomes """
131
+ package add_override_final_flags_to_lazy_val
132
+ trait T {
133
+ def meth: Int
134
+ }
135
+ trait TT extends T {
136
+ override final lazy val meth = 0
137
+ }
138
+ """ after topdown { matchingChildren {
139
+ filter {
140
+ case d : DefDef =>
141
+ d.symbol.isLazy
142
+ } &>
143
+ transform {
144
+ case d : DefDef =>
145
+ d.copy(mods = d.mods.withFlag(Flag .OVERRIDE ).withFlag(Flag .FINAL ).withFlag(Flag .LAZY ).withFlag(Tokens .VAL )) replaces d
146
+ }
147
+ }}
148
+
112
149
@ Test
113
150
def add_override_protected_abstract_flag () = """
151
+ package add_override_protected_abstract_flag
114
152
trait T {
115
153
protected def meth: Int = 0
116
154
}
117
155
trait TT extends T {
118
156
def meth = super.meth + 0
119
157
}
120
158
""" becomes """
159
+ package add_override_protected_abstract_flag
121
160
trait T {
122
161
protected def meth: Int = 0
123
162
}
@@ -137,8 +176,10 @@ class ReusingPrinterTest extends TestHelper with SilentTracing {
137
176
138
177
@ Test
139
178
def add_final_case_flag () = """
179
+ package add_final_case_flag
140
180
class C(i: Int)
141
181
""" becomes """
182
+ package add_final_case_flag
142
183
private final case class C(i: Int)
143
184
""" after topdown { matchingChildren {
144
185
transform {
@@ -149,13 +190,15 @@ class ReusingPrinterTest extends TestHelper with SilentTracing {
149
190
150
191
@ Test
151
192
def add_modifier_to_def_without_return_type () = """
193
+ package add_modifier_to_def_without_return_type
152
194
trait T {
153
195
def meth: Int
154
196
}
155
197
trait TT extends T {
156
198
def meth
157
199
}
158
200
""" becomes """
201
+ package add_modifier_to_def_without_return_type
159
202
trait T {
160
203
def meth: Int
161
204
}
@@ -175,13 +218,15 @@ class ReusingPrinterTest extends TestHelper with SilentTracing {
175
218
176
219
@ Test
177
220
def add_modifier_to_val_without_return_type () = """
221
+ package add_modifier_to_val_without_return_type
178
222
trait T {
179
223
def meth: Int
180
224
}
181
225
trait TT extends T {
182
226
val meth
183
227
}
184
228
""" becomes """
229
+ package add_modifier_to_val_without_return_type
185
230
trait T {
186
231
def meth: Int
187
232
}
0 commit comments