Skip to content

Commit

Permalink
Parser: != and ! conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanjermakov committed Mar 12, 2024
1 parent 4ebe8b9 commit e9372c4
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 10 deletions.
11 changes: 2 additions & 9 deletions src/parser/fns/expr.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,7 @@
import { Parser } from '..'
import { syntaxError } from '../../error'
import { TokenKind } from '../../lexer/lexer'
import {
exprFirstTokens,
infixOpFirstTokens,
nameLikeTokens,
numberFirstTokens,
parseClosureExpr,
postfixOpFirstTokens
} from './index'
import { exprFirstTokens, infixOpFirstTokens, nameLikeTokens, numberFirstTokens, parseClosureExpr } from './index'
import { parseMatchExpr, parsePattern } from './match'
import { parseInfixOp, parsePostfixOp } from './op'
import { parseBlock } from './statement'
Expand All @@ -33,7 +26,7 @@ export const parseExpr = (parser: Parser): void => {
export const parseSubExpr = (parser: Parser): void => {
const mark = parser.open()
parseOperand(parser)
while (parser.atAny(postfixOpFirstTokens)) {
while (parser.at('o-paren') || (parser.at('excl') && parser.nth(1) !== 'equals') || parser.at('qmark')) {
parsePostfixOp(parser)
}
parser.close(mark, 'sub-expr')
Expand Down
3 changes: 2 additions & 1 deletion src/scope/trait.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ describe('trait', () => {

expect(formatImplTypes(findSuperRelChains(vidFromString('std::string::String'), ctx))).toEqual([
['std::io::Display'],
['std::eq::Eq']
['std::eq::Eq'],
['std::iter::Collector<std::string::String>']
])

expect(formatImplTypes(findSuperRelChains(vidFromString('std::list::List'), ctx))).toEqual([
Expand Down

0 comments on commit e9372c4

Please sign in to comment.