fn build_graph_call(
        &mut self,
        caller_idx: FunctionDefinitionIndex,
        callee_idx: FunctionDefinitionIndex,
        type_actuals_idx: SignatureIndex,
    ) {
        let type_actuals = &self.module.signature_at(type_actuals_idx).0;

        for (formal_idx, ty) in type_actuals.iter().enumerate() {
            let formal_idx = formal_idx as TypeParameterIndex;
            match ty {
                SignatureToken::TypeParameter(actual_idx) => self.add_edge(
                    Node(caller_idx, *actual_idx),
                    Node(callee_idx, formal_idx),
                    Edge::Identity,
                ),
                _ => {
                    for type_param in self.extract_type_parameters(ty) {
                        self.add_edge(
                            Node(caller_idx, type_param),
                            Node(callee_idx, formal_idx),
                            Edge::TyConApp(ty),
                        );
                    }
                }
            }
        }
    }
/// Helper of 'fn build_graph' that inspects a function call. If type parameters of the caller
/// appear in the type actuals to the callee, nodes and edges are added to the graph.
Helper of 'fn build_graph' that inspects a function call. If type parameters of the caller
appear in the type actuals to the callee, nodes and edges are added to the graph.
Helper of ' fn build_graph ' that inspects a function call . If type parameters of the caller appear in the type actuals to the callee nodes and edges are added to the graph .
fn build_graph_call(
        &mut self,
        caller_idx: FunctionDefinitionIndex,
        callee_idx: FunctionDefinitionIndex,
        type_actuals_idx: SignatureIndex,
    ) {
        let type_actuals = &self.module.signature_at(type_actuals_idx).0;
        for (formal_idx, ty) in type_actuals.iter().enumerate() {
            let formal_idx = formal_idx as TypeParameterIndex;
            match ty {
                SignatureToken::TypeParameter(actual_idx) => self.add_edge(
                    Node(caller_idx, *actual_idx),
                    Node(callee_idx, formal_idx),
                    Edge::Identity,
                ),
                _ => {
                    for type_param in self.extract_type_parameters(ty) {
                        self.add_edge(
                            Node(caller_idx, type_param),
                            Node(callee_idx, formal_idx),
                            Edge::TyConApp(ty),
                        );
                    }
                }
            }
        }
    }
fn build_graph_call ( & mut self , caller_idx : FunctionDefinitionIndex , callee_idx : FunctionDefinitionIndex , type_actuals_idx : SignatureIndex , ) { let type_actuals = & self . module . signature_at ( type_actuals_idx ) . 0 ; for ( formal_idx , ty ) in type_actuals . iter ( ) . enumerate ( ) { let formal_idx = formal_idx as TypeParameterIndex ; match ty { SignatureToken :: TypeParameter ( actual_idx ) => self . add_edge ( Node ( caller_idx , * actual_idx ) , Node ( callee_idx , formal_idx ) , Edge :: Identity , ) , _ => { for type_param in self . extract_type_parameters ( ty ) { self . add_edge ( Node ( caller_idx , type_param ) , Node ( callee_idx , formal_idx ) , Edge :: TyConApp ( ty ) , ) ; } } } } }
Helper of 'fn build_graph' that inspects a function call.
Helper of ' fn build_graph ' that inspects a function call .
&mut self
caller_idx
FunctionDefinitionIndex
callee_idx
FunctionDefinitionIndex
type_actuals_idx
SignatureIndex