From 4769646a126da145fa1e3509867fc4ed1d72ccee Mon Sep 17 00:00:00 2001
From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch>
Date: Mon, 14 Sep 2015 15:49:26 +0200
Subject: [PATCH] Add test for new inlining

---
 .../integration/purescala/InliningSuite.scala | 22 ++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/test/scala/leon/integration/purescala/InliningSuite.scala b/src/test/scala/leon/integration/purescala/InliningSuite.scala
index fbbc8765a..069a0e5ba 100644
--- a/src/test/scala/leon/integration/purescala/InliningSuite.scala
+++ b/src/test/scala/leon/integration/purescala/InliningSuite.scala
@@ -20,7 +20,7 @@ class InliningSuite extends LeonTestSuiteWithProgram with helpers.ExpressionsDSL
        |
        |} """.stripMargin,
 
-    """ |import leon.lang._
+    """|import leon.lang._
        |import leon.annotation._
        |
        |object InlineBad {
@@ -30,6 +30,21 @@ class InliningSuite extends LeonTestSuiteWithProgram with helpers.ExpressionsDSL
        |
        |  def bar(a: BigInt) = foo(a)
        |
+       |}""".stripMargin,
+
+    """|import leon.lang._
+       |import leon.annotation._
+       |
+       |object InlineGood2 {
+       |
+       |  @inline
+       |  def foo(a: BigInt) = true
+       |
+       |  @inline
+       |  def bar(a: BigInt) = foo(a)
+       |
+       |  def baz(a: BigInt) = bar(a)
+       |
        |}""".stripMargin
   )
 
@@ -45,4 +60,9 @@ class InliningSuite extends LeonTestSuiteWithProgram with helpers.ExpressionsDSL
         fail(s"Resultig body should be a call to 'foo', got '$b'")
     }
   }
+
+  test("Double Inlining") { implicit fix =>
+    assert(funDef("InlineGood2.baz").fullBody == BooleanLiteral(true), "Inlined function invocation not inlined in turn?")
+  }
+
 }
-- 
GitLab