You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: signature.rs
    path of file: ./repos/wing/libs/wingc/src/lsp
    
    the code of the file until where you have to start completion: use itertools::Itertools;
use lsp_types::{
	Documentation, MarkupContent, MarkupKind, ParameterInformation, ParameterLabel, Position, SignatureHelp,
	SignatureInformation,
};

use crate::ast::{CalleeKind, Expr, ExprKind, New, Symbol};
use crate::docs::Documented;
use crate::lsp::syn
    
	fn visit_expr(&mut self, node: &'a Expr) {
		visit_expr(self, node);

		if self.call_expr.is_some() {
			return;
		}

		if node.span.contains_lsp_position(&self.location) {
			match node.kind {
				ExprKind::Call { .. } | ExprKind::New { .. } => {
					self.call_expr = Some(node);
					self.call_env = Some(*self.curr_env.last().unwrap());
				}
				_ => {}
			}
		}
	}