GitHub

@@ -0,0 +1,109 @@

1+

--TEST--

2+

A pipe operator displays as a pipe operator when outputting syntax, with correct parens.

3+

--FILE--

4+

<?php

5+6+

print "Concat, which binds higher\n";

7+8+

try {

9+

assert(false && foo() . bar() |> baz() . quux());

10+

} catch (AssertionError $e) {

11+

echo $e->getMessage(), PHP_EOL;

12+

}

13+14+

try {

15+

assert(false && (foo() . bar()) |> baz() . quux());

16+

} catch (AssertionError $e) {

17+

echo $e->getMessage(), PHP_EOL;

18+

}

19+20+

try {

21+

assert(false && foo() . (bar() |> baz()) . quux());

22+

} catch (AssertionError $e) {

23+

echo $e->getMessage(), PHP_EOL;

24+

}

25+26+

try {

27+

assert(false && foo() . bar() |> (baz() . quux()));

28+

} catch (AssertionError $e) {

29+

echo $e->getMessage(), PHP_EOL;

30+

}

31+32+

try {

33+

assert(false && (foo() . bar() |> baz()) . quux());

34+

} catch (AssertionError $e) {

35+

echo $e->getMessage(), PHP_EOL;

36+

}

37+38+

try {

39+

assert(false && foo() . (bar() |> baz() . quux()));

40+

} catch (AssertionError $e) {

41+

echo $e->getMessage(), PHP_EOL;

42+

}

43+44+

print "<, which binds lower\n";

45+46+

try {

47+

assert(false && foo() < bar() |> baz());

48+

} catch (AssertionError $e) {

49+

echo $e->getMessage(), PHP_EOL;

50+

}

51+52+

try {

53+

assert(false && (foo() < bar()) |> baz());

54+

} catch (AssertionError $e) {

55+

echo $e->getMessage(), PHP_EOL;

56+

}

57+58+

try {

59+

assert(false && foo() < (bar() |> baz()));

60+

} catch (AssertionError $e) {

61+

echo $e->getMessage(), PHP_EOL;

62+

}

63+64+

try {

65+

assert(false && foo() |> bar() < baz());

66+

} catch (AssertionError $e) {

67+

echo $e->getMessage(), PHP_EOL;

68+

}

69+70+

try {

71+

assert(false && (foo() |> bar()) < baz());

72+

} catch (AssertionError $e) {

73+

echo $e->getMessage(), PHP_EOL;

74+

}

75+76+

try {

77+

assert(false && foo() |> (bar() < baz()));

78+

} catch (AssertionError $e) {

79+

echo $e->getMessage(), PHP_EOL;

80+

}

81+82+83+84+

print "misc examples\n";

85+86+

try {

87+

assert(false && foo() |> (bar() |> baz(...)));

88+

} catch (AssertionError $e) {

89+

echo $e->getMessage(), PHP_EOL;

90+

}

91+92+

?>

93+

--EXPECT--

94+

Concat, which binds higher

95+

assert(false && foo() . bar() |> baz() . quux())

96+

assert(false && foo() . bar() |> baz() . quux())

97+

assert(false && foo() . (bar() |> baz()) . quux())

98+

assert(false && foo() . bar() |> baz() . quux())

99+

assert(false && (foo() . bar() |> baz()) . quux())

100+

assert(false && foo() . (bar() |> baz() . quux()))

101+

<, which binds lower

102+

assert(false && foo() < bar() |> baz())

103+

assert(false && (foo() < bar()) |> baz())

104+

assert(false && foo() < bar() |> baz())

105+

assert(false && foo() |> bar() < baz())

106+

assert(false && foo() |> bar() < baz())

107+

assert(false && foo() |> (bar() < baz()))

108+

misc examples

109+

assert(false && foo() |> (bar() |> baz(...)))

Read the original on github.com ↗