only print qualified implicits
authorhaftmann
Thu, 26 Aug 2010 14:04:13 +0200
changeset 390153865cbe5d2be
parent 39014 6b356e3687d2
child 39016 f171050ad3f8
child 39017 3b4d63ab03c4
only print qualified implicits
src/Tools/Code/code_scala.ML
     1.1 --- a/src/Tools/Code/code_scala.ML	Thu Aug 26 13:56:35 2010 +0200
     1.2 +++ b/src/Tools/Code/code_scala.ML	Thu Aug 26 14:04:13 2010 +0200
     1.3 @@ -434,9 +434,14 @@
     1.4        (deresolve, Long_Name.implode o fst o split_last o Long_Name.explode (*FIXME full*));
     1.5  
     1.6      (* print nodes *)
     1.7 -    fun print_implicits [] = NONE
     1.8 -      | print_implicits implicits = (SOME o Pretty.block)
     1.9 -          (str "import /*implicits*/" :: Pretty.brk 1 :: commas (map (str o deresolve) implicits));
    1.10 +    fun print_implicit implicit =
    1.11 +      let
    1.12 +        val s = deresolve implicit;
    1.13 +      in if length (Long_Name.explode s) = 1 then NONE else SOME (str s) end;
    1.14 +    fun print_implicits implicits = case map_filter print_implicit implicits
    1.15 +     of [] => NONE
    1.16 +      | ps => (SOME o Pretty.block)
    1.17 +          (str "import /*implicits*/" :: Pretty.brk 1 :: commas ps);
    1.18      fun print_module base implicits p = Pretty.chunks2
    1.19        ([str ("object " ^ base ^ " {")] @ the_list (print_implicits implicits)
    1.20          @ [p, str ("} /* object " ^ base ^ " */")]);