<p dir="auto"><strong>Symfony version(s) affected</strong>: 3.4.16</p>
<p dir="auto"><strong>Description</strong><br>
/usr/bin/php ./bin/console lint:twig src<br>
PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Type error: Argument 1 passed to Twig_Environment::addExtension() must implement interface Twig_ExtensionInterface, boolean given, called in /var/cache/dev/ContainerLpxnnt7/appDevDebugProjectContainer.php on line 880 in /vendor/twig/twig/lib/Twig/Environment.php:670</p>
<p dir="auto"><strong>How to reproduce</strong><br>
I just updated the symfony library and pass twig lint.</p>
<p dir="auto">If I get back, it pass.</p>
<p dir="auto"><strong>Symfony version(s) affected</strong>: 3.4.16</p>
<p dir="auto"><strong>Description</strong><br>
After update to 3.4.16 version inlined dependencies (in my case with circular dependencies) dumped with use <code class="notranslate">$this-&gt;privates</code> value from the container for return as service.<br>
But every value from <code class="notranslate">$this-&gt;privates</code> is a boolean.</p>
<p dir="auto"><strong>How to reproduce</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="git clone https://github.com/andrew-demb/sf-di-3.4.16-circular-reference-dump.git
cd sf-di-3.4.16-circular-reference-dump/
php bug.php"><pre class="notranslate"><code class="notranslate">git clone https://github.com/andrew-demb/sf-di-3.4.16-circular-reference-dump.git
cd sf-di-3.4.16-circular-reference-dump/
php bug.php
</code></pre></div>
<p dir="auto"><strong>Additional context</strong><br>
Repository with reproduce script: <a href="https://github.com/andrew-demb/sf-di-3.4.16-circular-reference-dump">https://github.com/andrew-demb/sf-di-3.4.16-circular-reference-dump</a></p>
<p dir="auto">This PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="358035187" data-permission-text="Title is private" data-url="https://github.com/symfony/symfony/issues/28388" data-hovercard-type="pull_request" data-hovercard-url="/symfony/symfony/pull/28388/hovercard" href="https://github.com/symfony/symfony/pull/28388">#28388</a> represents a change for PhpDumper to use <code class="notranslate">privates</code> in dumped container.</p>
<p dir="auto">Some pieces from cached container:</p>
<div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="class ProjectServiceContainer extends Container
{
    private $parameters;
    private $targetDirs = array();

    public function __construct()
    {
        $this-&gt;services = array();
        $this-&gt;methodMap = array(
            'service_one' =&gt; 'getServiceOneService',
            'service_two' =&gt; 'getServiceTwoService',
        );
        $this-&gt;privates = array(
            'service_one' =&gt; true,
            'service_two' =&gt; true,
        );

        $this-&gt;aliases = array();
    }
// ...
    protected function getServiceTwoService()
    {
        $a = ${($_ = isset($this-&gt;services['service_one']) ? $this-&gt;services['service_one'] : $this-&gt;getServiceOneService()) &amp;&amp; false ?: '_'};

        if (isset($this-&gt;privates['service_two'])) {
            return $this-&gt;privates['service_two'];
        }

        return $this-&gt;services['service_two'] = new \ArrayObject(array('source' =&gt; $a));
    }"><pre class="notranslate"><span class="pl-k">class</span> <span class="pl-v">ProjectServiceContainer</span> <span class="pl-k">extends</span> <span class="pl-v">Container</span>
{
    <span class="pl-k">private</span> <span class="pl-c1"><span class="pl-c1">$</span>parameters</span>;
    <span class="pl-k">private</span> <span class="pl-c1"><span class="pl-c1">$</span>targetDirs</span> = <span class="pl-en">array</span>();

    <span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">__construct</span>()
    {
        <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">services</span> = <span class="pl-en">array</span>();
        <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">methodMap</span> = <span class="pl-en">array</span>(
            <span class="pl-s">'service_one'</span> =&gt; <span class="pl-s">'getServiceOneService'</span>,
            <span class="pl-s">'service_two'</span> =&gt; <span class="pl-s">'getServiceTwoService'</span>,
        );
        <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">privates</span> = <span class="pl-en">array</span>(
            <span class="pl-s">'service_one'</span> =&gt; <span class="pl-c1">true</span>,
            <span class="pl-s">'service_two'</span> =&gt; <span class="pl-c1">true</span>,
        );

        <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">aliases</span> = <span class="pl-en">array</span>();
    }
<span class="pl-c">// ...</span>
    <span class="pl-k">protected</span> <span class="pl-k">function</span> <span class="pl-en">getServiceTwoService</span>()
    {
        <span class="pl-s1"><span class="pl-c1">$</span>a</span> = <span class="pl-c1">$</span>{(<span class="pl-s1"><span class="pl-c1">$</span>_</span> = isset(<span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">services</span>[<span class="pl-s">'service_one'</span>]) ? <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">services</span>[<span class="pl-s">'service_one'</span>] : <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-en">getServiceOneService</span>()) &amp;&amp; <span class="pl-c1">false</span> ?: <span class="pl-s">'_'</span>};

        <span class="pl-k">if</span> (isset(<span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">privates</span>[<span class="pl-s">'service_two'</span>])) {
            <span class="pl-k">return</span> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">privates</span>[<span class="pl-s">'service_two'</span>];
        }

        <span class="pl-k">return</span> <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-&gt;<span class="pl-c1">services</span>[<span class="pl-s">'service_two'</span>] = <span class="pl-k">new</span> \<span class="pl-v">ArrayObject</span>(<span class="pl-en">array</span>(<span class="pl-s">'source'</span> =&gt; <span class="pl-s1"><span class="pl-c1">$</span>a</span>));
    }</pre></div>
<p dir="auto">YAML config</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="services:
    service_one:
        class: ArrayObject
        calls:
            - [ offsetSet, ['sv', '@service_two'] ]

    service_two:
        class: ArrayObject
        arguments:
            -
                source: '@service_one'"><pre class="notranslate"><code class="notranslate">services:
    service_one:
        class: ArrayObject
        calls:
            - [ offsetSet, ['sv', '@service_two'] ]

    service_two:
        class: ArrayObject
        arguments:
            -
                source: '@service_one'
</code></pre></div>