浏览代码

[java/cs] Handle empty switches

Cauê Waneck 11 年之前
父节点
当前提交
ae28f79fa0
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      gencommon.ml

+ 6 - 2
gencommon.ml

@@ -9154,11 +9154,15 @@ struct
               | (conds,e) :: tl ->
                 { eexpr = TIf(mk_many_cond conds, run e, Some(loop tl)); etype = e.etype; epos = e.epos }
               | [] -> match default with
-                | None -> gen.gcon.error "Empty switch" e.epos; assert false
+                | None ->
+									raise Exit
                 | Some d -> run d
             in
 
-            { e with eexpr = TBlock(fst_block @ [loop cases]) }
+						try
+							{ e with eexpr = TBlock(fst_block @ [loop cases]) }
+						with | Exit ->
+							{ e with eexpr = TBlock [] }
           end
         | _ -> Type.map_expr run e
     in