docs: protected MethodNode checkGroovyStyleConstructor(final ClassNode node, final ClassNode[] arguments, final ASTNode source) {
          if (node.equals(ClassHelper.OBJECT_TYPE) || node.equals(ClassHelper.DYNAMIC_TYPE)) {
              // in that case, we are facing a list constructor assigned to a def or object
              return null;
          }
          List<ConstructorNode> constructors = node.getDeclaredConstructors();
          if (constructors.isEmpty() && arguments.length == 0) {
              return null;
          }
          List<MethodNode> constructorList = findMethod(node, "<init>", arguments);
          if (constructorList.isEmpty()) {
              if (isBeingCompiled(node) && arguments.length == 1 && LINKEDHASHMAP_CLASSNODE.equals(arguments[0])) {
                  // there will be a default hash map constructor added later
                  ConstructorNode cn = new ConstructorNode(Opcodes.ACC_PUBLIC, new Parameter[]{
                          new Parameter(LINKEDHASHMAP_CLASSNODE, "args")
                  }, ClassNode.EMPTY_ARRAY, EmptyStatement.INSTANCE);
                  return cn;
              } else {
                  addStaticTypeError("No matching constructor found: " + node + toMethodParametersString("<init>", arguments), source);
                  return null;
              }
          } else if (constructorList.size() > 1) {
              addStaticTypeError("Ambiguous constructor call " + node + toMethodParametersString("<init>", arguments), source);
              return null;
          }
          return constructorList.get(0);
      }