Skip to content

Commit dff96fa

Browse files
Merge pull request #11478 from dotty-staging/fix-i11466
Fix #11466: disallow implicit conversion for <init>
2 parents 8415af7 + fe11e37 commit dff96fa

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2994,7 +2994,7 @@ class Typer extends Namer
29942994
SearchFailure(qual.withType(NestedFailure(ex.toMessage, selectionProto))))
29952995

29962996
// try an implicit conversion or given extension
2997-
if ctx.mode.is(Mode.ImplicitsEnabled) && qual.tpe.isValueType then
2997+
if ctx.mode.is(Mode.ImplicitsEnabled) && !tree.name.isConstructorName && qual.tpe.isValueType then
29982998
trace(i"try insert impl on qualifier $tree $pt") {
29992999
val selProto = selectionProto
30003000
inferView(qual, selProto) match

tests/neg/i11466.scala

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import scala.language.implicitConversions
2+
3+
trait TripleEqualsSupport:
4+
class Equalizer[L](val leftSide: L)
5+
def convertToEqualizer[T](left: T): Equalizer[T]
6+
7+
trait TripleEquals extends TripleEqualsSupport:
8+
implicit override def convertToEqualizer[T](left: T): Equalizer[T] = new Equalizer(left)
9+
10+
class GraphDB[Id]:
11+
class Node private[GraphDB](val id: Id)
12+
13+
object GraphDBSpec extends TripleEquals:
14+
object graph extends GraphDB[String]
15+
import graph.Node
16+
val m = new Node("Alice") // error

0 commit comments

Comments
 (0)