Skip to content

DYN-10572: Revert Honor per-port Use Levels on variadic DSVarArgFunction nodes (#17147)#17189

Closed
jasonstratton wants to merge 2 commits into
DynamoDS:masterfrom
jasonstratton:revert-dyn-10572-pr17147
Closed

DYN-10572: Revert Honor per-port Use Levels on variadic DSVarArgFunction nodes (#17147)#17189
jasonstratton wants to merge 2 commits into
DynamoDS:masterfrom
jasonstratton:revert-dyn-10572-pr17147

Conversation

@jasonstratton

Copy link
Copy Markdown
Contributor

Purpose

Reverts #17147 (DYN-10572: Honor per-port Use Levels on variadic DSVarArgFunction nodes).

The implementation in #17147 applied AtLevel / replication-guide annotations to variadic inputs before packing them into an ExprListNode. Investigation revealed that ProtoCore's CodeGen.EmitExprListNode unconditionally suppresses per-element replication guide emission (emitReplicationGuide = false) — so the annotations are never emitted and the fix has no effect. The three new StringTests and one ListTests test added by that PR have been failing on every master build since #17147 merged.

A correct fix requires a targeted change in ProtoCore/CodeGen.cs to lift that suppression for variadic-packed arrays, which will be addressed in a follow-up PR.

Declarations

Check these if you believe they are true

Release Notes

N/A — reverts an implementation that was never functional; no user-visible behavior change.

Reviewers

(FILL ME IN)

FYIs

Unblocks master CI — builds 3719–3721 have been failing with 3 DynamoCoreTests failures introduced by #17147.

Copilot AI review requested due to automatic review settings June 23, 2026 05:09

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-10572

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reverts the earlier attempt to honor per-port Use Levels / replication guides on variadic DSVarArgFunction nodes, since the prior implementation was ineffective in ProtoCore and introduced failing tests on master. The revert removes the associated AST wrapping logic, the public API hook, and the newly-added failing test coverage/data graphs to unblock CI.

Changes:

  • Reverted variadic pre-pack AtLevel / replication-guide wrapping in ZeroTouchVarArgNodeController.BuildOutputAst.
  • Reverted the NodeModel hook and logic that bounded UseLevelAndReplicationGuide for variadic nodes, and removed the corresponding PublicAPI entry.
  • Removed the failing NUnit tests and their .dyn test graphs that depended on the reverted behavior.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/DynamoCoreTests/Nodes/StringTests.cs Removes the newly-added failing String.Concat / String.Join Use Levels tests introduced by the reverted PR.
test/DynamoCoreTests/Nodes/ListTests.cs Removes the newly-added failing List.Join Use Levels test introduced by the reverted PR.
test/core/string/TestJoinStringUseLevelsOnVariadicPort.dyn Deletes the test graph used by the removed String.Join Use Levels test.
test/core/string/TestConcatStringUseLevels.dyn Deletes the test graph used by the removed String.Concat Use Levels test.
test/core/string/TestConcatStringNestedListIndependence.dyn Deletes the test graph used by the removed String.Concat rank-independence test.
test/core/list/TestListJoinUseLevelsOnVariadicPort.dyn Deletes the test graph used by the removed List.Join Use Levels test.
src/DynamoCore/PublicAPI.Unshipped.txt Removes the unshipped public API entry for the reverted NodeModel hook.
src/DynamoCore/Graph/Nodes/ZeroTouch/DSVarArgFunction.cs Reverts variadic input wrapping logic back to packing inputs into an ExprListNode only.
src/DynamoCore/Graph/Nodes/NodeModel.cs Reverts bounded wrapping logic back to applying UseLevelAndReplicationGuide across all inputs.

var paramCount = Definition.Parameters.Count();

// Suppose a function foo() with var args, its signature is:
// Suppose a fucntion foo() with var args, its signature is:
@RobertGlobant20 RobertGlobant20 self-requested a review June 23, 2026 13:56

@RobertGlobant20 RobertGlobant20 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@johnpierson

Copy link
Copy Markdown
Member

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

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.

4 participants