public ReachabilitySummary SummarizeMethod(IMethodDefinition methodDefinition, WholeProgram wholeProgram) {
      // if there is an implementation available (e.g. we can get to opcodes)
      if (methodDefinition.IsExternal == false && methodDefinition.IsAbstract == false) {
        BytecodeVisitor visitor = new BytecodeVisitor();

        // foreach MSIL instruction in the method
        foreach (var op in methodDefinition.ResolvedMethod.Body.Operations) {
          visitor.Visit(op); // handle the opcode
        }

        return visitor.GetSummary();
      }
      else {
        return null;
      }
    }
        public ReachabilitySummary SummarizeMethod(IMethodDefinition methodDefinition, WholeProgram wholeProgram)
        {
            // if there is an implementation available (e.g. we can get to opcodes)
            if (methodDefinition.IsExternal == false && methodDefinition.IsAbstract == false)
            {
                BytecodeVisitor visitor = new BytecodeVisitor();

                // foreach MSIL instruction in the method
                foreach (var op in methodDefinition.ResolvedMethod.Body.Operations)
                {
                    visitor.Visit(op); // handle the opcode
                }

                return(visitor.GetSummary());
            }
            else
            {
                return(null);
            }
        }