docs: @SuppressWarnings("unchecked")
      private <E> E analyzeMethod(ClassContext classContext, Class<E> analysisClass, MethodDescriptor methodDescriptor)
              throws CheckedAnalysisException {
          IMethodAnalysisEngine<E> engine = (IMethodAnalysisEngine<E>) methodAnalysisEngineMap.get(analysisClass);
          if (engine == null) {
              throw new IllegalArgumentException("No analysis engine registered to produce " + analysisClass.getName());
          }
          Profiler profiler = getProfiler();
          profiler.start(engine.getClass());
          try {
              return engine.analyze(this, methodDescriptor);
          } finally {
              profiler.end(engine.getClass());
          }
      }