File tree 4 files changed +6
-6
lines changed
compiler/src/dotty/tools/dotc 4 files changed +6
-6
lines changed Original file line number Diff line number Diff line change @@ -1139,7 +1139,7 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
1139
1139
}
1140
1140
1141
1141
/** Let bind `tree` unless `tree` is at least idempotent */
1142
- def evalOnce (tree : Tree )(within : Tree => Tree )(implicit ctx : Context ): Tree =
1142
+ def letBind (tree : Tree )(within : Tree => Tree )(implicit ctx : Context ): Tree =
1143
1143
letBindUnless(TreeInfo .Idempotent , tree)(within)
1144
1144
1145
1145
def runtimeCall (name : TermName , args : List [Tree ])(implicit ctx : Context ): Tree = {
Original file line number Diff line number Diff line change @@ -221,7 +221,7 @@ object Erasure {
221
221
val nullTree = Literal (Constant (null ))
222
222
val unboxedNull = adaptToType(nullTree, underlying)
223
223
224
- evalOnce (tree) { t =>
224
+ letBind (tree) { t =>
225
225
If (t.select(defn.Object_eq ).appliedTo(nullTree),
226
226
unboxedNull,
227
227
unboxedTree(t))
Original file line number Diff line number Diff line change @@ -265,20 +265,20 @@ object TypeTestsCasts {
265
265
case _ : SingletonType =>
266
266
expr.isInstance(testType).withSpan(tree.span)
267
267
case OrType (tp1, tp2) =>
268
- evalOnce (expr) { e =>
268
+ letBind (expr) { e =>
269
269
transformTypeTest(e, tp1, flagUnrelated = false )
270
270
.or(transformTypeTest(e, tp2, flagUnrelated = false ))
271
271
}
272
272
case AndType (tp1, tp2) =>
273
- evalOnce (expr) { e =>
273
+ letBind (expr) { e =>
274
274
transformTypeTest(e, tp1, flagUnrelated)
275
275
.and(transformTypeTest(e, tp2, flagUnrelated))
276
276
}
277
277
case defn.MultiArrayOf (elem, ndims) if isUnboundedGeneric(elem) =>
278
278
def isArrayTest (arg : Tree ) =
279
279
ref(defn.runtimeMethodRef(nme.isArray)).appliedTo(arg, Literal (Constant (ndims)))
280
280
if (ndims == 1 ) isArrayTest(expr)
281
- else evalOnce (expr) { e =>
281
+ else letBind (expr) { e =>
282
282
derivedTree(e, defn.Any_isInstanceOf , e.tpe)
283
283
.and(isArrayTest(e))
284
284
}
Original file line number Diff line number Diff line change @@ -68,7 +68,7 @@ class VCInlineMethods extends MiniPhase with IdentityDenotTransformer {
68
68
val extensionMeth = extensionMethod(origMeth)
69
69
70
70
if (! ctParams.isEmpty) {
71
- evalOnce (qual) { ev =>
71
+ letBind (qual) { ev =>
72
72
val ctArgs = ctParams.map(tparam =>
73
73
TypeTree (tparam.typeRef.asSeenFrom(ev.tpe, origCls)))
74
74
ref(extensionMeth)
You can’t perform that action at this time.
0 commit comments