fix(tvix/eval): coerce string interpolation parts to string
With this puzzle piece of string compilation in place, `compile_str` becomes less redundant, as every part now needs to be compiled the same. The thunking logic becomes a bit trickier, since we need to thunk even in the case of `count == 1` if the single part is interpolating. Splitting the inner (shared) code in a separate function turned out to be easier for making rustc content. Change-Id: I6a554ca599926ae5907d7acffce349c9616f568f Reviewed-on: https://cl.tvl.fyi/c/depot/+/6582 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
This commit is contained in:
parent
bcd7e520f0
commit
4eb33e82ff
3 changed files with 59 additions and 36 deletions
|
|
@ -105,6 +105,9 @@ pub enum OpCode {
|
|||
|
||||
// Strings
|
||||
OpInterpolate(Count),
|
||||
/// Force the Value on the stack and coerce it to a string, always using
|
||||
/// `CoercionKind::Weak`.
|
||||
OpCoerceToString,
|
||||
|
||||
// Type assertion operators
|
||||
OpAssertBool,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue