void UseTraitStatement::onParseRecur(AnalysisResultConstPtr ar, ClassScopePtr scope) { if (scope->isInterface()) { parseTimeFatal(Compiler::InvalidTraitStatement, "Interfaces cannot use traits"); } vector<string> usedTraits; getUsedTraitNames(usedTraits); for (auto &t : usedTraits) { ar->parseOnDemandByClass(Util::toLower(t)); } scope->addUsedTraits(usedTraits); }
void UseTraitStatement::onParseRecur(AnalysisResultConstRawPtr ar, FileScopeRawPtr fs, ClassScopePtr scope) { if (scope->isInterface()) { parseTimeFatal(fs, "Interfaces cannot use traits"); } std::vector<std::string> usedTraits; getUsedTraitNames(usedTraits); for (auto &t : usedTraits) { ar->parseOnDemandByClass(toLower(t)); } scope->addUsedTraits(usedTraits); }