コード例 #1
0
        public void ClassicCpsRewriter_Basics13()
        {
            Expression <Func <string> > f = () => Qux.Bar <string>("Hello, CPS!");

            var r = new ClassicCpsRewriter().Rewrite(f);

            var res = default(string);

            r.Compile()(s => res = s);

            Assert.AreEqual("Hello, CPS!", res);
        }
コード例 #2
0
        public void ClassicCpsRewriter_Basics16()
        {
            Expression <Func <string> > f = () => "Bar".ToLower();

            var r = new ClassicCpsRewriter().Rewrite(f);

            var res = default(string);

            r.Compile()(s => res = s);

            Assert.AreEqual("bar", res);
        }
コード例 #3
0
        public void ClassicCpsRewriter_Basics12_Func()
        {
            Expression <Func <int, int, int, int> > f = (x, y, z) => Calculator.Add(Calculator.Negate(-z), Calculator.Add(x, y));

            var r = new ClassicCpsRewriter().Rewrite(f);

            var res = default(int);

            r.Compile()(17, 6, 19, x => res = x);

            Assert.AreEqual(42, res);
        }