You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 4561 Reporter: palomer Status: closed (set by @garrigue on 2008-06-04T07:33:49Z) Resolution: fixed Priority: normal Severity: crash Version: 3.09.1 Fixed in version: 3.10.3+dev Category: ~DO NOT USE (was: OCaml general) Duplicate of:#4560
Bug description
Here's another piece of code (much more complicated) that segfaults:
class virtual bottle_environment =
object
method virtual gladiators : string list
method virtual bottles : bottle list
end
and virtual bottle =
object
method virtual action : (unit -> bottle_environment option)
end
type outer_space = {
foo : int list
}
let empty_outer_space =
{
class virtual baggy_expression_skel =
object(self)
inherit expression_skel
method get_bottle_environment =
object
method gladiators = ([]:string list)
method bottles = [self#get_silly_bottle]
end
end
class virtual papa_expression_skel =
object(self)
method get_right_sibling_specific = print_endline "im being called, though I shouldn't" ; (None:expression option)
inherit expression
end
class papa_baggy_expression =
object(self)
inherit baggy_expression_skel
inherit papa_expression_skel
end
class top_baggy_expression =
object(self)
inherit baggy_expression_skel
end
let _ =
let body_expression = new top_baggy_expression in
let e = new papa_baggy_expression in
ignore ((body_expression#get_bottle_environment)#bottles);
let sugg = e#get_silly_bottle in
match sugg#action () with
| None -> ()
| Some y ->
ignore (y#gladiators)
The text was updated successfully, but these errors were encountered:
Original bug ID: 4561
Reporter: palomer
Status: closed (set by @garrigue on 2008-06-04T07:33:49Z)
Resolution: fixed
Priority: normal
Severity: crash
Version: 3.09.1
Fixed in version: 3.10.3+dev
Category: ~DO NOT USE (was: OCaml general)
Duplicate of: #4560
Bug description
Here's another piece of code (much more complicated) that segfaults:
class virtual bottle_environment =
object
method virtual gladiators : string list
method virtual bottles : bottle list
end
and virtual bottle =
object
method virtual action : (unit -> bottle_environment option)
end
type outer_space = {
foo : int list
}
let empty_outer_space =
{
}
class virtual expression =
object
method virtual get_silly_bottle : bottle
end
class virtual expression_skel =
object(self)
inherit expression
method bambam = empty_outer_space
method get_silly_bottle =
(object
inherit bottle
method action () =
Some (object
method gladiators =
print_endline "entering bottles";
ignore (self#bambam.foo);
["enter "]
method bottles =
end)
end
class virtual baggy_expression_skel =
object(self)
inherit expression_skel
method get_bottle_environment =
object
method gladiators = ([]:string list)
method bottles = [self#get_silly_bottle]
end
end
class virtual papa_expression_skel =
object(self)
method get_right_sibling_specific = print_endline "im being called, though I shouldn't" ; (None:expression option)
inherit expression
end
class papa_baggy_expression =
object(self)
inherit baggy_expression_skel
inherit papa_expression_skel
end
class top_baggy_expression =
object(self)
inherit baggy_expression_skel
end
let _ =
let body_expression = new top_baggy_expression in
let e = new papa_baggy_expression in
ignore ((body_expression#get_bottle_environment)#bottles);
let sugg = e#get_silly_bottle in
match sugg#action () with
| None -> ()
| Some y ->
ignore (y#gladiators)
The text was updated successfully, but these errors were encountered: