Skip to content

Commit ad5da9e

Browse files
Non-final implicit classes in stdlib-bootstrapped (scala#17983)
2 parents eb84bdd + e05633d commit ad5da9e

File tree

2 files changed

+2
-4
lines changed

2 files changed

+2
-4
lines changed

compiler/src/dotty/tools/dotc/ast/Desugar.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -811,12 +811,13 @@ object desugar {
811811
// TODO: drop this once we do not silently insert empty class parameters anymore
812812
case paramss => paramss
813813
}
814+
val finalFlag = if ctx.settings.Yscala2Stdlib.value then EmptyFlags else Final
814815
// implicit wrapper is typechecked in same scope as constructor, so
815816
// we can reuse the constructor parameters; no derived params are needed.
816817
DefDef(
817818
className.toTermName, joinParams(constrTparams, defParamss),
818819
classTypeRef, creatorExpr)
819-
.withMods(companionMods | mods.flags.toTermFlags & (GivenOrImplicit | Inline) | Final)
820+
.withMods(companionMods | mods.flags.toTermFlags & (GivenOrImplicit | Inline) | finalFlag)
820821
.withSpan(cdef.span) :: Nil
821822
}
822823

project/TastyMiMaFilters.scala

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,6 @@ object TastyMiMaFilters {
131131
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.IterableWrapperTrait.iterator"),
132132
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.util.matching.Regex.MatchIterator.replacementData"), // before: scala.Any; after: scala.collection.AbstractIterator[scala.util.matching.Regex] & scala.util.matching.Regex.Replacement
133133

134-
// Problem: implicit class (method should not be final)
135-
ProblemMatcher.make(ProblemKind.FinalMember, "scala.collection.convert.*.*"),
136-
137134
// Problem: implicit class
138135
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterableLowPriority.is*LikeIsIterable"),
139136
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterableOnce.iterableOnceIsIterableOnce"),

0 commit comments

Comments
 (0)