Skip to content

Commit

Permalink
Backport "Add regression test for issue 18726" to LTS (#22125)
Browse files Browse the repository at this point in the history
Backports #20318 to the 3.3.5.

PR submitted by the release tooling.
[skip ci]
  • Loading branch information
WojciechMazur authored Dec 4, 2024
2 parents c3bc662 + b33eb4f commit dd10877
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 2 deletions.
1 change: 0 additions & 1 deletion compiler/src/dotty/tools/dotc/interactive/Completion.scala
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,6 @@ object Completion:
if denot.isType then denot.symbol.showFullName
else denot.info.widenTermRefExpr.show


def isInNewContext(untpdPath: List[untpd.Tree]): Boolean =
untpdPath match
case _ :: untpd.New(selectOrIdent: (untpd.Select | untpd.Ident)) :: _ => true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ case class ScalaPresentationCompiler(
val scalaVersion = BuildInfo.scalaVersion

private val forbiddenOptions = Set("-print-lines", "-print-tasty")
private val forbiddenDoubleOptions = Set("-release")
private val forbiddenDoubleOptions = Set.empty[String]

given ReportContext =
folderPath
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package dotty.tools.pc.tests.completion

import dotty.tools.pc.base.BaseCompletionSuite

import org.junit.Test
import org.junit.Before
import java.nio.file.Path
import dotty.tools.pc.utils.JRE

class CompletionRelease11Suite extends BaseCompletionSuite:

override protected def scalacOptions(classpath: Seq[Path]): Seq[String] =
"-release:11" +: super.scalacOptions(classpath)

@Before
def beforeMethod(): Unit =
org.junit.Assume.assumeTrue(JRE.getJavaMajorVersion >= 11)

@Test def java11Symbols =
check(
"""
|object A {
| "".repea@@
|}""".stripMargin,
"""repeat(x$0: Int): String
|replaceAll(x$0: String, x$1: String): String
|prependedAll[B >: A](prefix: IterableOnce[B]): IndexedSeq[B]
|prependedAll(prefix: String): String
|prependedAll[B >: Char](prefix: IterableOnce[B]): IndexedSeq[B]
|replaceAllLiterally(literal: String, replacement: String): String
|""".stripMargin
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package dotty.tools.pc.tests.completion

import dotty.tools.pc.base.BaseCompletionSuite

import org.junit.Test
import org.junit.Before
import java.nio.file.Path
import dotty.tools.pc.utils.JRE

class CompletionRelease8Suite extends BaseCompletionSuite:

override protected def scalacOptions(classpath: Seq[Path]): Seq[String] =
"-release:8" +: super.scalacOptions(classpath)

@Before
def beforeMethod(): Unit =
org.junit.Assume.assumeTrue(JRE.getJavaMajorVersion >= 8)

@Test def noJvm11Symbols =
check(
"""
|object A {
| "".repea@@
|}""".stripMargin,
"""replaceAll(x$0: String, x$1: String): String
|prependedAll[B >: A](prefix: IterableOnce[B]): IndexedSeq[B]
|prependedAll(prefix: String): String
|prependedAll[B >: Char](prefix: IterableOnce[B]): IndexedSeq[B]
|replaceAllLiterally(literal: String, replacement: String): String
|""".stripMargin
)
13 changes: 13 additions & 0 deletions presentation-compiler/test/dotty/tools/pc/utils/JRE.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package dotty.tools.pc.utils

object JRE:

def getJavaMajorVersion: Int =
val javaVersion = sys.env.get("java.specification.version").filter(!_.isEmpty())

javaVersion match
case Some(version) if version.startsWith("1.8") => 8
case Some(version) => version.toInt // it is better to crash during tests than to run incorrect suite
case None => 8


0 comments on commit dd10877

Please sign in to comment.