Skip to content

Frame the input_signature probe's parameter as a multi-element set (wala/ML#638)#469

Merged
khatchad merged 1 commit into
masterfrom
add-638-multi-element-set
Jun 29, 2026
Merged

Frame the input_signature probe's parameter as a multi-element set (wala/ML#638)#469
khatchad merged 1 commit into
masterfrom
add-638-multi-element-set

Conversation

@khatchad

Copy link
Copy Markdown
Member

Follow-up to the merged #467. A @tf.function(input_signature=[(None,) int32])-decorated f passes its parameter to g (the FUT). What g receives depends on the execution mode, which a static analysis cannot determine:

  • traced (the default): the signature governs, g receives (None,) int32;
  • under run_functions_eagerly: the signature is ignored, g receives the call-site argument's (3,) int32.

So the sound type of g's parameter is the set {(None,), (3,)} int32 -- a plain union, no provenance categories (which is also why the retracted wala#634's tagged-set diagnosis was wrong, not just its justification).

The fixture documents both modes with no run_functions_eagerly call (the eager element is just the argument at the call site; Ariadne doesn't and shouldn't analyze the global/dynamic eager mode). The test pins the current argument-derived (3,) and spells out the sound set in the TODO toward wala#638, which is reframed accordingly.

🤖 Generated with Claude Code

…robe (wala#638).

Follow-up to the merged #467. The decorated `f` passes its parameter to `g`; what
`g` receives depends on the execution mode a static analysis cannot determine:
traced the signature governs ((None,) int32), eager it is the call-site argument
((3,) int32). So the sound type of `g`'s parameter is the set {(None,), (3,)}.
The fixture now documents both modes without a `run_functions_eagerly` call (the
eager element is the argument at the call site), and the test pins the current
argument-derived (3,) with the sound set spelled out in the TODO toward
wala#638.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01USFp76oHfj2u3wUSCo87cg
@codecov

codecov Bot commented Jun 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 72.34%. Comparing base (36d8c48) to head (2f42a05).

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #469   +/-   ##
=========================================
  Coverage     72.34%   72.34%           
  Complexity     3083     3083           
=========================================
  Files           287      287           
  Lines         21615    21615           
  Branches       3625     3625           
=========================================
  Hits          15637    15637           
  Misses         4506     4506           
  Partials       1472     1472           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@khatchad khatchad added this pull request to the merge queue Jun 29, 2026
Merged via the queue into master with commit 445ecd1 Jun 29, 2026
13 checks passed
@khatchad khatchad deleted the add-638-multi-element-set branch June 29, 2026 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant