merge last changes from 3.11 branch (rev 10307)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10309 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
master
Damien Doligez 2010-04-26 12:54:11 +00:00
parent 6a28a57f52
commit bfdf476b69
7 changed files with 114 additions and 11 deletions

Binary file not shown.

Binary file not shown.

View File

@ -144,3 +144,105 @@ sys.cmo: sys.cmi
sys.cmx: sys.cmi
weak.cmo: sys.cmi obj.cmi hashtbl.cmi array.cmi weak.cmi
weak.cmx: sys.cmx obj.cmx hashtbl.cmx array.cmx weak.cmi
arg.cmo: sys.cmi string.cmi printf.cmi list.cmi buffer.cmi array.cmi arg.cmi
arg.p.cmx: sys.p.cmx string.p.cmx printf.p.cmx list.p.cmx buffer.p.cmx array.p.cmx arg.cmi
array.cmo: array.cmi
array.p.cmx: array.cmi
arrayLabels.cmo: array.cmi arrayLabels.cmi
arrayLabels.p.cmx: array.p.cmx arrayLabels.cmi
buffer.cmo: sys.cmi string.cmi buffer.cmi
buffer.p.cmx: sys.p.cmx string.p.cmx buffer.cmi
callback.cmo: obj.cmi callback.cmi
callback.p.cmx: obj.p.cmx callback.cmi
camlinternalLazy.cmo: obj.cmi camlinternalLazy.cmi
camlinternalLazy.p.cmx: obj.p.cmx camlinternalLazy.cmi
camlinternalMod.cmo: obj.cmi camlinternalOO.cmi array.cmi camlinternalMod.cmi
camlinternalMod.p.cmx: obj.p.cmx camlinternalOO.p.cmx array.p.cmx camlinternalMod.cmi
camlinternalOO.cmo: sys.cmi string.cmi obj.cmi map.cmi list.cmi char.cmi \
array.cmi camlinternalOO.cmi
camlinternalOO.p.cmx: sys.p.cmx string.p.cmx obj.p.cmx map.p.cmx list.p.cmx char.p.cmx \
array.p.cmx camlinternalOO.cmi
char.cmo: char.cmi
char.p.cmx: char.cmi
complex.cmo: complex.cmi
complex.p.cmx: complex.cmi
digest.cmo: string.cmi printf.cmi digest.cmi
digest.p.cmx: string.p.cmx printf.p.cmx digest.cmi
filename.cmo: sys.cmi string.cmi random.cmi printf.cmi buffer.cmi \
filename.cmi
filename.p.cmx: sys.p.cmx string.p.cmx random.p.cmx printf.p.cmx buffer.p.cmx \
filename.cmi
format.cmo: string.cmi printf.cmi pervasives.cmi obj.cmi list.cmi buffer.cmi \
format.cmi
format.p.cmx: string.p.cmx printf.p.cmx pervasives.p.cmx obj.p.cmx list.p.cmx buffer.p.cmx \
format.cmi
gc.cmo: sys.cmi printf.cmi gc.cmi
gc.p.cmx: sys.p.cmx printf.p.cmx gc.cmi
genlex.cmo: string.cmi stream.cmi list.cmi hashtbl.cmi char.cmi genlex.cmi
genlex.p.cmx: string.p.cmx stream.p.cmx list.p.cmx hashtbl.p.cmx char.p.cmx genlex.cmi
hashtbl.cmo: sys.cmi array.cmi hashtbl.cmi
hashtbl.p.cmx: sys.p.cmx array.p.cmx hashtbl.cmi
int32.cmo: pervasives.cmi int32.cmi
int32.p.cmx: pervasives.p.cmx int32.cmi
int64.cmo: pervasives.cmi int64.cmi
int64.p.cmx: pervasives.p.cmx int64.cmi
lazy.cmo: obj.cmi camlinternalLazy.cmi lazy.cmi
lazy.p.cmx: obj.p.cmx camlinternalLazy.p.cmx lazy.cmi
lexing.cmo: sys.cmi string.cmi array.cmi lexing.cmi
lexing.p.cmx: sys.p.cmx string.p.cmx array.p.cmx lexing.cmi
list.cmo: list.cmi
list.p.cmx: list.cmi
listLabels.cmo: list.cmi listLabels.cmi
listLabels.p.cmx: list.p.cmx listLabels.cmi
map.cmo: map.cmi
map.p.cmx: map.cmi
marshal.cmo: string.cmi marshal.cmi
marshal.p.cmx: string.p.cmx marshal.cmi
moreLabels.cmo: set.cmi map.cmi hashtbl.cmi moreLabels.cmi
moreLabels.p.cmx: set.p.cmx map.p.cmx hashtbl.p.cmx moreLabels.cmi
nativeint.cmo: sys.cmi pervasives.cmi nativeint.cmi
nativeint.p.cmx: sys.p.cmx pervasives.p.cmx nativeint.cmi
obj.cmo: marshal.cmi int32.cmi array.cmi obj.cmi
obj.p.cmx: marshal.p.cmx int32.p.cmx array.p.cmx obj.cmi
oo.cmo: camlinternalOO.cmi oo.cmi
oo.p.cmx: camlinternalOO.p.cmx oo.cmi
parsing.cmo: obj.cmi lexing.cmi array.cmi parsing.cmi
parsing.p.cmx: obj.p.cmx lexing.p.cmx array.p.cmx parsing.cmi
pervasives.cmo: pervasives.cmi
pervasives.p.cmx: pervasives.cmi
printexc.cmo: printf.cmi obj.cmi buffer.cmi array.cmi printexc.cmi
printexc.p.cmx: printf.p.cmx obj.p.cmx buffer.p.cmx array.p.cmx printexc.cmi
printf.cmo: string.cmi pervasives.cmi obj.cmi list.cmi char.cmi buffer.cmi \
array.cmi printf.cmi
printf.p.cmx: string.p.cmx pervasives.p.cmx obj.p.cmx list.p.cmx char.p.cmx buffer.p.cmx \
array.p.cmx printf.cmi
queue.cmo: obj.cmi queue.cmi
queue.p.cmx: obj.p.cmx queue.cmi
random.cmo: string.cmi pervasives.cmi nativeint.cmi int64.cmi int32.cmi \
digest.cmi char.cmi array.cmi random.cmi
random.p.cmx: string.p.cmx pervasives.p.cmx nativeint.p.cmx int64.p.cmx int32.p.cmx \
digest.p.cmx char.p.cmx array.p.cmx random.cmi
scanf.cmo: string.cmi printf.cmi pervasives.cmi obj.cmi list.cmi hashtbl.cmi \
buffer.cmi array.cmi scanf.cmi
scanf.p.cmx: string.p.cmx printf.p.cmx pervasives.p.cmx obj.p.cmx list.p.cmx hashtbl.p.cmx \
buffer.p.cmx array.p.cmx scanf.cmi
set.cmo: set.cmi
set.p.cmx: set.cmi
sort.cmo: array.cmi sort.cmi
sort.p.cmx: array.p.cmx sort.cmi
stack.cmo: list.cmi stack.cmi
stack.p.cmx: list.p.cmx stack.cmi
stdLabels.cmo: stringLabels.cmi listLabels.cmi arrayLabels.cmi stdLabels.cmi
stdLabels.p.cmx: stringLabels.p.cmx listLabels.p.cmx arrayLabels.p.cmx stdLabels.cmi
std_exit.cmo:
std_exit.p.cmx:
stream.cmo: string.cmi obj.cmi list.cmi lazy.cmi stream.cmi
stream.p.cmx: string.p.cmx obj.p.cmx list.p.cmx lazy.p.cmx stream.cmi
string.cmo: pervasives.cmi list.cmi char.cmi string.cmi
string.p.cmx: pervasives.p.cmx list.p.cmx char.p.cmx string.cmi
stringLabels.cmo: string.cmi stringLabels.cmi
stringLabels.p.cmx: string.p.cmx stringLabels.cmi
sys.cmo: sys.cmi
sys.p.cmx: sys.cmi
weak.cmo: sys.cmi obj.cmi hashtbl.cmi array.cmi weak.cmi
weak.p.cmx: sys.p.cmx obj.p.cmx hashtbl.p.cmx array.p.cmx weak.cmi

View File

@ -94,3 +94,4 @@ include .depend
depend:
$(CAMLDEP) *.mli *.ml > .depend
$(CAMLDEP) *.ml | sed -e 's/\.cmx/.p.cmx/g' >>.depend

View File

@ -539,11 +539,8 @@ let rec tree_of_type_decl id decl =
let abstr =
match decl.type_kind with
Type_abstract ->
begin match decl.type_manifest with
None -> true
| Some ty -> has_constr_row ty
end
| Type_variant _ | Type_record(_,_) ->
decl.type_manifest = None || decl.type_private = Private
| Type_variant _ | Type_record _ ->
decl.type_private = Private
in
let vari =

View File

@ -49,7 +49,7 @@ type error =
| Private_type of type_expr
| Private_label of Longident.t * type_expr
| Unbound_instance_variable of string
| Instance_variable_not_mutable of string
| Instance_variable_not_mutable of bool * string
| Not_subtype of (type_expr * type_expr) list * (type_expr * type_expr) list
| Outside_class
| Value_multiply_overridden of string
@ -1549,9 +1549,9 @@ let rec type_exp env sexp =
exp_type = instance Predef.type_unit;
exp_env = env }
| Val_ivar _ ->
raise(Error(loc, Instance_variable_not_mutable lab))
raise(Error(loc,Instance_variable_not_mutable(true,lab)))
| _ ->
raise(Error(loc, Unbound_instance_variable lab))
raise(Error(loc,Instance_variable_not_mutable(false,lab)))
with
Not_found ->
raise(Error(loc, Unbound_instance_variable lab))
@ -2393,8 +2393,11 @@ let report_error ppf = function
longident cl
| Unbound_instance_variable v ->
fprintf ppf "Unbound instance variable %s" v
| Instance_variable_not_mutable v ->
fprintf ppf "The instance variable %s is not mutable" v
| Instance_variable_not_mutable (b, v) ->
if b then
fprintf ppf "The instance variable %s is not mutable" v
else
fprintf ppf "The value %s is not an instance variable" v
| Not_subtype(tr1, tr2) ->
report_subtyping_error ppf tr1 "is not a subtype of" tr2
| Outside_class ->

View File

@ -89,7 +89,7 @@ type error =
| Private_type of type_expr
| Private_label of Longident.t * type_expr
| Unbound_instance_variable of string
| Instance_variable_not_mutable of string
| Instance_variable_not_mutable of bool * string
| Not_subtype of (type_expr * type_expr) list * (type_expr * type_expr) list
| Outside_class
| Value_multiply_overridden of string