File tree 5 files changed +105
-1
lines changed
scala-2.11/com/typesafe/genjavadoc
scala-2.12/com/typesafe/genjavadoc
scala-2.13/com/typesafe/genjavadoc 5 files changed +105
-1
lines changed Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ lazy val `genjavadoc-plugin` = (project in file("plugin"))
40
40
val default = (unmanagedSourceDirectories in Compile ).value
41
41
def r (from : String , to : String ) = default.map(f => new java.io.File (f.getPath.replaceAll(from, to)))
42
42
if (scalaVersion.value == " 2.12.0" ) r(""" /scala-2\.12$""" , " /scala-2.11" )
43
- else if (scalaMajorVersion.value == 13 ) r(""" /scala-2\.13[^/]*$""" , " /scala-2.12 " )
43
+ else if (scalaMajorVersion.value == 13 ) r(""" /scala-2\.13[^/]*$""" , " /scala-2.13 " )
44
44
else default
45
45
},
46
46
crossVersion := CrossVersion .full,
File renamed without changes.
Original file line number Diff line number Diff line change
1
+ package com .typesafe .genjavadoc
2
+
3
+ trait NeedsJavaSig { this : TransformCake =>
4
+
5
+ import global ._
6
+ import definitions ._
7
+
8
+ def needsJavaSig (tp : Type ): Boolean =
9
+ ! settings.Ynogenericsig .value && NeedsSigCollector .collect(tp)
10
+
11
+ private object NeedsSigCollector extends TypeCollector (false ) {
12
+ private def rebindInnerClass (pre : Type , cls : Symbol ): Type =
13
+ if (cls.owner.isClass) cls.owner.tpe else pre // why not cls.isNestedClass?
14
+ override def traverse (tp : Type ): Unit = {
15
+ if (! result) {
16
+ tp match {
17
+ case st : SubType =>
18
+ traverse(st.supertype)
19
+ case TypeRef (pre, sym, args) =>
20
+ if (sym == ArrayClass ) args foreach traverse
21
+ else if (sym.isTypeParameterOrSkolem || sym.isExistentiallyBound || ! args.isEmpty) result = true
22
+ else if (sym.isClass) traverse(rebindInnerClass(pre, sym)) // #2585
23
+ else if (! sym.owner.isPackageClass) traverse(pre)
24
+ case PolyType (_, _) | ExistentialType (_, _) =>
25
+ result = true
26
+ case RefinedType (parents, _) =>
27
+ parents foreach traverse
28
+ case ClassInfoType (parents, _, _) =>
29
+ parents foreach traverse
30
+ case at : AnnotatedType =>
31
+ traverse(at.underlying)
32
+ case _ =>
33
+ mapOver(tp)
34
+ }
35
+ }
36
+ }
37
+ }
38
+
39
+ }
40
+
Original file line number Diff line number Diff line change
1
+ package com .typesafe .genjavadoc
2
+ import scala .reflect .internal .util .Position
3
+ import scala .tools .nsc .doc .ScaladocSyntaxAnalyzer
4
+
5
+ trait Comments extends BaseComments { this : TransformCake =>
6
+ val parser = new ScaladocSyntaxAnalyzer [global.type ](global) {
7
+ val runsAfter = List [String ]()
8
+ val runsRightAfter = None
9
+ }
10
+
11
+ override def parseComments (): Unit =
12
+ new parser.ScaladocUnitParser (unit, Nil ) {
13
+ override def newScanner = new parser.ScaladocUnitScanner (unit, Nil ) {
14
+ override def registerDocComment (str : String , pos : Position ) = {
15
+ super .registerDocComment(str, pos)
16
+ comments += pos -> Comment (pos, str)
17
+ }
18
+ }
19
+ }.parse()
20
+ }
Original file line number Diff line number Diff line change
1
+ package com .typesafe .genjavadoc
2
+
3
+ trait NeedsJavaSig { this : TransformCake =>
4
+
5
+ import global ._
6
+ import definitions ._
7
+
8
+ def needsJavaSig (tp : Type ): Boolean =
9
+ ! settings.Ynogenericsig .value && NeedsSigCollector .collect(tp)
10
+
11
+ private object NeedsSigCollector extends TypeCollector (false ) {
12
+ private def rebindInnerClass (pre : Type , cls : Symbol ): Type =
13
+ if (cls.owner.isClass) cls.owner.tpe else pre // why not cls.isNestedClass?
14
+ // the rest is mostly copy and paste from NeedsSigCollector in nsc/transform/Erasure.scala
15
+ @ annotation.tailrec
16
+ private [this ] def untilApply (ts : List [Type ]): Unit =
17
+ if (! ts.isEmpty && ! result) { apply(ts.head) ; untilApply(ts.tail) }
18
+ override def apply (tp : Type ): Unit = {
19
+ if (! result) {
20
+ tp match {
21
+ case st : SubType =>
22
+ apply(st.supertype)
23
+ case TypeRef (pre, sym, args) =>
24
+ if (sym == ArrayClass ) untilApply(args)
25
+ else if (sym.isTypeParameterOrSkolem || sym.isExistentiallyBound || ! args.isEmpty) result = true
26
+ else if (sym.isClass) apply(rebindInnerClass(pre, sym)) // #2585
27
+ else if (! sym.owner.isPackageClass) apply(pre)
28
+ case PolyType (_, _) | ExistentialType (_, _) =>
29
+ result = true
30
+ case RefinedType (parents, _) =>
31
+ untilApply(parents)
32
+ case ClassInfoType (parents, _, _) =>
33
+ untilApply(parents)
34
+ case at : AnnotatedType =>
35
+ apply(at.underlying)
36
+ case _ =>
37
+ tp.foldOver(this )
38
+ }
39
+ }
40
+ }
41
+ }
42
+
43
+ }
44
+
You can’t perform that action at this time.
0 commit comments