Extend interface extends coverage to 3-target extends clauses#270
Merged
Conversation
Adds a cross-module test pair for `interface Combined extends A, B, C` to stress the vtable-offset accumulation and extends-dedup guard from PR #268 (which only had 2-target diamond coverage) at N=3. Verified via live debug trace that the fix generalizes correctly; full extends-interface test family (12 tests) passes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR #268 fixed
interface Combined extends Left, Right(2 extends targets) — a vtable-offset bug that mis-patched every method from the second extends target onward. That PR's own coverage only tested 2 targets; this adds a cross-module test with 3 (interface Combined extends A, B, C) to stress the offset-accumulation logic one level further and confirm it generalizes past N=2, not just fixes the specific 2-target case.Test plan
export/import_object_literal_structural_typed_extends_interface_triple.ts(compile + JIT) — verified correct for all 4 members (one from each of the 3 extends targets, plusCombined's own)test-compile-00-objectsunder-j 16parallel execution reproduced only once and passed cleanly both in isolation and on a full rerun — not related to this change)🤖 Generated with Claude Code