[Rd] Namespace/inheritance problem in S4 methods for a union class

Renaud Gaujoux renaud at mancala.cbio.uct.ac.za
Wed May 8 08:05:48 CEST 2013


Hi,

I started this post on bioc-devel but this seems to be more general:

https://stat.ethz.ch/pipermail/bioc-devel/2013-May/004311.html

See reproducible example from Martin below.

Thank you.

Renaud

---------- Forwarded message ----------
From: Martin Morgan <mtmorgan at fhcrc.org>
Date: 7 May 2013 19:55
Subject: Re: [Bioc-devel] ExpressionSet and LumiBatch: inheritance problem
in S4 methods for union class
To: Renaud Gaujoux <renaud at mancala.cbio.uct.ac.za>
Cc: bioc-devel at r-project.org, dupan.mail at gmail.com

I can replicate this with a simpler example, where PkgA has

  setClass("A", representation(x="numeric"))

with NAMESPACE

  import(methods)
  exportClasses("A")

PkgB has

  setClass("B", contains="A")

NAMESPACE

  import(methods)
  importClassesFrom("PkgA", "A")
  exportClasses("B")

and then

  library(PkgA); library(PkgB)
  setClassUnion("C", c("matrix", "A"))
  setGeneric("do", function(x) standardGeneric("do"))
  setMethod("do", "C", function(x) "done")

leading to

  > do(new("A"))
  [1] "done"
  > do(new("B"))

  Error in (function (classes, fdef, mtable)  :
    unable to find an inherited method for function ‘do’ for signature ‘"B"’

suggesting name space issues rather than something about ExpressionSet. The
sample packages and test script are attached; it would be appropriate to
pursue this on the R-devel mailing list.

Martin

-- 
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793
-------------- next part --------------
A non-text attachment was scrubbed...
Name: setClassUnion.tar.gz
Type: application/x-gzip
Size: 777 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20130508/cf4cbfb4/attachment.gz>


More information about the R-devel mailing list