Found re-testing tep's re-pin at master 2d1204e4. New value-correctness regression — interpolated String values come out blank in rendered templates:
test_simple_interpolation: expected /hello, world!/
got "<h1>hello, !</h1>\n\n<p>Thanks .</p>\n"
test_loop_block: expected /<li>item 0</
got "<ul>\n\n</ul>\n" # loop emits nothing
The values vanish; the surrounding literal HTML survives. Same shape in test_mustache (2 fail). This is the "Bug B" String-value-blanking class.
Construct
ERB rendered with a locals hash of Strings:
get '/hello/:who' do
erb :hello, locals: { name: params[:who], mood: "happy" }
end
# view: <h1>hello, <%= name %>!</h1> <p>Thanks <%= mood %>.</p>
Both name (a params[:who] String) and mood (a "happy" literal) blank. The translator lowers erb ... locals: {...} to a generated render method that pulls each local out of the hash and concatenates into the output String — so this is the locals-hash → String-value → concat path losing the values.
Regression window + suspects
- f6d5eef (tep's pin): PASS (19 assertions, 0 fail) · 5959b64: PASS · 2d1204e: 3 fail
- Window
5959b64..2d1204e4. Suspects in that range:
Happy to bisect this commit-by-commit (I have builds across the range) and/or hand over the translated .tep.rb of the generated ERB render method. Flagging because it's a value-correctness regression (silent wrong output, not a compile error) and it blocks tep's re-pin alongside #1477 (proxy override dispatch).
Found re-testing tep's re-pin at master
2d1204e4. New value-correctness regression — interpolated String values come out blank in rendered templates:The values vanish; the surrounding literal HTML survives. Same shape in
test_mustache(2 fail). This is the "Bug B" String-value-blanking class.Construct
ERB rendered with a locals hash of Strings:
Both
name(aparams[:who]String) andmood(a"happy"literal) blank. The translator lowerserb ... locals: {...}to a generated render method that pulls each local out of the hash and concatenates into the output String — so this is the locals-hash → String-value → concat path losing the values.Regression window + suspects
5959b64..2d1204e4. Suspects in that range:59236598(String-receivereach/unresolved → typed nil/0 stub — tep serve (full program) @a266211: String#split result typed String -> unsupportedeach(next blocker after #1420/#1422; whole-program, #1367 class) #1434's fix): if a legitimate String op in the render path is now mis-classified as unresolved and gated to a nil/""stub, that would blank exactly these values. Worth checking the gate doesn't over-trigger.emit_*_calldispatch extractions (emit_hash_call/emit_scalar_call/emit_value_recv_call…) —localsis a Hash, the values are Strings.Happy to bisect this commit-by-commit (I have builds across the range) and/or hand over the translated
.tep.rbof the generated ERB render method. Flagging because it's a value-correctness regression (silent wrong output, not a compile error) and it blocks tep's re-pin alongside #1477 (proxy override dispatch).