@@ -1410,23 +1410,27 @@ object SymDenotations {
1410
1410
def namedType (using Context ): NamedType =
1411
1411
if (isType) typeRef else termRef
1412
1412
1413
- /** The typeRef where `pre.O$.this` is changed to `pre.O.type` if `O` is a non-static object
1413
+ /** Like typeRef, but objects in the prefix are represented by their singleton type,
1414
+ * this means we output `pre.O.member` rather than `pre.O$.this.member`.
1414
1415
*
1415
1416
* This is required to avoid owner crash in ExplicitOuter.
1416
1417
* See tests/pos/i10769.scala
1417
1418
*/
1418
1419
def reachableTypeRef (using Context ) =
1419
1420
TypeRef (owner.reachableThisType, symbol)
1420
1421
1421
- /** The termRef where `pre.O$.this` is changed to `pre.O.type` if `O` is a non-static object
1422
+ /** Like termRef, but objects in the prefix are represented by their singleton type,
1423
+ * this means we output `pre.O.member` rather than `pre.O$.this.member`.
1422
1424
*
1423
1425
* This is required to avoid owner crash in ExplicitOuter.
1424
1426
* See tests/pos/i10769.scala
1425
1427
*/
1426
1428
def reachableTermRef (using Context ) =
1427
1429
TermRef (owner.reachableThisType, symbol)
1428
1430
1429
- /** The thisType where `pre.O$.this` is changed to `pre.O.type` if `O` is a non-static object */
1431
+ /** Like thisType, but objects in the type are represented by their singleton type,
1432
+ * this means we output `pre.O.member` rather than `pre.O$.this.member`.
1433
+ */
1430
1434
def reachableThisType (using Context ): Type =
1431
1435
if this .is(Package ) then
1432
1436
symbol.thisType
0 commit comments