Testing more complex struct and enum declarations; fixing subtle bugs