@@ -123,27 +123,17 @@ case class ScaladocTastyInspector()(using ctx: DocContext) extends DocTastyInspe
123
123
topLevels ++= parser.parseRootTree(treeRoot)
124
124
}
125
125
126
- val defn = ctx.compilerContext.definitions
127
-
128
126
if ctx.args.documentSyntheticTypes then
129
- val intrinsicClassDefs = Seq (
130
- defn.AnyClass ,
131
- defn.MatchableClass ,
132
- defn.AnyKindClass ,
133
- defn.AnyValClass ,
134
- defn.NullClass ,
135
- defn.NothingClass ,
136
- defn.SingletonClass ,
137
- defn.andType,
138
- defn.orType,
139
- ).map { s =>
140
- " scala" -> s.asInstanceOf [parser.qctx.reflect.Symbol ].tree.match {
141
- case cd : parser.qctx.reflect.ClassDef => parser.parseClasslike(cd)
142
- case td : parser.qctx.reflect.TypeDef => parser.parseTypeDef(td)
143
- }
127
+ import parser .qctx .reflect ._
128
+ val intrinsicTypeDefs = parser.intrinsicTypeDefs.toSeq.map { s =>
129
+ " scala" -> parser.parseTypeDef(s.tree.asInstanceOf [TypeDef ])
130
+ }
131
+ val intrinsicClassDefs = parser.intrinsicClassDefs.toSeq.map { s =>
132
+ " scala" -> parser.parseClasslike(s.tree.asInstanceOf [ClassDef ])
144
133
}
145
134
topLevels ++= intrinsicClassDefs
146
- val scalaPckg = defn.ScalaPackageVal .asInstanceOf [parser.qctx.reflect.Symbol ]
135
+ topLevels ++= intrinsicTypeDefs
136
+ val scalaPckg = defn.ScalaPackage
147
137
given parser .qctx.type = parser.qctx
148
138
topLevels += " scala" -> Member (scalaPckg.fullName, scalaPckg.dri, Kind .Package )
149
139
topLevels += mergeAnyRefAliasAndObject(parser)
@@ -167,12 +157,13 @@ case class ScaladocTastyInspector()(using ctx: DocContext) extends DocTastyInspe
167
157
}.toList -> rootDoc
168
158
169
159
def mergeAnyRefAliasAndObject (parser : TastyParser ) =
170
- val defn = ctx.compilerContext.definitions
171
- val oM = parser.parseClasslike(defn.ObjectClass .asInstanceOf [parser.qctx.reflect.Symbol ].tree.asInstanceOf [parser.qctx.reflect.ClassDef ])
172
- val aM = parser.parseTypeDef(defn.AnyRefAlias .asInstanceOf [parser.qctx.reflect.Symbol ].tree.asInstanceOf [parser.qctx.reflect.TypeDef ])
160
+ import parser .qctx .reflect ._
161
+ val javaLangObjectDef = defn.ObjectClass .tree.asInstanceOf [ClassDef ]
162
+ val objectMembers = parser.extractPatchedMembers(javaLangObjectDef)
163
+ val aM = parser.parseTypeDef(defn.AnyRefClass .tree.asInstanceOf [TypeDef ])
173
164
" scala" -> aM.copy(
174
- kind = oM.kind ,
175
- members = oM.members
165
+ kind = Kind . Class ( Nil , Nil ) ,
166
+ members = objectMembers
176
167
)
177
168
/** Parses a single Tasty compilation unit. */
178
169
case class TastyParser (
@@ -187,6 +178,25 @@ case class TastyParser(
187
178
188
179
private given qctx .type = qctx
189
180
181
+ val intrinsicClassDefs = Set (
182
+ defn.AnyClass ,
183
+ defn.MatchableClass ,
184
+ defn.ScalaPackage .typeMember(" AnyKind" ),
185
+ defn.AnyValClass ,
186
+ defn.NullClass ,
187
+ defn.NothingClass ,
188
+ defn.ScalaPackage .typeMember(" Singleton" ),
189
+ )
190
+
191
+ val noPosClassDefs = intrinsicClassDefs ++ Set (
192
+ defn.ObjectClass ,
193
+ defn.AnyRefClass
194
+ )
195
+
196
+ val intrinsicTypeDefs = Set (
197
+ defn.ScalaPackage .typeMember(" &" ),
198
+ defn.ScalaPackage .typeMember(" |" ),
199
+ )
190
200
def processTree [T ](tree : Tree )(op : => T ): Option [T ] = try Option (op) catch
191
201
case e : Exception =>
192
202
report.warning(throwableToString(e), tree.pos)
0 commit comments