Base speculative 'this' assignment on type structure, not syntax

Issue #184