brodieG / vetr

Trust, but Verify
79 stars 2 forks source link

Ensure `match.call` corner cases handled properly #23

Closed brodieG closed 7 years ago

brodieG commented 7 years ago

Now that we've switched away from 'match_call', need to verify all the cases we wrote 'match_call' for are properly handled.

Also, some errors in existing tests:

> fun7 <- function(x, y = z + 2) {
+     z <- "boom"
+     vetr(x = TRUE, y = 1L)
+ }
> fun7a <- function(x, y = z + 2) {
+     z <- 40
+     vetr(x = TRUE, y = 1L)
+ }
> z <- 1

# fail because z in fun is character

> fun7(TRUE)
Error in vetr(x = TRUE, y = 1L) : 
  Need to implement deparsing of tag since this could be lang now

| Conditions mismatch: 

< .REF$conditions                                                               
> .NEW$conditions                                                               
@@ 1,3 / 1,3 @@                                                                 
  Condition list with 1 condition:                                              
< 1. Error in fun7(x = TRUE, y = z + 2) : Argument `y` produced error during    
> 1. Error in vetr(x = TRUE, y = 1L) : Need to implement deparsing of tag since 
<    evaluation; see previous error.                                            
>    this could be lang now                                                     

unitizer> N

# works

> fun7a(TRUE)
Error in vetr(x = TRUE, y = 1L) : 
  Need to implement deparsing of tag since this could be lang now

| Value mismatch: 

< .ref      > .new    
@@ 1 @@     @@ 1 @@   
< [1] TRUE  > NULL    

| Conditions mismatch: 

< .REF$conditions                                                               
> .NEW$conditions                                                               
@@ 1 / 1,3 @@                                                                   
< Empty condition list                                                          
> Condition list with 1 condition:                                              
> 1. Error in vetr(x = TRUE, y = 1L) : Need to implement deparsing of tag since 
>    this could be lang now