Skip to content

Commit 2cd48eb

Browse files
committed
Do not fold IsConst applied to dependent parameters
1 parent f36967c commit 2cd48eb

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

compiler/src/dotty/tools/dotc/core/TypeEval.scala

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,12 @@ object TypeEval:
6464
// currently not a concrete known type
6565
case _: TypeParamRef => None
6666
// constant if the term is constant
67-
case t: TermRef => isConst(t.underlying)
67+
case t: TermRef =>
68+
if t.denot.symbol.flagsUNSAFE.is(Flags.Param) then
69+
// might be substituted later
70+
None
71+
else
72+
isConst(t.underlying)
6873
// an operation type => recursively check all argument compositions
6974
case applied: AppliedType if defn.isCompiletimeAppliedType(applied.typeSymbol) =>
7075
val argsConst = applied.args.map(isConst)
@@ -239,4 +244,4 @@ object TypeEval:
239244

240245
case _ => NoType
241246
end tryCompiletimeConstantFold
242-
end TypeEval
247+
end TypeEval

0 commit comments

Comments
 (0)