Skip to content

Commit a8cc133

Browse files
committed
Drop redundant exact distinction in Setup
This is now redundant since result types of overriding ValDefs and DefDefs are now mapped to TypeTrees in PostTyper.
1 parent 8584a9a commit a8cc133

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

compiler/src/dotty/tools/dotc/cc/Setup.scala

+4-6
Original file line numberDiff line numberDiff line change
@@ -330,10 +330,10 @@ class Setup extends PreRecheck, SymTransformer, SetupAPI:
330330
end transformExplicitType
331331

332332
/** Transform type of type tree, and remember the transformed type as the type the tree */
333-
private def transformTT(tree: TypeTree, boxed: Boolean, exact: Boolean)(using Context): Unit =
333+
private def transformTT(tree: TypeTree, boxed: Boolean)(using Context): Unit =
334334
if !tree.hasRememberedType then
335335
val transformed =
336-
if tree.isInstanceOf[InferredTypeTree] && !exact
336+
if tree.isInferred
337337
then transformInferredType(tree.tpe)
338338
else transformExplicitType(tree.tpe, tptToCheck = Some(tree))
339339
tree.rememberType(if boxed then box(transformed) else transformed)
@@ -398,8 +398,6 @@ class Setup extends PreRecheck, SymTransformer, SetupAPI:
398398
&& !ccConfig.useSealed
399399
&& !sym.hasAnnotation(defn.UncheckedCapturesAnnot),
400400
// types of mutable variables are boxed in pre 3.3 code
401-
exact = sym.allOverriddenSymbols.hasNext,
402-
// types of symbols that override a parent don't get a capture set TODO drop
403401
)
404402
catch case ex: IllegalCaptureRef =>
405403
capt.println(i"fail while transforming result type $tpt of $sym")
@@ -442,7 +440,7 @@ class Setup extends PreRecheck, SymTransformer, SetupAPI:
442440
traverse(fn)
443441
if !defn.isTypeTestOrCast(fn.symbol) then
444442
for case arg: TypeTree <- args do
445-
transformTT(arg, boxed = true, exact = false) // type arguments in type applications are boxed
443+
transformTT(arg, boxed = true) // type arguments in type applications are boxed
446444

447445
case tree: TypeDef if tree.symbol.isClass =>
448446
val sym = tree.symbol
@@ -465,7 +463,7 @@ class Setup extends PreRecheck, SymTransformer, SetupAPI:
465463

466464
def postProcess(tree: Tree)(using Context): Unit = tree match
467465
case tree: TypeTree =>
468-
transformTT(tree, boxed = false, exact = false)
466+
transformTT(tree, boxed = false)
469467
case tree: ValOrDefDef =>
470468
val sym = tree.symbol
471469

compiler/src/dotty/tools/dotc/printing/RefinedPrinter.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -560,9 +560,9 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
560560
else keywordText("{{") ~ keywordText("/* inlined from ") ~ toText(call) ~ keywordText(" */") ~ bodyText ~ keywordText("}}")
561561
case tpt: untpd.DerivedTypeTree =>
562562
"<derived typetree watching " ~ tpt.watched.showSummary() ~ ">"
563-
case TypeTree() =>
563+
case tree: TypeTree =>
564564
typeText(toText(tree.typeOpt))
565-
~ Str("(inf)").provided(tree.isInstanceOf[InferredTypeTree] && printDebug)
565+
~ Str("(inf)").provided(tree.isInferred && printDebug)
566566
case SingletonTypeTree(ref) =>
567567
toTextLocal(ref) ~ "." ~ keywordStr("type")
568568
case RefinedTypeTree(tpt, refines) =>

0 commit comments

Comments
 (0)