Skip to content

Commit f4f0799

Browse files
committed
Fix enum and export parsing in Scaladoc
1 parent bf29d24 commit f4f0799

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

scaladoc-testcases/src/tests/exports.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class A: //unexpected
2121
= ???
2222
def fn[T, U]: T => U
2323
= ???
24-
object Object //expected: val Obj: Object.type
24+
object Object //expected: final val Obj: Object.type
2525
val x: HKT[List, Int]
2626
= ???
2727
class Class(val a: Int, val b: Int) extends Serializable //expected: final type Class = Class

scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,10 @@ trait ClassLikeSupport:
157157
case rhs => rhs
158158
}.map(_.tpe.termSymbol).filter(_.exists).map(_.tree).map {
159159
case v: ValDef if v.symbol.flags.is(Flags.Module) && !v.symbol.flags.is(Flags.Synthetic) =>
160-
v.symbol.owner -> Symbol.newVal(c.symbol, dd.name, v.tpt.tpe, Flags.Final, Symbol.noSymbol).tree
160+
v.symbol.owner -> Symbol.newVal(v.symbol.owner, dd.name, v.tpt.tpe, Flags.Final, Symbol.noSymbol).tree
161161
case other => other.symbol.owner -> other
162162
}.flatMap { (originalOwner, tree) =>
163-
parseMember(c)(tree)
163+
parseMember(originalOwner.tree.asInstanceOf[ClassDef])(tree)
164164
.map { m => m
165165
.withDRI(dd.symbol.dri)
166166
.withName(dd.symbol.normalizedName)
@@ -302,7 +302,7 @@ trait ClassLikeSupport:
302302

303303
val enumVals = companion.membersToDocument.collect {
304304
case vd: ValDef if !isSyntheticField(vd.symbol) && vd.symbol.flags.is(Flags.Enum) && vd.symbol.flags.is(Flags.Case) => vd
305-
}.toList.map(parseValDef(classDef, _))
305+
}.toList.map(parseValDef(companion, _))
306306

307307
val enumTypes = companion.membersToDocument.collect {
308308
case td: TypeDef if !td.symbol.flags.is(Flags.Synthetic) && td.symbol.flags.is(Flags.Enum) && td.symbol.flags.is(Flags.Case) => td
@@ -487,6 +487,8 @@ trait ClassLikeSupport:
487487
def unwrapMemberInfo(c: ClassDef, symbol: Symbol): MemberInfo =
488488
val baseTypeRepr = typeForClass(c).memberType(symbol)
489489

490+
if symbol.name.contains("obj") then println(baseTypeRepr)
491+
490492
def isSyntheticEvidence(name: String) =
491493
if !name.startsWith(NameKinds.EvidenceParamName.separator) then false else
492494
// This assumes that every parameter that starts with `evidence$` and is implicit is generated by compiler to desugar context bound.

scaladoc/src/dotty/tools/scaladoc/tasty/TypesSupport.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ trait TypesSupport:
253253
case tr @ TermRef(qual, typeName) =>
254254
tr.termSymbol.tree match
255255
case vd: ValDef => inner(vd.tpt.tpe)
256-
case _ => tpe(tr.termSymbol)
256+
case _ => tpe(tr.termSymbol) :+ plain(".type")
257257

258258

259259
// convertTypeOrBoundsToReference(reflect)(qual) match {

0 commit comments

Comments
 (0)