title: Get the actual enum type from a nullable enum type in a switch statement during roslyn analyis
body: <p>I would like to analyse a switch statement, that uses a &quot;nullable enum&quot; to decide.
  I have the following class that I would like to analyze:</p>
  <pre><code>namespace Common.Model.Schema
  {
      public enum ModuleType
      {
          Case1,
          Case2,
          Case3
      }   
  }
  
  namespace Analyzer.Test
  {
      using Common.Model.Schema;
  
      public class Test
      {
          private static void GetSelectedAblageOrdner()
          {
              ModuleType? moduleType = null;
              switch (moduleType)
              {
                  case ModuleType.Case1:
                  {
                      break;
                  }
              }
          }
      }
  }
  </code></pre>
  <p>When the input of the switch is <strong>not</strong> nullable, I can use the following code and I have the correct type to do my analysis on.</p>
  <pre><code>TypeInfo typeInfo = context.SemanticModel.GetTypeInfo(expression);
  ITypeSymbol expressionType = typeInfo.ConvertedType;
  if (!(expressionType is INamedTypeSymbol namedType))
  {
      return;
  }
  
  switch (namedType.EnumUnderlyingType.Name)
  {
        // do stuff
  }
  </code></pre>
  <p>But with nullable enum the convertedType is <code>Nullable&lt;ModuleType&gt;</code> (or in other words <code>ModuleType?</code>). This makes the property <code>EnumUnderlyingType</code> etc. NULL. I need the actual enum so I can continue.</p>
  <p>How do I get to the <code>ModuleType</code>, so I can continue my default algorithm I have for non-nullable enums?</p>