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);
}
예제 #2
0
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);
}