Skip to content

Commit 4b75572

Browse files
authored
Merge pull request #7378 from Lacaranian/more-sjs-tests
Partial fix for lampepfl#7113: Fix Scala.js codegen for Null/Nothing types
2 parents 1725a67 + faec468 commit 4b75572

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

compiler/src/dotty/tools/backend/sjs/JSEncoding.scala

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,17 @@ object JSEncoding {
410410
paramAndResultTypeNames.mkString(SignatureSep, SignatureSep, "")
411411

412412
/** Computes the internal name for a type. */
413-
private def internalName(tpe: Type)(implicit ctx: Context): String =
414-
encodeTypeRef(toTypeRef(tpe))
413+
private def internalName(tpe: Type)(implicit ctx: Context): String = {
414+
val typeRef = toTypeRef(tpe)
415+
416+
val safeTypeRef: jstpe.TypeRef = typeRef match {
417+
case jstpe.ClassRef("s_Null") => jstpe.ClassRef(ir.Definitions.NullClass)
418+
case jstpe.ClassRef("s_Nothing") => jstpe.ClassRef(ir.Definitions.NothingClass)
419+
case otherTypeRef => otherTypeRef
420+
}
421+
422+
encodeTypeRef(safeTypeRef)
423+
}
415424

416425
/** Encodes a [[Types.TypeRef]], such as in an encoded method signature.
417426
*/

project/Build.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -960,7 +960,7 @@ object Build {
960960
++ (dir / "shared/src/test/scala/org/scalajs/testsuite/javalib/lang" ** (("*.scala": FileFilter) -- "StringTest.scala")).get
961961
++ (dir / "shared/src/test/scala/org/scalajs/testsuite/javalib/io" ** (("*.scala": FileFilter) -- "ByteArrayInputStreamTest.scala" -- "ByteArrayOutputStreamTest.scala" -- "DataInputStreamTest.scala" -- "DataOutputStreamTest.scala" -- "InputStreamTest.scala" -- "OutputStreamWriterTest.scala" -- "PrintStreamTest.scala" -- "CommonStreamsTests.scala")).get
962962
++ (dir / "shared/src/test/scala/org/scalajs/testsuite/javalib/math" ** "*.scala").get
963-
++ (dir / "shared/src/test/scala/org/scalajs/testsuite/javalib/net" ** (("*.scala": FileFilter) -- "URITest.scala")).get
963+
++ (dir / "shared/src/test/scala/org/scalajs/testsuite/javalib/net" ** "*.scala").get
964964
++ (dir / "shared/src/test/scala/org/scalajs/testsuite/javalib/security" ** "*.scala").get
965965
++ (dir / "shared/src/test/scala/org/scalajs/testsuite/javalib/util/regex" ** "*.scala").get
966966
++ (dir / "shared/src/test/scala/org/scalajs/testsuite/javalib/util/concurrent" ** (("*.scala": FileFilter) -- "ConcurrentHashMapTest.scala" -- "ConcurrentLinkedQueueTest.scala" -- "ConcurrentMapTest.scala" -- "ConcurrentSkipListSetTest.scala" -- "CopyOnWriteArrayListTest.scala")).get

0 commit comments

Comments
 (0)