aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core/Definitions.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-03-08 11:35:05 +0100
committerMartin Odersky <odersky@gmail.com>2017-03-08 17:50:20 +0100
commitf07697b25294eaafb1c86698c44a699ec1c0d1ba (patch)
tree5a08ac595fc61bfa467ce987728bee6d51839306 /compiler/src/dotty/tools/dotc/core/Definitions.scala
parentc84480960cf618c29705dbaab9332d304a081524 (diff)
downloaddotty-f07697b25294eaafb1c86698c44a699ec1c0d1ba.tar.gz
dotty-f07697b25294eaafb1c86698c44a699ec1c0d1ba.tar.bz2
dotty-f07697b25294eaafb1c86698c44a699ec1c0d1ba.zip
Disallow subtypes of Function1 acting as implicit conversions
The new test `falseView.scala` shows the problem. We might create an implicit value of some type that happens to be a subtype of Function1. We might now expect that this gives us an implicit conversion, this is most often unintended and surprising. See the comment in Implicits#discardForView for a discussion why we picked the particular scheme implemented here.
Diffstat (limited to 'compiler/src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r--compiler/src/dotty/tools/dotc/core/Definitions.scala2
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/Definitions.scala b/compiler/src/dotty/tools/dotc/core/Definitions.scala
index 3cab75f93..fcbb2f974 100644
--- a/compiler/src/dotty/tools/dotc/core/Definitions.scala
+++ b/compiler/src/dotty/tools/dotc/core/Definitions.scala
@@ -299,6 +299,8 @@ class Definitions {
lazy val ScalaPredefModuleRef = ctx.requiredModuleRef("scala.Predef")
def ScalaPredefModule(implicit ctx: Context) = ScalaPredefModuleRef.symbol
+ lazy val Predef_ConformsR = ScalaPredefModule.requiredClass("$less$colon$less").typeRef
+ def Predef_Conforms(implicit ctx: Context) = Predef_ConformsR.symbol
lazy val Predef_conformsR = ScalaPredefModule.requiredMethodRef("$conforms")
def Predef_conforms(implicit ctx: Context) = Predef_conformsR.symbol
lazy val Predef_classOfR = ScalaPredefModule.requiredMethodRef("classOf")