src/Tools/Code/code_scala.ML
changeset 75649 7afb6628ab86
parent 75643 3c659dfa82f8
child 77232 6cad6ed2700a
equal deleted inserted replaced
75648:aa0403e5535f 75649:7afb6628ab86
   159             val (bind :: binds, body) = Code_Thingol.unfold_let (ICase case_expr);
   159             val (bind :: binds, body) = Code_Thingol.unfold_let (ICase case_expr);
   160             fun print_match_val ((pat, ty), t) vars =
   160             fun print_match_val ((pat, ty), t) vars =
   161               vars
   161               vars
   162               |> print_bind tyvars some_thm BR pat
   162               |> print_bind tyvars some_thm BR pat
   163               |>> (fn p => (false, concat [str "val", p, str "=",
   163               |>> (fn p => (false, concat [str "val", p, str "=",
   164                 constraint (print_term tyvars false some_thm vars NOBR t) (print_typ tyvars NOBR ty)]));
   164                 constraint (print_term tyvars false some_thm vars NOBR t) (print_typ tyvars BR ty)]));
   165             fun print_match_seq t vars =
   165             fun print_match_seq t vars =
   166               ((true, print_term tyvars false some_thm vars NOBR t), vars);
   166               ((true, print_term tyvars false some_thm vars NOBR t), vars);
   167             fun print_match is_first ((IVar NONE, ty), t) =
   167             fun print_match is_first ((IVar NONE, ty), t) =
   168                   if Code_Thingol.is_IAbs t andalso is_first
   168                   if Code_Thingol.is_IAbs t andalso is_first
   169                     then print_match_val ((IVar NONE, ty), t)
   169                     then print_match_val ((IVar NONE, ty), t)
   332                 (concat ([str "trait", (add_typarg o deresolve_class) class]
   332                 (concat ([str "trait", (add_typarg o deresolve_class) class]
   333                   @ the_list (print_super_classes classrels) @ [str "{"]), str "}")
   333                   @ the_list (print_super_classes classrels) @ [str "{"]), str "}")
   334                 (map print_classparam_val classparams))
   334                 (map print_classparam_val classparams))
   335               :: map print_classparam_def classparams
   335               :: map print_classparam_def classparams
   336               @| Pretty.block_enclose
   336               @| Pretty.block_enclose
   337                 (str ("object " ^ deresolve_class class ^ "{"), str "}")
   337                 (str ("object " ^ deresolve_class class ^ " {"), str "}")
   338                 (map (print_inst class) insts)
   338                 (map (print_inst class) insts)
   339             )
   339             )
   340           end;
   340           end;
   341   in print_stmt end;
   341   in print_stmt end;
   342 
   342