Forum

Annotating an IOBox String to Spread<String> throws exception on b38

vl

#1

On b38, when creating an IOBox (String) via double right-clic menu and changing its type to Spread<String>, the following exception pops : System.InvalidCastException: Unable to cast object of type 'VL.Lib.Collections.Spread 1[System.String]' to type 'System.String'. Full log is here.

Steps to reproduce :

  • Create a new VL document
  • Create an IOBox String via double right-clic menu
  • Change its type to Spread<String> via middle-clic
  • Exception pops right away
  • After the exception has popped, the IOBox is filled with :

image

See the following gif :

spread_b38

  • The same thing does not happen if I create an IOBox (Float32) and change its type to Spread<Float32>.
  • Tested on two different machines, same behavior
  • This behavior does not happen on b37

Can anyone confirm ?


#2

Thanks for the report. As a workaround until this is fixed I’d recommend creating a Generic IO box first and then do the type annotation. The exception only seems to come up when going from one type to another.


#3

Hei Elias,

Thanks for your answer.

Why doesn’t it happen if I do Float32 to Spread<Float32> then ?

Also, annotating a generic IOBox to Spread acts weird, see gif :

spread_b38_generic

Looks like it’s creating an empty slice for each character I’ve typed : “a,b,c” = 5 slices.

EDIT : on the other hand, annotating a generic IOBox to Spread<Float32> behaves normally.


#4

Funny. Well I’ll need to investigate and basically fix what you describe. Thanks again, will report back once done.