consider abstracts as a with_type for structure declarations only if they allow the assignment (closes #3055)