Release coccinelle-0.2.2-rc1
[bpt/coccinelle.git] / parsing_cocci / type_infer.ml
index 9f68611..1fc1e1c 100644 (file)
@@ -1,3 +1,25 @@
+(*
+ * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen
+ * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
+ * This file is part of Coccinelle.
+ *
+ * Coccinelle is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, according to version 2 of the License.
+ *
+ * Coccinelle is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Coccinelle.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The authors reserve the right to distribute this or future versions of
+ * Coccinelle under other licenses.
+ *)
+
+
 module T = Type_cocci
 module Ast = Ast_cocci
 module Ast0 = Ast0_cocci
@@ -18,7 +40,7 @@ let err wrapped ty s =
   T.typeC ty; Format.print_newline();
   failwith (Printf.sprintf "line %d: %s" (Ast0.get_line wrapped) s)
 
-type id = Id of string | Meta of (string * string)
+type id = Id of string | Meta of Ast.meta_name
 
 let int_type = T.BaseType(T.IntType)
 let bool_type = T.BaseType(T.BoolType)
@@ -315,7 +337,9 @@ let rec propagate_types env =
       (* if a type is known, it is specified in the decl *)
          None
       | (Ast0.Paren(lp,exp,rp),None) -> process_test exp
-      | (_,None) -> Some (int_type)
+      (* the following doesn't seem like a good idea - triggers int isos
+        on all test expressions *)
+      (*| (_,None) -> Some (int_type) *)
       | _ -> None in
     let new_expty = process_test exp in
     (match new_expty with