@@ -2,7 +2,7 @@ use std::collections::{HashMap, HashSet};
22
33use graph_craft:: document:: value:: TaggedValue ;
44use graph_craft:: document:: { DocumentNodeImplementation , InlineRust , NodeInput } ;
5- use graph_craft:: proto:: GraphErrors ;
5+ use graph_craft:: proto:: { GraphErrorType , GraphErrors } ;
66use graph_craft:: { Type , concrete} ;
77use graphene_std:: uuid:: NodeId ;
88use interpreted_executor:: dynamic_executor:: { NodeTypes , ResolvedDocumentNodeTypesDelta } ;
@@ -129,15 +129,22 @@ impl NodeNetworkInterface {
129129 InputConnector :: Export ( _) => false ,
130130 } )
131131 }
132- DocumentNodeImplementation :: ProtoNode ( _) => self . resolved_types . node_graph_errors . iter ( ) . any ( |error| error. node_path == node_path) ,
132+ DocumentNodeImplementation :: ProtoNode ( _) => self . resolved_types . node_graph_errors . iter ( ) . any ( |error| {
133+ error. node_path == node_path
134+ && match & error. error {
135+ GraphErrorType :: InvalidImplementations { error_inputs, .. } => error_inputs. iter ( ) . any ( |solution| solution. iter ( ) . any ( |( index, _) | index == input_index) ) ,
136+ _ => true ,
137+ }
138+ } ) ,
139+
133140 DocumentNodeImplementation :: Extract => false ,
134141 }
135142 }
136143 InputConnector :: Export ( _) => false ,
137144 }
138145 }
139146
140- fn input_type_not_invalid ( & mut self , input_connector : & InputConnector , network_path : & [ NodeId ] ) -> TypeSource {
147+ pub fn input_type_not_invalid ( & mut self , input_connector : & InputConnector , network_path : & [ NodeId ] ) -> TypeSource {
141148 let Some ( input) = self . input_from_connector ( input_connector, network_path) else {
142149 return TypeSource :: Error ( "Could not get input from connector" ) ;
143150 } ;
0 commit comments