message: refactor(//core/conversion): Seperate out special op cases
diff: @@ -20,8 +20,11 @@ namespace conversion {
  bool isNodeConversionIgnored(const torch::jit::Node* n);
  bool OpSupported(const torch::jit::Node* n) {
  - return evaluators::shouldEvalAtConversionTime(n) || converters::node_is_convertable(n) ||
  - n->kind() == torch::jit::prim::Loop || n->kind() == torch::jit::prim::If;
  + return evaluators::shouldEvalAtConversionTime(n) || converters::node_is_convertable(n);
  +}
  +
  +bool SpecialCaseSupport(const torch::jit::Node* n) {
  + return n->kind() == torch::jit::prim::Loop || n->kind() == torch::jit::prim::If;
  }
  c10::optional<torch::jit::IValue> EvaluateNode(ConversionCtx* ctx, const torch::jit::Node* n, int level, int limit) {
  @@ -500,7 +503,7 @@ std::unordered_map<c10::OperatorName, std::string> GetUnsupportedOpsInBlock(cons
  auto schema = n->maybeSchema();
  // Some ops like torch::jit::prim::Loop, torch::jit::prim::If, torch::jit::prim::DictConstruct don't have a schema
  // but they are supported. torch::jit::prim::DictConstruct is supported via fallback only
  - if (!OpSupported(n)) {
  + if (!OpSupported(n) && !SpecialCaseSupport(n)) {
  if (schema) {
  std::stringstream ss;
  ss << *schema;
  