/* with comments */
compilation->Plugin.buildAssets // after
/* below compilation */ // trailing

compilation /* same line as compilation */->Plugin.buildAssets // trailing

/* with comments */
compilation
/* first */
->Plugin.buildAssets /* first trail */
/* second */
->Js.Json.stringify /* second trail */
/* last */
->Node.Fs.writeFileAsUtf8Sync(path) /* last trail */

if (
  // above1
  a == b &&
  // trailing1
  // above2
  c == d &&
  // trailing2
  // above3
  e == f &&
  // trailing3
  x
) {
  console.log("foo bar")
}

let truth = a == b && c == d /* cmt */ && e == f

let truth =
  /* c0 */ a /* c1 */ == /* c2 */ b /* c3 */ &&
  /* c4 */ c /* c5 */ == /* c6 */ d /* c7 */ &&
  /* c8 */ e /* c9 */ == /* c10 */ f /* c11 */

promise
// TODO: This comment needs to be here
->Js.Promise.then(payload => {
  Js.log2("this payload was received", payload)
  Js.Promise.resolve(""->Obj.magic)
})

promise
/* TODO: This comment needs to be here */
->Js.Promise.then(payload => {
  Js.log2("this payload was received", payload)
  Js.Promise.resolve(""->Obj.magic)
})

promise
// comment
->Js.Promise.then(payload => {
  Js.Promise.resolve(""->Obj.magic)
})
// comment 2
->Js.Promise.catch(err => {
  Js.log2("this error was caught", err)
  Js.Promise.resolve(""->Obj.magic)
})

promise
/* comment */
->Js.Promise.then(payload => {
  Js.Promise.resolve(""->Obj.magic)
})
/* comment 2 */

// comment 3

/* comment 4 */
->Js.Promise.catch(err => {
  Js.log2("this error was caught", err)
  Js.Promise.resolve(""->Obj.magic)
})

promise
// TODO: This comment needs to be here
->Js.Promise.then(payload => {
  Js.log2("this payload was received", payload)
  Js.Promise.resolve(""->Obj.magic)
})

promise
// comment
->Js.Promise.then(payload => {
  Js.Promise.resolve(""->Obj.magic)
})
// comment 2
->Js.Promise.catch(err => {
  Js.log2("this error was caught", err)
  Js.Promise.resolve(""->Obj.magic)
})
