private function addMoreSpecificTypes(array $types) : self
{
$moreSpecificTypes = $this->moreSpecificTypes;
foreach ($types as $exprString => $type) {
$moreSpecificTypes[$exprString] = $type;
}
return new self($this->broker, $this->printer, $this->getFile(), $this->isDeclareStrictTypes(), $this->getClass(), $this->getFunction(), $this->getNamespace(), $this->getVariableTypes(), $this->inClosureBindScopeClass, $this->getAnonymousFunctionReturnType(), $this->isInAnonymousClass() ? $this->getAnonymousClass() : null, $this->getInFunctionCall(), $this->isNegated(), $moreSpecificTypes);
}