probcomp / Genify.jl

Automatically convert Julia methods to Gen functions.
Apache License 2.0
47 stars 1 forks source link

`unpack_tuple` not sufficiently general #3

Open femtomc opened 3 years ago

femtomc commented 3 years ago

Misses this case in IR:

 %6 = Main.AutoAddressing2.Jaynes.trace(%18, Main.AutoAddressing2.Jaynes.flatten, %5)
  %7 = Base.getindex(%6, 1)
  %8 = Base.lastindex(%6)
  %9 = 2:%8
  %10 = Base.getindex(%6, %9)
  %11 = Core._apply_iterate(Base.iterate, Main.AutoAddressing2.Jaynes.simulate, %10)

Here, the variable will hold a tuple after the call to getindex - but it can't be checked statically with the current unpack_tuple checks.

ztangent commented 3 years ago

I think I fixed this with the most recent commit, but I'm not sure how to construct a test case -- let me know if you have one!