Skip to content

Commit

Permalink
substitute scala.Matchable for Any
Browse files Browse the repository at this point in the history
  • Loading branch information
bishabosha committed Dec 17, 2020
1 parent a4236c4 commit 2d7cf45
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/compiler/scala/tools/nsc/tasty/bridge/NameOps.scala
Expand Up @@ -52,6 +52,7 @@ trait NameOps { self: TastyUniverse =>
final val AnyKind: String = "AnyKind"
final val TupleCons: String = "*:"
final val Tuple: String = "Tuple"
final val Matchable: String = "Matchable"

val ContextFunctionN = raw"ContextFunction(\d+)".r
val FunctionN = raw"Function(\d+)".r
Expand Down
3 changes: 2 additions & 1 deletion src/compiler/scala/tools/nsc/tasty/bridge/TypeOps.scala
Expand Up @@ -346,7 +346,7 @@ trait TypeOps { self: TastyUniverse =>
}

private val SyntheticScala3Type =
raw"^(?:&|\||AnyKind|(?:Context)?Function\d+|\*:|Tuple)$$".r
raw"^(?:&|\||AnyKind|(?:Context)?Function\d+|\*:|Tuple|Matchable)$$".r

def selectType(name: TastyName.TypeName, prefix: Type)(implicit ctx: Context): Type = selectType(name, prefix, prefix)
def selectType(name: TastyName.TypeName, prefix: Type, space: Type)(implicit ctx: Context): Type = {
Expand All @@ -365,6 +365,7 @@ trait TypeOps { self: TastyUniverse =>
case tpnme.TupleCons => genTupleIsUnsupported("scala.*:")
case tpnme.Tuple if !ctx.mode.is(ReadParents) => genTupleIsUnsupported("scala.Tuple")
case tpnme.AnyKind => u.definitions.AnyTpe
case tpnme.Matchable => u.definitions.AnyTpe
case _ => lookupType
}

Expand Down
10 changes: 10 additions & 0 deletions test/tasty/run/src-2/tastytest/TestMatchables.scala
@@ -0,0 +1,10 @@
package tastytest

object TestMatchables extends Suite("TestMatchables") {

test(assert(Matchables.foo == true))
test(assert(Matchables.bar("hello") === "hello"))
test(assert(new Matchables.baz(23).a === 23))
test(assert(new Matchables.qux(5.0).a === 5.0))

}
15 changes: 15 additions & 0 deletions test/tasty/run/src-3/tastytest/Matchables.scala
@@ -0,0 +1,15 @@
package tastytest

object Matchables {

def foo: Matchable = true

def bar[A <: Matchable](a: A) = a match {
case a: A => a
}

class baz[A](val a: A) extends Matchable

class qux[A <: Matchable](val a: A)

}

0 comments on commit 2d7cf45

Please sign in to comment.