Skip to content

Commit 52f7546

Browse files
committed
&& and || don't support suffixes
1 parent 5673b4f commit 52f7546

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

Tokenize/src/lexer.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ function lex_minus(l::Lexer)
678678
else
679679
return emit_error(l, Tokens.INVALID_OPERATOR) # "--" is an invalid operator
680680
end
681-
elseif accept(l, '>')
681+
elseif !l.dotop && accept(l, '>')
682682
return emit(l, Tokens.ANON_FUNC)
683683
elseif accept(l, '=')
684684
return emit(l, Tokens.MINUS_EQ)

Tokenize/src/utilities.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,8 @@ function optakessuffix(k)
231231
k == Tokens.CONDITIONAL ||
232232
k == Tokens.ISSUBTYPE ||
233233
k == Tokens.ISSUPERTYPE ||
234+
k == Tokens.LAZY_AND ||
235+
k == Tokens.LAZY_OR ||
234236
k == Tokens.IN ||
235237
k == Tokens.ISA ||
236238
k == Tokens.COLON_EQUALS ||

Tokenize/test/lexer.jl

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -881,3 +881,32 @@ end
881881
Tokens.ENDMARKER
882882
]
883883
end
884+
885+
@testset "dotop miscellanea" begin
886+
broken_ops = [
887+
"a .-> b",
888+
".>: b",
889+
".<: b",
890+
"a ||₁ b",
891+
"a ||̄ b",
892+
"a .||₁ b",
893+
"a &&₁ b",
894+
"a &&̄ b",
895+
"a .&&₁ b",
896+
]
897+
898+
@test [
899+
[Tokenize.untokenize(t, s) for t in Tokenize.tokenize(s)]
900+
for s in broken_ops
901+
] == [
902+
["a", " ", ".-", ">", " ", "b", ""],
903+
[".>:", " ", "b", ""],
904+
[".<:", " ", "b", ""],
905+
["a", " ", "||", "", " ", "b", ""],
906+
["a", " ", "||", "̄", " ", "b", ""],
907+
["a", " ", ".||", "", " ", "b", ""],
908+
["a", " ", "&&", "", " ", "b", ""],
909+
["a", " ", "&&", "̄", " ", "b", ""],
910+
["a", " ", ".&&", "", " ", "b", ""],
911+
]
912+
end

0 commit comments

Comments
 (0)