/** * Visit a node with kind `\ast\AST_USE_TRAIT` * * @param Node $node * A node to parse * * @return Context * A new or an unchanged context resulting from * parsing the node */ public function visitUseTrait(Node $node) : Context { // Bomb out if we're not in a class context $clazz = $this->getContextClass(); $trait_fqsen_string_list = AST::qualifiedNameList($this->context, $node->children['traits']); // Add each trait to the class foreach ($trait_fqsen_string_list as $trait_fqsen_string) { $trait_fqsen = FullyQualifiedClassName::fromStringInContext($trait_fqsen_string, $clazz->getContext()); $clazz->addTraitFQSEN($trait_fqsen); } return $this->context; }