public override Expression Compile()
        {
            var swithCases  = WhenNodes.Select(CompileWhen);
            var defaultCase = CompileElseNode();

            return(Switch(typeof(iObject), Constant(true), defaultCase, null, swithCases));
        }
        public override Expression Compile()
        {
            var caseValue = ValueNode.Accept(Compiler);
            var callSite  = new CallSite(Symbol.EQQ, Visibility.Public, ArgumentKind.Simple);

            var swithCases  = WhenNodes.Select(n => CompileWhen(n, caseValue, callSite));
            var defaultCase = CompileElseNode();

            return(Switch(typeof(iObject), Constant(true), defaultCase, null, swithCases));
        }