From sfalcon at fhcrc.org  Fri Sep 22 06:52:00 2006
From: sfalcon at fhcrc.org (Seth Falcon)
Date: Thu, 21 Sep 2006 21:52:00 -0700
Subject: [Rd] Possible bug in base::namespaceImportFrom?
Message-ID: <m2bqp8mrkf.fsf@ziti.local>

Hi,

namespaceImportFrom in base/R/namespace.R has the following:

       fdef <- methods:::getGeneric(genName, impenv)

The definition of getGeneric is in methods/R/RMethodUtils.R starts
with:

    getGeneric <-
      ## return the definition of the function named f as a generic.
      ##
      ## If there is no definition, throws an error or returns
      ## NULL according to the value of mustFind.
      function(f, mustFind = FALSE, where = .genEnv(f, topenv(parent.frame()), package),
               package = "")

I think the call to getGeneric in namespaceImportFrom should use named
arguments because impenv, an environment, will be assigned to the
mustFind arg which is most likely not desired.

An example where this seems to show up is in the check reports for
GOstats:

   http://bioconductor.org/checkResults/1.9/gopher5-GOstats-checksrc.html

Here's the snip from the check output (the results may have been
updated in the meantime):

    * checking whether the name space can be loaded with stated dependencies ... WARNING
    Loading required package: methods
    Error in if (mustFind) stop(gettextf("no generic function found for \"%s\"",  : 
    	argument is not interpretable as logical
    In addition: Warning message:
    the condition has length > 1 and only the first element will be used in: if (mustFind) stop(gettextf("no generic function found for \"%s\"",  
    Execution halted

I'm having trouble reproducing it on my local system, but thought I
would bring it to the team's attention.

Best,

+ seth




[Rd] Possible bug in base::namespaceImportFrom?
Seth Falcon