From af98ccb68625ca45dcfe6bef93eea62861862730 Mon Sep 17 00:00:00 2001
From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch>
Date: Thu, 25 Jun 2015 15:22:34 +0200
Subject: [PATCH] Make this look more like a method

---
 .../scala/leon/purescala/Definitions.scala    | 35 ++++++++-----------
 1 file changed, 15 insertions(+), 20 deletions(-)

diff --git a/src/main/scala/leon/purescala/Definitions.scala b/src/main/scala/leon/purescala/Definitions.scala
index 1e38c2983..f49e8c863 100644
--- a/src/main/scala/leon/purescala/Definitions.scala
+++ b/src/main/scala/leon/purescala/Definitions.scala
@@ -108,39 +108,34 @@ object Definitions {
 
   abstract class Import extends Definition {
     def subDefinitions = Nil
-
-    def importedDefs(implicit pgm: Program) = this match {
-      case PackageImport(pack) =>
-        for {
-          u <- DefOps.unitsInPackage(pgm, pack)
-          d <- u.subDefinitions
-          ret <- d match {
-            case m: ModuleDef if m.isPackageObject =>
-              m.subDefinitions
-            case other =>
-              Seq(other)
-          }
-        } yield ret
-
-      case SingleImport(imported) =>
-        List(imported)
-
-      case WildcardImport(imported) =>
-        imported.subDefinitions
-    }
+    def importedDefs(implicit pgm: Program): Seq[Definition]
   }
 
   // import pack._
   case class PackageImport(pack : PackageRef) extends Import {
     val id = FreshIdentifier("import " + (pack mkString "."))
+    def importedDefs(implicit pgm: Program): Seq[Definition] = for {
+      u <- DefOps.unitsInPackage(pgm, pack)
+      d <- u.subDefinitions
+      ret <- d match {
+        case m: ModuleDef if m.isPackageObject =>
+          m.subDefinitions
+        case other =>
+          Seq(other)
+      }
+    } yield ret
   }
   // import pack.(...).df
   case class SingleImport(df : Definition) extends Import {
     val id = FreshIdentifier(s"import ${df.id.toString}")
+    def importedDefs(implicit pgm: Program): Seq[Definition] =
+      List(df)
   }
   // import pack.(...).df._
   case class WildcardImport(df : Definition) extends Import {
     val id = FreshIdentifier(s"import ${df.id.toString}._")
+    def importedDefs(implicit pgm: Program): Seq[Definition] =
+      df.subDefinitions
   }
   
   case class UnitDef(
-- 
GitLab