BoundExpression BindVarLikeConstructUse(AST.VarLikeConstructUse expr, BoundAccess access) { if (expr is AST.SimpleVarUse) { return(BindSimpleVarUse((AST.SimpleVarUse)expr, access)); } if (expr is AST.FunctionCall) { return(BindFunctionCall((AST.FunctionCall)expr, access)); } if (expr is AST.NewEx) { return(BindNew((AST.NewEx)expr, access)); } if (expr is AST.ArrayEx) { return(BindArrayEx((AST.ArrayEx)expr, access)); } if (expr is AST.ItemUse) { return(BindItemUse((AST.ItemUse)expr, access)); } if (expr is AST.StaticFieldUse) { return(BindFieldUse((AST.StaticFieldUse)expr, access)); } if (expr is AST.ListEx) { return(BindListEx((AST.ListEx)expr).WithAccess(access)); } throw new NotImplementedException(expr.GetType().FullName); }