diff options
Diffstat (limited to 'testsuite/tests/typing-objects/Tests.compilers.reference')
-rw-r--r-- | testsuite/tests/typing-objects/Tests.compilers.reference | 316 |
1 files changed, 0 insertions, 316 deletions
diff --git a/testsuite/tests/typing-objects/Tests.compilers.reference b/testsuite/tests/typing-objects/Tests.compilers.reference deleted file mode 100644 index 3c287ec0b2..0000000000 --- a/testsuite/tests/typing-objects/Tests.compilers.reference +++ /dev/null @@ -1,316 +0,0 @@ -- : < x : int > -> - < x : int > -> < x : int > -> < x : int > * < x : int > * < x : int > -= <fun> -class ['a] c : unit -> object constraint 'a = int method f : int c end -and ['a] d : unit -> object constraint 'a = int method f : int c end -Characters 230-271: - ....and d () = object - inherit ['a] c () - end.. -Error: Some type variables are unbound in this type: - class d : unit -> object method f : 'a -> unit end - The method f has type 'a -> unit where 'a is unbound -class virtual c : unit -> object end -and ['a] d : - unit -> object constraint 'a = < x : int; .. > method f : 'a -> int end -class ['a] c : unit -> object constraint 'a = int end -and ['a] d : unit -> object constraint 'a = int #c end -class ['a] c : - 'a -> object ('a) constraint 'a = < f : 'a; .. > method f : 'a end -- : ('a c as 'a) -> 'a = <fun> -Characters 128-176: - class x () = object - method virtual f : int - end.. -Error: This class should be virtual. The following methods are undefined : f -Characters 144-152: - class virtual c ((x : 'a): < f : int >) = object (_ : 'a) end - ^^^^^^^^ -Error: This pattern cannot match self: it only matches values of type - < f : int > -Characters 32-110: - class ['a] c () = object - constraint 'a = int - method f x = (x : bool c) - end.. -Error: The abbreviation c is used with parameters bool c - which are incompatible with constraints int c -class ['a, 'b] c : - unit -> - object - constraint 'a = int -> 'c - constraint 'b = 'a * < x : 'b > * 'c * 'd - method f : 'a -> 'b -> unit - end -class ['a, 'b] d : - unit -> - object - constraint 'a = int -> 'c - constraint 'b = 'a * < x : 'b > * 'c * 'd - method f : 'a -> 'b -> unit - end -val x : '_weak1 list ref = {contents = []} -Characters 0-50: - class ['a] c () = object - method f = (x : 'a) - end.. -Error: The type of this class, - class ['a] c : - unit -> object constraint 'a = '_weak1 list ref method f : 'a end, - contains type variables that cannot be generalized -Characters 21-53: - type 'a c = <f : 'a c; g : 'a d> - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Error: In the definition of d, type int c should be 'a c -type 'a c = < f : 'a c; g : 'a d > -and 'a d = < f : 'a c > -type 'a c = < f : 'a c > -and 'a d = < f : int c > -Characters 22-39: - and 'a t = 'a t u;; (* fails since 4.04 *) - ^^^^^^^^^^^^^^^^^ -Error: The definition of t contains a cycle: - 'a t u -Characters 15-32: - and 'a t = 'a t u;; - ^^^^^^^^^^^^^^^^^ -Error: The type abbreviation t is cyclic -type 'a u = 'a -Characters 0-18: - type t = t u * t u;; - ^^^^^^^^^^^^^^^^^^ -Error: The type abbreviation t is cyclic -type t = < x : 'a > as 'a -type 'a u = 'a -- : t -> t u -> bool = <fun> -- : t -> t u -> bool = <fun> -module M : - sig - class ['a, 'b] c : - int -> - 'b -> - object - constraint 'a = int -> bool - val x : float list - val y : 'b - method f : 'a -> unit - method g : 'b - end - end -module M' : - sig - class virtual ['a, 'b] c : - int -> - 'b -> - object - constraint 'a = int -> bool - val x : float list - val y : 'b - method f : 'a -> unit - method g : 'b - end - end -class ['a, 'b] d : - unit -> - 'b -> - object - constraint 'a = int -> bool - val x : float list - val y : 'b - method f : 'a -> unit - method g : 'b - end -class ['a, 'b] e : - unit -> - 'b -> - object - constraint 'a = int -> bool - val x : float list - val y : 'b - method f : 'a -> unit - method g : 'b - end -- : string = "a" -- : int = 10 -- : float = 7.1 -- : bool = true -module M : sig class ['a] c : unit -> object method f : 'a -> unit end end -module M' : sig class ['a] c : unit -> object method f : 'a -> unit end end -- : ('a #M.c as 'b) -> 'b = <fun> -- : ('a #M'.c as 'b) -> 'b = <fun> -class ['a] c : 'a #c -> object end -class ['a] c : 'a #c -> object end -class c : unit -> object method f : int end -and d : unit -> object method f : int end -class e : unit -> object method f : int end -- : int = 2 -Characters 30-34: - class c () = object val x = - true val y = -. () end;; - ^^^^ -Error: This expression has type bool but an expression was expected of type - int -class c : unit -> object method f : int method g : int method h : int end -class d : unit -> object method h : int method i : int method j : int end -class e : - unit -> - object - method f : int - method g : int - method h : int - method i : int - method j : int - end -val e : e = <obj> -- : int * int * int * int * int = (1, 3, 2, 2, 3) -class c : 'a -> object val a : 'a val x : int val y : int val z : int end -class d : 'a -> object val b : 'a val t : int val u : int val z : int end -Characters 42-45: - inherit c 5 - ^^^ -Warning 13: the following instance variables are overridden by the class c : - x -The behaviour changed in ocaml 3.10 (previous behaviour was hiding.) -Characters 52-53: - val y = 3 - ^ -Warning 13: the instance variable y is overridden. -The behaviour changed in ocaml 3.10 (previous behaviour was hiding.) -Characters 80-83: - inherit d 7 - ^^^ -Warning 13: the following instance variables are overridden by the class d : - t z -The behaviour changed in ocaml 3.10 (previous behaviour was hiding.) -Characters 90-91: - val u = 3 - ^ -Warning 13: the instance variable u is overridden. -The behaviour changed in ocaml 3.10 (previous behaviour was hiding.) -class e : - unit -> - object - val a : int - val b : int - val t : int - val u : int - val x : int - val y : int - val z : int - method a : int - method b : int - method t : int - method u : int - method x : int - method y : int - method z : int - end -val e : e = <obj> -- : int * int * int * int * int * int * int = (1, 3, 2, 2, 3, 5, 7) -class c : - int -> - int -> object val x : int val y : int method x : int method y : int end -class d : - int -> - int -> object val x : int val y : int method x : int method y : int end -- : int * int = (1, 2) -- : int * int = (1, 2) -class ['a] c : 'a -> object end -- : 'a -> 'a c = <fun> -module M : sig class c : unit -> object method xc : int end end -class d : unit -> object val x : int method xc : int method xd : int end -- : int * int = (1, 2) -Characters 1-154: - class virtual ['a] matrix (sz, init : int * 'a) = object - val m = Array.make_matrix sz sz init - method add (mtx : 'a matrix) = (mtx#m.(0).(0) : 'a) - end.. -Error: The abbreviation 'a matrix expands to type < add : 'a matrix -> 'a > - but is used with type < m : 'a array array; .. > -class c : unit -> object method m : c end -- : c = <obj> -module M : sig class c : unit -> object method m : c end end -- : M.c = <obj> -type uu = A of int | B of (< leq : 'a > as 'a) -class virtual c : unit -> object ('a) method virtual m : 'a end -module S : sig val f : (#c as 'a) -> 'a end -Characters 12-43: - ............struct - let f (x : #c) = x - end...... -Error: Signature mismatch: - Modules do not match: - sig val f : (#c as 'a) -> 'a end - is not included in - sig val f : #c -> #c end - Values do not match: - val f : (#c as 'a) -> 'a - is not included in - val f : #c -> #c -Characters 38-39: - module M = struct type t = int class t () = object end end;; - ^ -Error: Multiple definition of the type name t. - Names must be unique in a given structure or signature. -- : < m : (< m : 'a > as 'b) -> 'b as 'a; .. > -> 'b = <fun> -Characters 10-39: - fun x -> (x : int -> bool :> 'a -> 'a);; - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Error: Type int -> bool is not a subtype of int -> int - Type bool is not a subtype of int -Characters 9-40: - fun x -> (x : int -> bool :> int -> int);; - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Error: Type int -> bool is not a subtype of int -> int - Type bool is not a subtype of int -- : < > -> < > = <fun> -- : < .. > -> < > = <fun> -val x : '_weak2 list ref = {contents = []} -module F : functor (X : sig end) -> sig type t = int end -- : < m : int > list ref = {contents = []} -type 'a t -Characters 9-19: - fun (x : 'a t as 'a) -> ();; - ^^^^^^^^^^ -Error: This alias is bound to type 'a t but is used as an instance of type 'a - The type variable 'a occurs inside 'a t -Characters 19-20: - fun (x : 'a t) -> (x : 'a); ();; - ^ -Error: This expression has type 'a t but an expression was expected of type - 'a - The type variable 'a occurs inside 'a t -type 'a t = < x : 'a > -- : ('a t as 'a) -> unit = <fun> -Characters 18-26: - fun (x : 'a t) -> (x : 'a); ();; - ^^^^^^^^ -Warning 10: this expression should have type unit. -- : ('a t as 'a) t -> unit = <fun> -class ['a] c : - unit -> - object constraint 'a = (< .. > as 'b) -> unit method m : 'b -> unit end -class ['a] c : - unit -> - object constraint 'a = unit -> (< .. > as 'b) method m : 'a -> 'b end -class c : unit -> object method private m : int method n : int end -class d : - unit -> object method private m : int method n : int method o : int end -- : int * int = (1, 1) -class c : unit -> object method m : int end -val r : int ref = {contents = 0} -val id : < .. > -> int = <fun> -- : unit = () -- : int = 1 -- : int = 2 -- : int * int * int = (3, 4, 5) -- : int * int * int * int * int = (6, 7, 8, 33, 33) -- : int * int * int * int * int * int * int = (9, 10, 10, 11, 11, 33, 33) -Characters 42-69: - class a = let _ = new b in object end - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Error: This kind of recursive class expression is not allowed -Characters 11-38: - class a = let _ = new a in object end;; - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Error: This kind of recursive class expression is not allowed - |