@@ -10,9 +10,10 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
1010 /// Returns an operand suitable for use until the end of the current
1111 /// scope expression.
1212 ///
13- /// The operand returned from this function will *not be valid* after
14- /// an ExprKind::Scope is passed, so please do *not* return it from
15- /// functions to avoid bad miscompiles.
13+ /// The operand returned from this function will *not be valid*
14+ /// after the current enclosing `ExprKind::Scope` has ended, so
15+ /// please do *not* return it from functions to avoid bad
16+ /// miscompiles.
1617 crate fn as_local_operand < M > ( & mut self , block : BasicBlock , expr : M ) -> BlockAnd < Operand < ' tcx > >
1718 where
1819 M : Mirror < ' tcx , Output = Expr < ' tcx > > ,
@@ -30,8 +31,10 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
3031 /// `as_operand`, except for the particular case of passing values of (potentially) unsized
3132 /// types "by value" (see details below).
3233 ///
33- /// As with `as_operand`, the operand returned from this function will *not be valid* after an
34- /// `ExprKind::Scope` is passed, so do not return it from functions.
34+ /// The operand returned from this function will *not be valid*
35+ /// after the current enclosing `ExprKind::Scope` has ended, so
36+ /// please do *not* return it from functions to avoid bad
37+ /// miscompiles.
3538 ///
3639 /// # Parameters of unsized types
3740 ///
@@ -98,6 +101,8 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
98101 self . expr_as_operand ( block, scope, expr)
99102 }
100103
104+ /// Like `as_local_call_operand`, except that the argument will
105+ /// not be valid once `scope` ends.
101106 fn as_call_operand < M > (
102107 & mut self ,
103108 block : BasicBlock ,
0 commit comments