// RUN: %target-typecheck-verify-swift // Conflict marker parsing should never conflict with operator parsing. prefix operator <<<<<<< infix operator <<<<<<< prefix func <<<<<<< (x : String) {} func <<<<<<< (x : String, y : String) {} prefix operator >>>>>>> infix operator >>>>>>> prefix func >>>>>>> (x : String) {} func >>>>>>> (x : String, y : String) {} // diff3-style conflict markers <<<<<<< HEAD:conflict_markers.swift // expected-error {{source control conflict marker in source file}} var a : String = "A" var b : String = "b" ======= var a : String = "a" var b : String = "B" >>>>>>> 18844bc65229786b96b89a9fc7739c0fc897905e:conflict_markers.swift print(a + b) // expected-error {{use of unresolved identifier 'a'}} expected-error {{use of unresolved identifier 'b'}} <<<<<<< HEAD:conflict_markers.swift // expected-error {{source control conflict marker in source file}} ======= var d : String = "D" >>>>>>> 18844bc65229786b96b89a9fc7739c0fc897905e:conflict_markers.swift print(d) // expected-error {{use of unresolved identifier 'd'}} <<<<<<<"HEAD:fake_conflict_markers.swift" // No error >>>>>>>"18844bc65229786b96b89a9fc7739c0fc897905e:fake_conflict_markers.swift" // No error <<<<<<< HEAD:conflict_markers.swift // expected-error {{source control conflict marker in source file}} <<<<<<<"HEAD:fake_conflict_markers.swift" var fake_b : String = "a" >>>>>>>"18844bc65229786b96b89a9fc7739c0fc897905e:fake_conflict_markers.swift" ======= <<<<<<<"HEAD:fake_conflict_markers.swift" var fake_c : String = "a" >>>>>>>"18844bc65229786b96b89a9fc7739c0fc897905e:fake_conflict_markers.swift" >>>>>>> 18844bc65229786b96b89a9fc7739c0fc897905e:conflict_markers.swift print(fake_b + fake_c) // expected-error {{use of unresolved identifier 'fake_b'}} expected-error {{use of unresolved identifier 'fake_c'}} // Disambiguating conflict markers from operator applications. _ = { // Conflict marker. let a = "a", b = "b" a // expected-warning {{expression of type 'String' is unused}} <<<<<<< b // expected-error {{source control conflict marker in source file}} a >>>>>>> b // Not a conflict marker. a <<<<<<< b a >>>>>>> b }() // Perforce-style conflict markers >>>> ORIGINAL // expected-error {{source control conflict marker in source file}} var a : String = "A" var b : String = "B" ==== THEIRS var a : String = "A" var b : String = "b" ==== YOURS var a : String = "a" var b : String = "B" <<<< print(a + b) // expected-error {{use of unresolved identifier 'a'}} expected-error {{use of unresolved identifier 'b'}} >>>> ORIGINAL // expected-error {{source control conflict marker in source file}} ==== THEIRS ==== YOURS var d : String = "D" <<<< print(d) // expected-error {{use of unresolved identifier 'd'}}