From hadley at rice.edu  Tue Nov 16 01:51:09 2010
From: hadley at rice.edu (Hadley Wickham)
Date: Mon, 15 Nov 2010 18:51:09 -0600
Subject: [Rd] Trying to understand the search path and namespaces
In-Reply-To: <AANLkTi=3K0T7qzQnRU-Q8h3RVTDS+UQ5CmcOs4xZJYfD@mail.gmail.com>
References: <AANLkTin090pRti8dXknLKtpFmUmmvRsAz6a0V2mx5iOM@mail.gmail.com>
	<AANLkTi=3K0T7qzQnRU-Q8h3RVTDS+UQ5CmcOs4xZJYfD@mail.gmail.com>
Message-ID: <AANLkTikPE5acZ6CKJeoq9RpphUJffr4W8Lm_8c7O7i08@mail.gmail.com>

> With a small risk of being incorrect (and the chance of learning
> something new), I'll give it a try:
>
> A search for a functions/objects/... that is not in the same package
> environment is done in the order that the search() path gives. ?The
> exception to this iff your package has a namespace, then the 'base'
> package environment is always searched first (before any other
> environments). ?The ordering of the search is important when there
> exist multiple package environments with the same function.
>
> Is that of any help?

Well, that's what I thought too.  But:

parents <- function(x) {
  if (identical(x, emptyenv())) return()
  c(environmentName(x), parents(parent.env(x)))
}
> parents(as.environment("package:devtools"))
[1] "package:devtools" "package:methods"  "Autoloads"        "base"

And package:testthat isn't listed there.  (But Autoloads is suggestive...)

Hadley

-- 
Assistant Professor / Dobelman Family Junior Chair
Department of Statistics / Rice University
http://had.co.nz/



[Rd] Trying to understand the search path and namespaces
Hadley Wickham