ClassS *<-* setRefClass*(*'ClassS',

fields = c*(*

 'field.s'

*)*,

methods = list*(*

 initialize = *function**()* *{*

 *return**(*initFields*(*field.s = 0*))*

 *}*

*)*

*)*


ClassM *<-* setRefClass*(*'ClassM',

fields = c*(*

 'field.m'

*)*,

methods = list*(*

 initialize = *function**()* *{*

 *return**(*initFields*(*field.m = 0*))*

 *}*

*)*

*)*


ClassD *<-* setRefClass*(*'ClassD',

contains = c*(*

 'ClassS',

 'ClassM'

*)*,

fields = c*(*

 'field.d'

*)*,

methods = list*(*

 initialize = *function**()* *{*

 initFields*(*field.d = 0*)*

 *return**(*callSuper*())*

 *}*

*)*

*)*

*
*
===


Browse[2]> d = ClassD$new*()*

Browse[2]> d$field.d; d$field.s; d$field.m

[1] 0

[1] 0

An object of class "uninitializedField"

Slot "field":

[1] "field.m"


Slot "className":

[1] "ANY"


Browse[2]> m


===


In other words, initialize isn't being called for M (these classes are named
as such to indicate superclass, mixin, and derived). Is this a known
problem, or am I missing something?

--
Robert Tirrell | rpt@stanford.edu | (607) 437-6532
Program in Biomedical Informatics | Butte Lab | Stanford University

	[[alternative HTML version deleted]]

