@@ -6,26 +6,9 @@ import dotty.tools.dotc.ast.Trees._
6
6
import org .junit .Assert ._
7
7
import org .junit .Test
8
8
9
- class DottyDocParsingTests extends DottyTest {
10
- def checkDocString (actual : Option [String ], expected : String ): Unit = actual match {
11
- case Some (str) =>
12
- assert(str == expected, s """ Docstring: " $str" didn't match expected " $expected" """ )
13
- case None =>
14
- assert(false , s """ No docstring found, expected: " $expected" """ )
15
- }
16
-
17
- private def defaultAssertion : PartialFunction [Tree [Untyped ], Unit ] = {
18
- case x => assert(false , " Couldn't match resulting AST to expected AST in: " + x.show)
19
- }
9
+ class DottyDocParsingTests extends DottyDocTest {
20
10
21
- private def checkFrontend (source : String )(docAssert : PartialFunction [Tree [Untyped ], Unit ]) = {
22
- checkCompile(" frontend" , source) { (_, ctx) =>
23
- implicit val c = ctx
24
- (docAssert orElse defaultAssertion)(ctx.compilationUnit.untpdTree)
25
- }
26
- }
27
-
28
- @ Test def noComment () = {
11
+ @ Test def noComment = {
29
12
import dotty .tools .dotc .ast .untpd ._
30
13
val source = " class Class"
31
14
@@ -35,7 +18,7 @@ class DottyDocParsingTests extends DottyTest {
35
18
}
36
19
}
37
20
38
- @ Test def singleClassInPackage () = {
21
+ @ Test def singleClassInPackage = {
39
22
val source =
40
23
"""
41
24
|package a
@@ -50,7 +33,7 @@ class DottyDocParsingTests extends DottyTest {
50
33
}
51
34
}
52
35
53
- @ Test def multipleOpenedOnSingleClassInPackage () = {
36
+ @ Test def multipleOpenedOnSingleClassInPackage = {
54
37
val source =
55
38
"""
56
39
|package a
@@ -64,7 +47,7 @@ class DottyDocParsingTests extends DottyTest {
64
47
checkDocString(t.rawComment, " /** Hello /* multiple open */ world! */" )
65
48
}
66
49
}
67
- @ Test def multipleClassesInPackage () = {
50
+ @ Test def multipleClassesInPackage = {
68
51
val source =
69
52
"""
70
53
|package a
@@ -86,7 +69,7 @@ class DottyDocParsingTests extends DottyTest {
86
69
}
87
70
}
88
71
89
- @ Test def singleCaseClassWithoutPackage () = {
72
+ @ Test def singleCaseClassWithoutPackage = {
90
73
val source =
91
74
"""
92
75
|/** Class without package */
@@ -98,15 +81,15 @@ class DottyDocParsingTests extends DottyTest {
98
81
}
99
82
}
100
83
101
- @ Test def SingleTraitWihoutPackage () = {
84
+ @ Test def SingleTraitWihoutPackage = {
102
85
val source = " /** Trait docstring */\n trait Trait"
103
86
104
87
checkFrontend(source) {
105
88
case PackageDef (_, Seq (t @ TypeDef (_,_))) => checkDocString(t.rawComment, " /** Trait docstring */" )
106
89
}
107
90
}
108
91
109
- @ Test def multipleTraitsWithoutPackage () = {
92
+ @ Test def multipleTraitsWithoutPackage = {
110
93
val source =
111
94
"""
112
95
|/** Trait1 docstring */
@@ -124,7 +107,7 @@ class DottyDocParsingTests extends DottyTest {
124
107
}
125
108
}
126
109
127
- @ Test def multipleMixedEntitiesWithPackage () = {
110
+ @ Test def multipleMixedEntitiesWithPackage = {
128
111
val source =
129
112
"""
130
113
|/** Trait1 docstring */
@@ -152,7 +135,7 @@ class DottyDocParsingTests extends DottyTest {
152
135
}
153
136
}
154
137
155
- @ Test def nestedClass () = {
138
+ @ Test def nestedClass = {
156
139
val source =
157
140
"""
158
141
|/** Outer docstring */
@@ -173,7 +156,7 @@ class DottyDocParsingTests extends DottyTest {
173
156
}
174
157
}
175
158
176
- @ Test def nestedClassThenOuter () = {
159
+ @ Test def nestedClassThenOuter = {
177
160
val source =
178
161
"""
179
162
|/** Outer1 docstring */
@@ -198,7 +181,7 @@ class DottyDocParsingTests extends DottyTest {
198
181
}
199
182
}
200
183
201
- @ Test def objects () = {
184
+ @ Test def objects = {
202
185
val source =
203
186
"""
204
187
|package p
@@ -220,7 +203,7 @@ class DottyDocParsingTests extends DottyTest {
220
203
}
221
204
}
222
205
223
- @ Test def objectsNestedClass () = {
206
+ @ Test def objectsNestedClass = {
224
207
val source =
225
208
"""
226
209
|package p
@@ -252,7 +235,7 @@ class DottyDocParsingTests extends DottyTest {
252
235
}
253
236
}
254
237
255
- @ Test def packageObject () = {
238
+ @ Test def packageObject = {
256
239
val source =
257
240
"""
258
241
|/** Package object docstring */
@@ -289,7 +272,7 @@ class DottyDocParsingTests extends DottyTest {
289
272
}
290
273
}
291
274
292
- @ Test def multipleDocStringsBeforeEntity () = {
275
+ @ Test def multipleDocStringsBeforeEntity = {
293
276
val source =
294
277
"""
295
278
|/** First comment */
@@ -305,7 +288,7 @@ class DottyDocParsingTests extends DottyTest {
305
288
}
306
289
}
307
290
308
- @ Test def multipleDocStringsBeforeAndAfter () = {
291
+ @ Test def multipleDocStringsBeforeAndAfter = {
309
292
val source =
310
293
"""
311
294
|/** First comment */
@@ -324,7 +307,7 @@ class DottyDocParsingTests extends DottyTest {
324
307
}
325
308
}
326
309
327
- @ Test def valuesWithDocString () = {
310
+ @ Test def valuesWithDocString = {
328
311
val source =
329
312
"""
330
313
|object Object {
@@ -356,7 +339,7 @@ class DottyDocParsingTests extends DottyTest {
356
339
}
357
340
}
358
341
359
- @ Test def varsWithDocString () = {
342
+ @ Test def varsWithDocString = {
360
343
val source =
361
344
"""
362
345
|object Object {
@@ -388,7 +371,7 @@ class DottyDocParsingTests extends DottyTest {
388
371
}
389
372
}
390
373
391
- @ Test def defsWithDocString () = {
374
+ @ Test def defsWithDocString = {
392
375
val source =
393
376
"""
394
377
|object Object {
@@ -420,7 +403,7 @@ class DottyDocParsingTests extends DottyTest {
420
403
}
421
404
}
422
405
423
- @ Test def typesWithDocString () = {
406
+ @ Test def typesWithDocString = {
424
407
val source =
425
408
"""
426
409
|object Object {
@@ -451,4 +434,26 @@ class DottyDocParsingTests extends DottyTest {
451
434
}
452
435
}
453
436
}
437
+
438
+ @ Test def defInnerClass = {
439
+ val source =
440
+ """
441
+ |object Foo {
442
+ | def foo() = {
443
+ | /** Innermost */
444
+ | class Innermost
445
+ | }
446
+ |}
447
+ """ .stripMargin
448
+
449
+ import dotty .tools .dotc .ast .untpd ._
450
+ checkFrontend(source) {
451
+ case PackageDef (_, Seq (o : ModuleDef )) =>
452
+ o.impl.body match {
453
+ case (foo : MemberDef ) :: Nil =>
454
+ expectNoDocString(foo.rawComment)
455
+ case _ => assert(false , " Incorrect structure inside object" )
456
+ }
457
+ }
458
+ }
454
459
} /* End class */
0 commit comments