Commits

Slava Pestov committed 8b3753b9958
AST: Split up RecursiveTypePropeties::isMaterializable() into sub-cases and fix a bug We already had isLValue(), which implied !isMaterializable(). Now, add separate flags for hasInOut() and hasDefaultArg(). The old isMaterializable() predicate is still provided, by testing for all three flags. The new predicates are not used for now, but will be soon as part of reabstraction thunk changes required for resilience. Also two fixes: 1) Before this change RecursiveTypeProperties was incorrectly sized at 8 bits when it actually needs 9. This fixes a regression from SVN r31130, "Introduce a new UnresolvedType to the type system". 2) DynamicSelf::get() would clear out non-materializability but not lvalue-ness of its base type, which looks like an old copy/paste and not intentional. Stick an assert there instead.