// Check near-miss mechanics:
// RUN: mlir-opt --split-input-file --verify-diagnostics %s 2> %t \
// RUN: && FileCheck --input-file %t --check-prefix=CHECK-DEFAULT %s
// RUN: cat %t
// Check that (1) custom input splitter and (2) custom output splitters work.
// RUN: mlir-opt %s -split-input-file="// CHECK-DEFAULT: ""----" \
// RUN: -output-split-marker="// ---- next split ----" \
// RUN: | FileCheck --check-prefix=CHECK-CUSTOM %s
// Check that (3) the input is not split if `-split-input-file` is not given.
// RUN: mlir-opt %s 2> %t \
// RUN: || FileCheck --input-file %t --check-prefix=CHECK-NOSPLIT %s
// RUN: cat %t
func.func @main() {return}
// -----
// expected-note @+1 {{see existing symbol definition here}}
func.func @foo() { return }
// CHECK-DEFAULT: warning: near miss with file split marker
// CHECK-DEFAULT: ----
// ----
// CHECK-NOSPLIT: error: redefinition of symbol named 'main'
func.func @main() {return}
// expected-error @+1 {{redefinition of symbol named 'foo'}}
func.func @foo() { return }
// CHECK-DEFAULT: warning: near miss with file split marker
// CHECK-DEFAULT: ----
// ----
func.func @bar2() {return }
// No error flagged at the end for a near miss.
// ----
// CHECK-CUSTOM: module
// CHECK-CUSTOM: ---- next split ----
// CHECK-CUSTOM: module
// CHECK-CUSTOM: ---- next split ----
// CHECK-CUSTOM: module