R quebras de tabela de dados em funções exportadas

Estou tendo um problema para que o data.table funcione nas funções exportadas do roxygen2.

Aqui está uma função simples e falsa em um arquivo chamado foo.R (localizado no diretório R do meu pacote) que usa data.table:

#' Data.table test function
#' @export
foo <- function() {
  m <- data.table(c1 = c(1,2,3))
  print(is.data.table(m))
  m[,sum(c1)]
}

Se eu copiar e colar esta função no R, essa função funcionará bem:

> foo <- function() {
+   m <- data.table(c1 = c(1,2,3))
+   print(is.data.table(m))
+   m[,sum(c1)]
+ }
> foo()
[1] TRUE
[1] 6

Mas se eu simplesmente carregar a função exportada, R acha que o data.table é um data.frame e quebras:

> rm(foo)
> load_all()
Loading test_package
> foo
function() {
  m <- data.table(c1 = c(1,2,3))
  print(is.data.table(m))
  m[,sum(c1)]
}
<environment: namespace:test_package>
> foo()
[1] TRUE
Error in `[.data.frame`(x, i, j) : object 'c1' not found

E aí?

ATUALIZAR

Obrigado a @GSee pela ajuda. Parece que este é realmente um problema de devtools. Confira o código da linha de comando interativo abaixo.

Depois de carregar a biblioteca test_package,foo funciona corretamente:

> foo
function ()
{
    m <- data.table(c1 = c(1, 2, 3))
    print(is.data.table(m))
    m[, sum(c1)]
}
<environment: namespace:test_package>
> foo()
[1] TRUE
[1] 6

Corridaload_all() quebra foo:

> load_all()
Loading test_package
> foo()
[1] TRUE
Error in `[.data.frame`(x, i, j) : object 'c1' not found

De alguma formasource('R/foo.R') revive a funcionalidade foo:

> source('R/foo.R')
> foo
function() {
  m <- data.table(c1 = c(1,2,3))
  print(is.data.table(m))
  m[,sum(c1)]
}
> foo()
[1] TRUE
[1] 6

E chamadas futuras paraload_all() não quebrefoo novamente:

> load_all()
Loading test_package
> foo
function() {
  m <- data.table(c1 = c(1,2,3))
  print(is.data.table(m))
  m[,sum(c1)]
}
> foo()
[1] TRUE
[1] 6

Também atualizei para o devtools 1.5 e tentei adicionar.datatable.aware=TRUE, mas isso não pareceu fazer nada.

questionAnswers(1)

yourAnswerToTheQuestion