public function _get_declared_traits(array $traits = [])
{
if (count($this->whitelist['traits'])) {
$traits = [];
foreach ($this->whitelist['traits'] as $name => $value) {
if (trait_exists($name)) {
$traits[strtolower($name)] = $name;
}
}
foreach ($this->definitions['traits'] as $name => $value) {
if (trait_exists($value)) {
$traits[strtolower($name)] = $value;
}
}
return array_values($traits);
} else {
if (count($this->blacklist['traits'])) {
$valid_traits = [];
foreach ($traits as $trait) {
$valid_traits[$this->normalizeTrait($trait)] = $trait;
}
foreach ($this->definitions['traits'] as $name => $value) {
if (trait_exists($value)) {
$valid_traits[$this->normalizeTrait($name)] = $value;
}
}
foreach ($valid_traits as $index => $name) {
if (isset($this->blacklist['traits'][$this->normalizeTrait($name)])) {
unset($valid_traits[$index]);
}
}
return array_values($traits);
}
}
$traits = [];
foreach ($this->definitions['traits'] as $value) {
if (trait_exists($value)) {
$traits[strtolower($value)] = $value;
}
}
return array_values($traits);
}