title: Twig's `is not none` syntax
body: <p>When overloading Symfony's form templates I've come across strange checks in <code>choice_widget_collapsed</code> in <code>form_div_layout.html.twig</code>.</p>
  
  <pre><code>{%- block choice_widget_collapsed -%}
      {%- if required and placeholder is none and not placeholder_in_choices and not multiple and (attr.size is not defined or attr.size &lt;= 1) -%}
          {% set required = false %}
      {%- endif -%}
      &lt;select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}&gt;
          {%- if placeholder is not none -%}
              &lt;option value=""{% if required and value is empty %} selected="selected"{% endif %}&gt;{{ placeholder != '' ? (translation_domain is same as(false) ? placeholder : placeholder|trans({}, translation_domain)) }}&lt;/option&gt;
          {%- endif -%}
          {%- if preferred_choices|length &gt; 0 -%}
              {% set options = preferred_choices %}
              {{- block('choice_widget_options') -}}
              {%- if choices|length &gt; 0 and separator is not none -%}
                  &lt;option disabled="disabled"&gt;{{ separator }}&lt;/option&gt;
              {%- endif -%}
          {%- endif -%}
          {%- set options = choices -%}
          {{- block('choice_widget_options') -}}
      &lt;/select&gt;
  {%- endblock choice_widget_collapsed -%}
  </code></pre>
  
  <p>What's the meaning of <code>if placeholder is not none</code>? I haven't encountered such syntax in Twig documentation, and googling it I've found only code copied from around the same file with no explanation.</p>
  
  <p>I'm curious, why not <code>is not null</code>, <code>is not empty</code>, <code>is defined</code>? Where is <code>none</code> defined?</p>