Repository navigation
Conversation
Member
|
I deliberatly choose not to implement this in my pr because dealing with rank promotions is very ugly, I will need time to review this in detail since it touches the compiler and type resolution so you may not merge this on your own |
Contributor
There was a problem hiding this comment.
1 issue found across 6 files
Confidence score: 3/5
- In
editor/src/messages/portfolio/document/utility_types/network_interface/resolved_types.rs, treating every subgraph export as unconstrained can allow a wire that its parent-side consumers reject. Resolve the export against its downstream output constraint.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="editor/src/messages/portfolio/document/utility_types/network_interface/resolved_types.rs">
<violation number="1" location="editor/src/messages/portfolio/document/utility_types/network_interface/resolved_types.rs:409">
P2: This treats every subgraph export as unconstrained, so a wire passed through a subgraph can be accepted even when its parent-side consumers reject that type. Resolve the export against its downstream output constraints before accepting it.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| fn type_acceptor(&self, input_connector: &InputConnector, network_path: &[NodeId]) -> Box<dyn Fn(&Type) -> bool> { | ||
| let accepts_here: Box<dyn Fn(&Type) -> bool> = match input_connector { | ||
| // An export can have any type connected to it | ||
| InputConnector::Export(_) => Box::new(|_| true), |
Contributor
There was a problem hiding this comment.
P2: This treats every subgraph export as unconstrained, so a wire passed through a subgraph can be accepted even when its parent-side consumers reject that type. Resolve the export against its downstream output constraints before accepting it.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At editor/src/messages/portfolio/document/utility_types/network_interface/resolved_types.rs, line 409:
<comment>This treats every subgraph export as unconstrained, so a wire passed through a subgraph can be accepted even when its parent-side consumers reject that type. Resolve the export against its downstream output constraints before accepting it.</comment>
<file context>
@@ -319,6 +373,114 @@ impl NodeNetworkInterface {
+ fn type_acceptor(&self, input_connector: &InputConnector, network_path: &[NodeId]) -> Box<dyn Fn(&Type) -> bool> {
+ let accepts_here: Box<dyn Fn(&Type) -> bool> = match input_connector {
+ // An export can have any type connected to it
+ InputConnector::Export(_) => Box::new(|_| true),
+ InputConnector::Node { node_id, input_index } => match self.implementation(node_id, network_path) {
+ Some(DocumentNodeImplementation::ProtoNode(proto_node_identifier)) => {
</file context>
Keavon
force-pushed
the
input-adapter-conversion-table
branch
from
October 13, 2026 23:22
d091b36 to
46b6616
Compare
This branch was successfully deployed
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.
Follow-up to #4670. When you hover a node with a wire, it reveals hidden inputs based on a type check that didn't match what the compiler does, so it got things wrong in both directions:
One example of something this fixes from #4670 is the case of dragging a Vector wire over a Fill or Stroke node which should expand the node to show the Paint parameter. It should work equally for both, as they're both valid. But as of #4670, it only the Fill node works and the Stroke node doesn't expand to offer it, which this followup PR fixes. It also fixes a number of misleading and broken type details across the tooltips, such as the Path node's primary input showing the entire set of all inputs accepted by the Monitor node (essentially all wire types, which the tooltip can't hope to fit on screen).