From 5ad149c4da5fd96280b6de1aecc3d498b9aa363e Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Wed, 21 Oct 2020 13:20:30 +0200 Subject: [PATCH 1/2] Use 3.0.0-M1 nightly as a reference compiler Co-authored-by: Anatolii Kmetiuk Co-authored-by: Jamie Thompson --- library/src-non-bootstrapped/scala/Enum.scala | 10 ---------- library/{src-bootstrapped => src}/scala/Enum.scala | 0 .../{src-bootstrapped => src}/scala/reflect/Enum.scala | 0 project/Build.scala | 2 +- 4 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 library/src-non-bootstrapped/scala/Enum.scala rename library/{src-bootstrapped => src}/scala/Enum.scala (100%) rename library/{src-bootstrapped => src}/scala/reflect/Enum.scala (100%) diff --git a/library/src-non-bootstrapped/scala/Enum.scala b/library/src-non-bootstrapped/scala/Enum.scala deleted file mode 100644 index ff713f90fe11..000000000000 --- a/library/src-non-bootstrapped/scala/Enum.scala +++ /dev/null @@ -1,10 +0,0 @@ -package scala - -/** A base trait of all enum classes */ -trait Enum extends Product, Serializable: - - /** A string uniquely identifying a case of an enum */ - def enumLabel: String - - /** A number uniquely identifying a case of an enum */ - def ordinal: Int diff --git a/library/src-bootstrapped/scala/Enum.scala b/library/src/scala/Enum.scala similarity index 100% rename from library/src-bootstrapped/scala/Enum.scala rename to library/src/scala/Enum.scala diff --git a/library/src-bootstrapped/scala/reflect/Enum.scala b/library/src/scala/reflect/Enum.scala similarity index 100% rename from library/src-bootstrapped/scala/reflect/Enum.scala rename to library/src/scala/reflect/Enum.scala diff --git a/project/Build.scala b/project/Build.scala index 8c3092876a0c..82a79931aa82 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -53,7 +53,7 @@ object MyScalaJSPlugin extends AutoPlugin { } object Build { - val referenceVersion = "0.27.0-RC1" + val referenceVersion = "3.0.0-M1-bin-20201021-97da3cb-NIGHTLY" val baseVersion = "3.0.0-M1" val baseSbtDottyVersion = "0.4.5" From 3a52817bf06e1099a3bbf274fe6566760a56ecb4 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Tue, 6 Oct 2020 16:51:49 +0200 Subject: [PATCH 2/2] Deprecate `given _` import syntax Was superceded by `given` in #9949. --- compiler/src/dotty/tools/backend/jvm/BCodeAsmCommon.scala | 2 +- compiler/src/dotty/tools/backend/jvm/BCodeBodyBuilder.scala | 2 +- compiler/src/dotty/tools/backend/jvm/BCodeHelpers.scala | 4 ++-- compiler/src/dotty/tools/backend/jvm/BCodeIdiomatic.scala | 2 +- compiler/src/dotty/tools/backend/jvm/BCodeSkelBuilder.scala | 2 +- compiler/src/dotty/tools/backend/jvm/BCodeSyncAndTry.scala | 2 +- compiler/src/dotty/tools/backend/jvm/BTypes.scala | 2 +- .../src/dotty/tools/backend/jvm/BTypesFromSymbols.scala | 2 +- compiler/src/dotty/tools/backend/jvm/BytecodeWriters.scala | 2 +- compiler/src/dotty/tools/backend/jvm/CoreBTypes.scala | 2 +- compiler/src/dotty/tools/dotc/config/Feature.scala | 2 +- compiler/src/dotty/tools/dotc/config/SourceVersion.scala | 2 +- compiler/src/dotty/tools/dotc/core/Contexts.scala | 2 +- compiler/src/dotty/tools/dotc/parsing/Parsers.scala | 3 ++- .../src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala | 6 +++--- compiler/src/dotty/tools/dotc/semanticdb/Tools.scala | 2 +- compiler/src/dotty/tools/dotc/typer/Applications.scala | 2 +- compiler/src/dotty/tools/dotc/typer/Docstrings.scala | 2 +- compiler/src/dotty/tools/dotc/typer/Inliner.scala | 2 +- compiler/src/dotty/tools/dotc/typer/Namer.scala | 2 +- compiler/src/dotty/tools/dotc/typer/Typer.scala | 2 +- .../dotty/tools/dotc/parsing/ModifiersParsingTest.scala | 2 +- .../test/dotty/tools/dotc/semanticdb/SemanticdbTests.scala | 2 +- doc-tool/src/dotty/tools/dottydoc/util/syntax.scala | 2 +- tests/neg/i9928.scala | 2 +- tests/run/i9928.scala | 4 ++-- 26 files changed, 31 insertions(+), 30 deletions(-) diff --git a/compiler/src/dotty/tools/backend/jvm/BCodeAsmCommon.scala b/compiler/src/dotty/tools/backend/jvm/BCodeAsmCommon.scala index eb9481382b5b..a7c0a71155ab 100644 --- a/compiler/src/dotty/tools/backend/jvm/BCodeAsmCommon.scala +++ b/compiler/src/dotty/tools/backend/jvm/BCodeAsmCommon.scala @@ -11,7 +11,7 @@ import dotty.tools.dotc.report * the compiler cake (Global). */ final class BCodeAsmCommon[I <: DottyBackendInterface](val interface: I) { - import interface.{_, given _} + import interface.{_, given} import DottyBackendInterface.symExtensions /** diff --git a/compiler/src/dotty/tools/backend/jvm/BCodeBodyBuilder.scala b/compiler/src/dotty/tools/backend/jvm/BCodeBodyBuilder.scala index 51d9e46fac3f..1fe395526b73 100644 --- a/compiler/src/dotty/tools/backend/jvm/BCodeBodyBuilder.scala +++ b/compiler/src/dotty/tools/backend/jvm/BCodeBodyBuilder.scala @@ -33,7 +33,7 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder { // import global._ // import definitions._ import tpd._ - import int.{_, given _} + import int.{_, given} import DottyBackendInterface.symExtensions import bTypes._ import coreBTypes._ diff --git a/compiler/src/dotty/tools/backend/jvm/BCodeHelpers.scala b/compiler/src/dotty/tools/backend/jvm/BCodeHelpers.scala index ddcd15ba8571..20d9e34f0ab0 100644 --- a/compiler/src/dotty/tools/backend/jvm/BCodeHelpers.scala +++ b/compiler/src/dotty/tools/backend/jvm/BCodeHelpers.scala @@ -47,7 +47,7 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { import bTypes._ import tpd._ import coreBTypes._ - import int.{_, given _} + import int.{_, given} import DottyBackendInterface._ def ScalaATTRName: String = "Scala" @@ -468,7 +468,7 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { } // end of trait BCAnnotGen trait BCJGenSigGen { - import int.{_, given _} + import int.{_, given} def getCurrentCUnit(): CompilationUnit diff --git a/compiler/src/dotty/tools/backend/jvm/BCodeIdiomatic.scala b/compiler/src/dotty/tools/backend/jvm/BCodeIdiomatic.scala index 4112dcbeda20..249951f2e94a 100644 --- a/compiler/src/dotty/tools/backend/jvm/BCodeIdiomatic.scala +++ b/compiler/src/dotty/tools/backend/jvm/BCodeIdiomatic.scala @@ -20,7 +20,7 @@ trait BCodeIdiomatic { val int: DottyBackendInterface final lazy val bTypes = new BTypesFromSymbols[int.type](int) - import int.{_, given _} + import int.{_, given} import bTypes._ import coreBTypes._ diff --git a/compiler/src/dotty/tools/backend/jvm/BCodeSkelBuilder.scala b/compiler/src/dotty/tools/backend/jvm/BCodeSkelBuilder.scala index eff9c170c2df..a0f7d96e5535 100644 --- a/compiler/src/dotty/tools/backend/jvm/BCodeSkelBuilder.scala +++ b/compiler/src/dotty/tools/backend/jvm/BCodeSkelBuilder.scala @@ -31,7 +31,7 @@ import dotty.tools.dotc.transform.SymUtils._ * */ trait BCodeSkelBuilder extends BCodeHelpers { - import int.{_, given _} + import int.{_, given} import DottyBackendInterface.{symExtensions, _} import tpd._ import bTypes._ diff --git a/compiler/src/dotty/tools/backend/jvm/BCodeSyncAndTry.scala b/compiler/src/dotty/tools/backend/jvm/BCodeSyncAndTry.scala index ac5748a42d5d..04425b524b93 100644 --- a/compiler/src/dotty/tools/backend/jvm/BCodeSyncAndTry.scala +++ b/compiler/src/dotty/tools/backend/jvm/BCodeSyncAndTry.scala @@ -18,7 +18,7 @@ import dotty.tools.dotc.ast.tpd.TreeOps * */ trait BCodeSyncAndTry extends BCodeBodyBuilder { - import int.{_, given _} + import int.{_, given} import tpd._ import bTypes._ import coreBTypes._ diff --git a/compiler/src/dotty/tools/backend/jvm/BTypes.scala b/compiler/src/dotty/tools/backend/jvm/BTypes.scala index 8b996d0d5bdb..8f4589aba83a 100644 --- a/compiler/src/dotty/tools/backend/jvm/BTypes.scala +++ b/compiler/src/dotty/tools/backend/jvm/BTypes.scala @@ -15,7 +15,7 @@ import scala.tools.asm abstract class BTypes { val int: DottyBackendInterface - import int.{_, given _} + import int.{_, given} /** * A map from internal names to ClassBTypes. Every ClassBType is added to this map on its * construction. diff --git a/compiler/src/dotty/tools/backend/jvm/BTypesFromSymbols.scala b/compiler/src/dotty/tools/backend/jvm/BTypesFromSymbols.scala index 7fb716b00782..48aceb4a183a 100644 --- a/compiler/src/dotty/tools/backend/jvm/BTypesFromSymbols.scala +++ b/compiler/src/dotty/tools/backend/jvm/BTypesFromSymbols.scala @@ -28,7 +28,7 @@ import dotty.tools.dotc.util.WeakHashSet * not have access to the compiler instance. */ class BTypesFromSymbols[I <: DottyBackendInterface](val int: I) extends BTypes { - import int.{_, given _} + import int.{_, given} import DottyBackendInterface.{symExtensions, _} lazy val TransientAttr = requiredClass[scala.transient] diff --git a/compiler/src/dotty/tools/backend/jvm/BytecodeWriters.scala b/compiler/src/dotty/tools/backend/jvm/BytecodeWriters.scala index 4b6b1bf9c858..25874a938526 100644 --- a/compiler/src/dotty/tools/backend/jvm/BytecodeWriters.scala +++ b/compiler/src/dotty/tools/backend/jvm/BytecodeWriters.scala @@ -20,7 +20,7 @@ class FileConflictException(msg: String, val file: AbstractFile) extends IOExcep */ trait BytecodeWriters { val int: DottyBackendInterface - import int.{_, given _} + import int.{_, given} /** * @param clsName cls.getName diff --git a/compiler/src/dotty/tools/backend/jvm/CoreBTypes.scala b/compiler/src/dotty/tools/backend/jvm/CoreBTypes.scala index e15744b995c1..2e4905e7e3a3 100644 --- a/compiler/src/dotty/tools/backend/jvm/CoreBTypes.scala +++ b/compiler/src/dotty/tools/backend/jvm/CoreBTypes.scala @@ -33,7 +33,7 @@ import dotty.tools.dotc.transform.Erasure */ class CoreBTypes[BTFS <: BTypesFromSymbols[_ <: DottyBackendInterface]](val bTypes: BTFS) { import bTypes._ - import int.{_, given _} + import int.{_, given} import DottyBackendInterface._ //import global._ diff --git a/compiler/src/dotty/tools/dotc/config/Feature.scala b/compiler/src/dotty/tools/dotc/config/Feature.scala index 056f2703becb..5c7d5d7dc687 100644 --- a/compiler/src/dotty/tools/dotc/config/Feature.scala +++ b/compiler/src/dotty/tools/dotc/config/Feature.scala @@ -5,7 +5,7 @@ package config import core._ import Contexts._, Symbols._, Names._, NameOps._, Phases._ import StdNames.nme -import Decorators.{_, given _} +import Decorators.{_, given} import util.SrcPos import SourceVersion._ import reporting.Message diff --git a/compiler/src/dotty/tools/dotc/config/SourceVersion.scala b/compiler/src/dotty/tools/dotc/config/SourceVersion.scala index e7b39ac769ac..b6bbe512d93b 100644 --- a/compiler/src/dotty/tools/dotc/config/SourceVersion.scala +++ b/compiler/src/dotty/tools/dotc/config/SourceVersion.scala @@ -5,7 +5,7 @@ package config import core.Contexts._ import core.Names.TermName import core.StdNames.nme -import core.Decorators.{_, given _} +import core.Decorators.{_, given} import util.Property enum SourceVersion: diff --git a/compiler/src/dotty/tools/dotc/core/Contexts.scala b/compiler/src/dotty/tools/dotc/core/Contexts.scala index 4709f97810e0..11c8c135b266 100644 --- a/compiler/src/dotty/tools/dotc/core/Contexts.scala +++ b/compiler/src/dotty/tools/dotc/core/Contexts.scala @@ -16,7 +16,7 @@ import ast.untpd import Flags.GivenOrImplicit import util.{NoSource, SimpleIdentityMap, SourceFile, HashSet} import typer.{Implicits, ImportInfo, Inliner, SearchHistory, SearchRoot, TypeAssigner, Typer, Nullables} -import Nullables.{NotNullInfo, given _} +import Nullables.{NotNullInfo, given} import Implicits.ContextualImplicits import config.Settings._ import config.Config diff --git a/compiler/src/dotty/tools/dotc/parsing/Parsers.scala b/compiler/src/dotty/tools/dotc/parsing/Parsers.scala index ef02100ac55f..eea9977aad21 100644 --- a/compiler/src/dotty/tools/dotc/parsing/Parsers.scala +++ b/compiler/src/dotty/tools/dotc/parsing/Parsers.scala @@ -3117,8 +3117,9 @@ object Parsers { case GIVEN => val start = in.skipToken() if in.token == USCORE then + deprecationWarning(em"`given _` is deprecated in imports; replace with just `given`", start) in.nextToken() - ImportSelector(givenSelectorId(start)) // Let the selector span all of `given _`; needed for -Ytest-pickler + ImportSelector(givenSelectorId(start)) // Let the selector span all of `given`; needed for -Ytest-pickler else if canStartTypeTokens.contains(in.token) then ImportSelector(givenSelectorId(start), bound = rejectWildcardType(infixType())) else diff --git a/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala b/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala index 92e12229d508..e3640ac22626 100644 --- a/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala +++ b/compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala @@ -21,7 +21,7 @@ import dotty.tools.dotc.transform.SymUtils._ import PartialFunction.condOpt -import ast.untpd.{given _} +import ast.untpd.given import NameOps._ import scala.annotation.{ threadUnsafe => tu, tailrec } @@ -32,8 +32,8 @@ import scala.annotation.{ threadUnsafe => tu, tailrec } * TODO: Also extract type information */ class ExtractSemanticDB extends Phase: - import Scala3.{_, given _} - import Symbols.{given _} + import Scala3.{_, given} + import Symbols.given override val phaseName: String = ExtractSemanticDB.name diff --git a/compiler/src/dotty/tools/dotc/semanticdb/Tools.scala b/compiler/src/dotty/tools/dotc/semanticdb/Tools.scala index 4ef5f3cee1d8..50bb0bc41099 100644 --- a/compiler/src/dotty/tools/dotc/semanticdb/Tools.scala +++ b/compiler/src/dotty/tools/dotc/semanticdb/Tools.scala @@ -4,7 +4,7 @@ import java.nio.file._ import java.nio.charset.StandardCharsets import scala.collection.JavaConverters._ import dotty.tools.dotc.util.SourceFile -import dotty.tools.dotc.semanticdb.Scala3.{_, given _} +import dotty.tools.dotc.semanticdb.Scala3.{_, given} object Tools: diff --git a/compiler/src/dotty/tools/dotc/typer/Applications.scala b/compiler/src/dotty/tools/dotc/typer/Applications.scala index e2bb30797380..a8524c51ea4d 100644 --- a/compiler/src/dotty/tools/dotc/typer/Applications.scala +++ b/compiler/src/dotty/tools/dotc/typer/Applications.scala @@ -27,7 +27,7 @@ import Inferencing._ import reporting._ import transform.TypeUtils._ import transform.SymUtils._ -import Nullables.{postProcessByNameArgs, given _} +import Nullables.{postProcessByNameArgs, given} import config.Feature import collection.mutable diff --git a/compiler/src/dotty/tools/dotc/typer/Docstrings.scala b/compiler/src/dotty/tools/dotc/typer/Docstrings.scala index 777f6848eecf..5fefd355d7d8 100644 --- a/compiler/src/dotty/tools/dotc/typer/Docstrings.scala +++ b/compiler/src/dotty/tools/dotc/typer/Docstrings.scala @@ -3,7 +3,7 @@ package dotc package typer import core._ -import Contexts._, Symbols._, Decorators._, Comments.{_, given _} +import Contexts._, Symbols._, Decorators._, Comments.{_, given} import ast.tpd object Docstrings { diff --git a/compiler/src/dotty/tools/dotc/typer/Inliner.scala b/compiler/src/dotty/tools/dotc/typer/Inliner.scala index 00963f1c17f1..2764cb0218d4 100644 --- a/compiler/src/dotty/tools/dotc/typer/Inliner.scala +++ b/compiler/src/dotty/tools/dotc/typer/Inliner.scala @@ -23,7 +23,7 @@ import config.Printers.inlining import ErrorReporting.errorTree import dotty.tools.dotc.util.{SimpleIdentityMap, SimpleIdentitySet, EqHashMap, SourceFile, SourcePosition, SrcPos} import dotty.tools.dotc.parsing.Parsers.Parser -import Nullables.{given _} +import Nullables.given import collection.mutable import reporting.trace diff --git a/compiler/src/dotty/tools/dotc/typer/Namer.scala b/compiler/src/dotty/tools/dotc/typer/Namer.scala index 9e232fd0e8d8..c753150bc4b5 100644 --- a/compiler/src/dotty/tools/dotc/typer/Namer.scala +++ b/compiler/src/dotty/tools/dotc/typer/Namer.scala @@ -6,7 +6,7 @@ import core._ import ast._ import Trees._, StdNames._, Scopes._, Denotations._, NamerOps._, ContextOps._ import Contexts._, Symbols._, Types._, SymDenotations._, Names._, NameOps._, Flags._ -import Decorators._, Comments.{_, given _} +import Decorators._, Comments.{_, given} import NameKinds.DefaultGetterName import TypeApplications.TypeParamInfo import ast.desugar, ast.desugar._ diff --git a/compiler/src/dotty/tools/dotc/typer/Typer.scala b/compiler/src/dotty/tools/dotc/typer/Typer.scala index e3194971539f..a8ae701e3a27 100644 --- a/compiler/src/dotty/tools/dotc/typer/Typer.scala +++ b/compiler/src/dotty/tools/dotc/typer/Typer.scala @@ -44,7 +44,7 @@ import NavigateAST._ import transform.SymUtils._ import transform.TypeUtils._ import reporting._ -import Nullables.{NotNullInfo, given _} +import Nullables.{NotNullInfo, given} import NullOpsDecorator._ object Typer { diff --git a/compiler/test/dotty/tools/dotc/parsing/ModifiersParsingTest.scala b/compiler/test/dotty/tools/dotc/parsing/ModifiersParsingTest.scala index d4338f6f3664..952e8dfbe27f 100644 --- a/compiler/test/dotty/tools/dotc/parsing/ModifiersParsingTest.scala +++ b/compiler/test/dotty/tools/dotc/parsing/ModifiersParsingTest.scala @@ -74,7 +74,7 @@ object ModifiersParsingTest { class ModifiersParsingTest { - import ModifiersParsingTest.{_, given _} + import ModifiersParsingTest.{_, given} @Test def valDef = { diff --git a/compiler/test/dotty/tools/dotc/semanticdb/SemanticdbTests.scala b/compiler/test/dotty/tools/dotc/semanticdb/SemanticdbTests.scala index a8418fafc770..4f643f4102f2 100644 --- a/compiler/test/dotty/tools/dotc/semanticdb/SemanticdbTests.scala +++ b/compiler/test/dotty/tools/dotc/semanticdb/SemanticdbTests.scala @@ -19,7 +19,7 @@ import org.junit.experimental.categories.Category import dotty.BootstrappedOnlyTests import dotty.tools.dotc.Main -import dotty.tools.dotc.semanticdb.Scala3.{given _} +import dotty.tools.dotc.semanticdb.Scala3.given import dotty.tools.dotc.util.SourceFile @main def updateExpect = diff --git a/doc-tool/src/dotty/tools/dottydoc/util/syntax.scala b/doc-tool/src/dotty/tools/dottydoc/util/syntax.scala index 36bcc7ba04db..486cdff6d8fa 100644 --- a/doc-tool/src/dotty/tools/dottydoc/util/syntax.scala +++ b/doc-tool/src/dotty/tools/dottydoc/util/syntax.scala @@ -3,7 +3,7 @@ package dottydoc package util import dotc.core.Contexts.{Context, ctx} -import dotc.core.Comments.{_, given _} +import dotc.core.Comments.{_, given} import model.Package import core.ContextDottydoc import dotc.core.Symbols._ diff --git a/tests/neg/i9928.scala b/tests/neg/i9928.scala index a7c9e77dfb23..cfe9cf663a85 100644 --- a/tests/neg/i9928.scala +++ b/tests/neg/i9928.scala @@ -9,7 +9,7 @@ object Magic: opaque type Foo = String object Foo: - import Magic.{given _} + import Magic.given def apply(s: String): Foo = s given Magic[Foo]: diff --git a/tests/run/i9928.scala b/tests/run/i9928.scala index e66fa064cb74..6e4149ef6538 100644 --- a/tests/run/i9928.scala +++ b/tests/run/i9928.scala @@ -12,7 +12,7 @@ object test1: opaque type Foo = String object Foo extends LowPrio: - import Magic.{given _} + import Magic.given def apply(s: String): Foo = s given Magic[Foo]: @@ -32,7 +32,7 @@ object test2: opaque type Foo = String object Foo extends LowPrio: - import Magic.{given _} + import Magic.given def apply(s: String): Foo = s def test: Unit =