Fix for #2907, labels on varlength patterns where not checked properly.
Make type rules in Add clearer

Taken from #3235
Merge pull request #3245 from cleishm/type_clearup

[2.0] Make type rules in Add clearer
Merge pull request #3240 from pontusmelke/issue-2907

[2.0] Fix for #2907, labels on varlength patterns where not checked properly.
Merge remote-tracking branch 'upstream/2.0-maint' into 2.1-maint