// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`inferParams (typescript) 1`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "a",
    "title": "param",
    "type": Object {
      "name": "string",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams (typescript) 2`] = `
Array [
  Object {
    "anonymous": true,
    "name": "$0",
    "properties": Array [
      Object {
        "lineNumber": 1,
        "name": "$0.0",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
      Object {
        "lineNumber": 1,
        "name": "$0.1",
        "title": "param",
      },
      Object {
        "anonymous": true,
        "name": "$0.2",
        "properties": Array [
          Object {
            "lineNumber": 1,
            "name": "$0.2.c",
            "title": "param",
          },
        ],
        "title": "param",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
    ],
    "title": "param",
    "type": Object {
      "name": "Array",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams (typescript) 3`] = `
Array [
  Object {
    "default": "4",
    "lineNumber": 1,
    "name": "x",
    "title": "param",
    "type": Object {
      "name": "number",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams (typescript) 4`] = `
Array [
  Object {
    "lineNumber": 3,
    "name": "opts",
    "title": "param",
    "type": Object {
      "fields": Array [
        Object {
          "key": "x",
          "type": "FieldType",
          "value": Object {
            "name": "string",
            "type": "NameExpression",
          },
        },
      ],
      "type": "RecordType",
    },
  },
]
`;

exports[`inferParams (typescript) 5`] = `
Array [
  Object {
    "lineNumber": 3,
    "name": "opts",
    "title": "param",
    "type": Object {
      "fields": Array [
        Object {
          "key": "foo",
          "type": "FieldType",
          "value": Object {
            "name": "string",
            "type": "NameExpression",
          },
        },
      ],
      "type": "RecordType",
    },
  },
]
`;

exports[`inferParams (typescript) 6`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "a",
    "title": "param",
    "type": Object {
      "expression": Object {
        "name": "string",
        "type": "NameExpression",
      },
      "type": "RestType",
    },
  },
]
`;

exports[`inferParams (typescript) 7`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "a",
    "title": "param",
    "type": Object {
      "expression": Object {
        "name": "string",
        "type": "NameExpression",
      },
      "type": "OptionalType",
    },
  },
]
`;

exports[`inferParams (typescript) 8`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "a",
    "title": "param",
    "type": Object {
      "expression": Object {
        "name": "string",
        "type": "NameExpression",
      },
      "type": "OptionalType",
    },
  },
]
`;

exports[`inferParams (typescript) 9`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "a",
    "title": "param",
    "type": Object {
      "expression": Object {
        "name": "string",
        "type": "NameExpression",
      },
      "type": "OptionalType",
    },
  },
]
`;

exports[`inferParams (typescript) 10`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "a",
    "title": "param",
    "type": Object {
      "expression": Object {
        "name": "string",
        "type": "NameExpression",
      },
      "type": "OptionalType",
    },
  },
]
`;

exports[`inferParams (typescript) 11`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "v",
    "title": "param",
    "type": Object {
      "name": "string",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams (typescript) 12`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "v",
    "title": "param",
    "type": Object {
      "name": "string",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams (typescript) 13`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "v",
    "title": "param",
    "type": Object {
      "expression": Object {
        "name": "string",
        "type": "NameExpression",
      },
      "type": "RestType",
    },
  },
]
`;

exports[`inferParams 1`] = `
Array [
  Object {
    "anonymous": true,
    "name": "$0",
    "properties": Array [
      Object {
        "lineNumber": 1,
        "name": "$0.x",
        "title": "param",
      },
      Object {
        "lineNumber": 1,
        "name": "$0.xs",
        "title": "param",
        "type": Object {
          "type": "RestType",
        },
      },
    ],
    "title": "param",
    "type": Object {
      "name": "Object",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams 2`] = `
Array [
  Object {
    "anonymous": true,
    "name": "$0",
    "properties": Array [
      Object {
        "lineNumber": 1,
        "name": "$0.0",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
      Object {
        "lineNumber": 1,
        "name": "$0.1",
        "title": "param",
      },
      Object {
        "anonymous": true,
        "name": "$0.2",
        "properties": Array [
          Object {
            "lineNumber": 1,
            "name": "$0.2.c",
            "title": "param",
          },
        ],
        "title": "param",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
    ],
    "title": "param",
    "type": Object {
      "name": "Array",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams 3`] = `
Array [
  Object {
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "renamed destructuring param",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "lineNumber": 2,
    "name": "a",
    "properties": Array [
      Object {
        "lineNumber": 6,
        "name": "a.x",
        "title": "param",
      },
    ],
    "title": "param",
    "type": Object {
      "name": "Object",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams 4`] = `
Array [
  Object {
    "default": "4",
    "lineNumber": 3,
    "name": "x",
    "title": "param",
    "type": undefined,
  },
]
`;

exports[`inferParams 5`] = `
Array [
  Object {
    "default": "4",
    "lineNumber": 1,
    "name": "x",
    "title": "param",
    "type": Object {
      "name": "number",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams 6`] = `
Array [
  Object {
    "anonymous": true,
    "name": "$0",
    "properties": Array [
      Object {
        "lineNumber": 3,
        "name": "$0.x",
        "title": "param",
      },
    ],
    "title": "param",
    "type": Object {
      "name": "Object",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams 7`] = `
Array [
  Object {
    "anonymous": true,
    "name": "$0",
    "properties": Array [
      Object {
        "lineNumber": 3,
        "name": "$0.x.y.z",
        "title": "param",
      },
    ],
    "title": "param",
    "type": Object {
      "name": "Object",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams 8`] = `
Array [
  Object {
    "default": "4",
    "lineNumber": 1,
    "name": "x",
    "title": "param",
    "type": Object {
      "name": "number",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams 9`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "v",
    "title": "param",
    "type": Object {
      "name": "string",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams 10`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "v",
    "title": "param",
    "type": Object {
      "name": "string",
      "type": "NameExpression",
    },
  },
]
`;

exports[`inferParams 11`] = `
Array [
  Object {
    "lineNumber": 1,
    "name": "v",
    "title": "param",
    "type": Object {
      "expression": Object {
        "name": "string",
        "type": "NameExpression",
      },
      "type": "RestType",
    },
  },
]
`;

exports[`mergeTrees 1`] = `
Object {
  "errors": Array [
    Object {
      "commentLineNumber": undefined,
      "message": "An explicit parameter named a was specified but didn't match inferred information ",
    },
  ],
  "mergedParams": Array [
    Object {
      "description": "First arg!",
      "name": "a",
      "title": "param",
      "type": Object {
        "name": "string",
        "type": "NameExpression",
      },
    },
  ],
}
`;

exports[`mergeTrees 2`] = `
Object {
  "errors": Array [],
  "mergedParams": Array [
    Object {
      "description": "First arg!",
      "name": "a",
      "properties": Array [
        Object {
          "name": "a.a",
          "parameterIndex": 0,
          "properties": Array [],
          "title": "param",
          "type": Object {
            "name": "string",
            "type": "NameExpression",
          },
        },
      ],
      "title": "param",
      "type": Object {
        "name": "object",
        "type": "NameExpression",
      },
    },
  ],
}
`;
