Skip to content

Commit 27804de

Browse files
committed
Drop support for extension_ names
1 parent 04e2a56 commit 27804de

File tree

5 files changed

+10
-42
lines changed

5 files changed

+10
-42
lines changed

compiler/src/dotty/tools/dotc/core/NameOps.scala

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -137,21 +137,6 @@ object NameOps {
137137
else name.toTermName
138138
}
139139

140-
/** Does the name match `extension`? */
141-
def isExtension: Boolean = name match
142-
case name: SimpleName =>
143-
name.length == "extension".length && name.startsWith("extension")
144-
case _ => false
145-
146-
/** Does this name start with `extension_`? */
147-
def isExtensionName: Boolean = name match
148-
case name: SimpleName => name.startsWith("extension_")
149-
case _ => false
150-
151-
// TODO: Drop next 3 methods once extension names have stabilized
152-
/** Add an `extension_` in front of this name */
153-
def toExtensionName(using Context): SimpleName = "extension_".concat(name)
154-
155140
/** The expanded name.
156141
* This is the fully qualified name of `base` with `ExpandPrefixName` as separator,
157142
* followed by `kind` and the name.

compiler/src/dotty/tools/dotc/transform/PostTyper.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -383,8 +383,7 @@ class PostTyper extends MacroTransform with IdentityDenotTransformer { thisPhase
383383

384384
def checkIdent(sel: untpd.ImportSelector): Unit =
385385
if !exprTpe.member(sel.name).exists
386-
&& !exprTpe.member(sel.name.toTypeName).exists
387-
&& !exprTpe.member(sel.name.toExtensionName).exists then
386+
&& !exprTpe.member(sel.name.toTypeName).exists then
388387
report.error(NotAMember(exprTpe, sel.name, "value"), sel.imported.srcPos)
389388
if seen.contains(sel.name) then
390389
report.error(ImportRenamedTwice(sel.imported), sel.imported.srcPos)

compiler/src/dotty/tools/dotc/typer/Implicits.scala

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ object Implicits:
7676
*/
7777
def hasExtMethod(tp: Type, expected: Type)(using Context) = expected match
7878
case selProto @ SelectionProto(selName: TermName, _, _, _) =>
79-
tp.memberBasedOnFlags(selName, required = ExtensionMethod).exists
80-
|| tp.memberBasedOnFlags(selProto.extensionName, required = ExtensionMethod).exists
81-
case _ => false
79+
tp.memberBasedOnFlags(selName, required = ExtensionMethod).exists
80+
case _ =>
81+
false
8282

8383
def strictEquality(using Context): Boolean =
8484
ctx.mode.is(Mode.StrictEquality) || Feature.enabled(nme.strictEquality)
@@ -1023,12 +1023,7 @@ trait Implicits:
10231023
pt match
10241024
case selProto @ SelectionProto(selName: TermName, mbrType, _, _) if cand.isExtension =>
10251025
def tryExtension(using Context) =
1026-
val xname =
1027-
if ref.memberBasedOnFlags(selProto.extensionName, required = ExtensionMethod).exists then
1028-
selProto.extensionName
1029-
else
1030-
selName
1031-
extMethodApply(untpd.Select(untpdGenerated, xname), argument, mbrType)
1026+
extMethodApply(untpd.Select(untpdGenerated, selName), argument, mbrType)
10321027
if cand.isConversion then
10331028
val extensionCtx, conversionCtx = ctx.fresh.setNewTyperState()
10341029
val extensionResult = tryExtension(using extensionCtx)

compiler/src/dotty/tools/dotc/typer/ProtoTypes.scala

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,6 @@ object ProtoTypes {
147147
abstract case class SelectionProto(name: Name, memberProto: Type, compat: Compatibility, privateOK: Boolean)
148148
extends CachedProxyType with ProtoType with ValueTypeOrProto {
149149

150-
private var myExtensionName: TermName = null
151-
def extensionName(using Context): TermName =
152-
if myExtensionName == null then myExtensionName = name.toExtensionName
153-
myExtensionName
154-
155150
/** Is the set of members of this type unknown? This is the case if:
156151
* 1. The type has Nothing or Wildcard as a prefix or underlying type
157152
* 2. The type has an uninstantiated TypeVar as a prefix or underlying type,
@@ -447,8 +442,7 @@ object ProtoTypes {
447442
ctx.typer.isApplicableType(tp, argType :: Nil, resultType) || {
448443
resType match {
449444
case selProto @ SelectionProto(selName: TermName, mbrType, _, _) =>
450-
ctx.typer.hasExtensionMethodNamed(tp, selName, argType, mbrType)
451-
|| ctx.typer.hasExtensionMethodNamed(tp, selProto.extensionName, argType, mbrType)
445+
ctx.typer.hasExtensionMethodNamed(tp, selName, argType, mbrType)
452446
//.reporting(i"has ext $tp $name $argType $mbrType: $result")
453447
case _ =>
454448
false

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3345,11 +3345,8 @@ class Typer extends Namer
33453345
// implicit conversion to the receiver type.
33463346
def sharpenedPt = pt match
33473347
case pt: SelectionProto
3348-
if pt.name.isExtensionName
3349-
|| pt.memberProto.revealIgnored.isExtensionApplyProto =>
3350-
pt.deepenProto
3351-
case _ =>
3352-
pt
3348+
if pt.memberProto.revealIgnored.isExtensionApplyProto => pt.deepenProto
3349+
case _ => pt
33533350

33543351
def adaptNoArgs(wtp: Type): Tree = {
33553352
val ptNorm = underlyingApplied(pt)
@@ -3501,10 +3498,8 @@ class Typer extends Namer
35013498
findRef(selName, WildcardType, ExtensionMethod, EmptyFlags, tree.srcPos) match
35023499
case ref: TermRef =>
35033500
extMethodApply(untpd.ref(ref).withSpan(tree.span), tree, mbrType)
3504-
case _ => findRef(selProto.extensionName, WildcardType, ExtensionMethod, EmptyFlags, tree.srcPos) match
3505-
case ref: TermRef =>
3506-
extMethodApply(untpd.ref(ref).withSpan(tree.span), tree, mbrType)
3507-
case _ => EmptyTree
3501+
case _ =>
3502+
EmptyTree
35083503

35093504
try
35103505
val nestedCtx = ctx.fresh.setNewTyperState()

0 commit comments

Comments
 (0)