title: X is enum - is this according to spec?
body: <p><a href="https://stackoverflow.com/q/2918800/822637">Test if an object is an Enum</a> discusses testing an object with <code>is Enum</code> to see if it contains an enum value.</p>
  
  <p>Is this specified anywhere in the spec? The entry on <code>is</code> (7.10.10 in Version 4.0) lists the following possible right-hand values:</p>
  
  <ul>
  <li>anonymous function</li>
  <li>method group</li>
  <li>null</li>
  <li>reference type ** This might be an enum?</li>
  <li>nullable type</li>
  <li>non-nullable value type ** This might be an enum?</li>
  </ul>
  
  <p>Assuming that an enum value matches "reference type" from the list above - the spec states as follows:</p>
  
  <blockquote>
    <p>...the result is true if D [the dynamic type of the RHS)] and T [the LHS] are the same type, if D is a reference type and an implicit reference conversion from D to T exists, or if D is a value type and a boxing conversion from D to T exists.</p>
  </blockquote>
  
  <p>Are any of these conditions strictly true in the case of <code>is Enum</code>? There is no compiler support for, say, <code>is class</code> or <code>is struct</code>.</p>
  
  <p>So is the support for <code>is Enum</code> according to the specification, or is it an implementation decision?</p>