File tree 1 file changed +14
-1
lines changed
compiler/src/dotty/tools/dotc/parsing 1 file changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -1975,11 +1975,24 @@ object Parsers {
1975
1975
/** ImportSelector ::= id [`=>' id | `=>' `_']
1976
1976
*/
1977
1977
def importSelector (): Tree = {
1978
+ val start = in.offset
1978
1979
val from = termIdentOrWildcard()
1979
1980
if (from.name != nme.WILDCARD && in.token == ARROW )
1980
1981
atPos(startOffset(from), in.skipToken()) {
1981
- Thicket (from, termIdentOrWildcard())
1982
+ val start2 = in.offset
1983
+ val to = termIdentOrWildcard()
1984
+ val toWithPos =
1985
+ if (to.name == nme.ERROR )
1986
+ // error identifiers don't consume any characters, so atPos(start)(id) wouldn't set a position.
1987
+ // Some testcases would then fail in Positioned.checkPos. Set a position anyway!
1988
+ atPos(start2, start2, in.lastOffset)(to)
1989
+ else
1990
+ to
1991
+ Thicket (from, toWithPos)
1982
1992
}
1993
+ else if (from.name == nme.ERROR ) {
1994
+ atPos(start, start, in.lastOffset)(from)
1995
+ }
1983
1996
else from
1984
1997
}
1985
1998
You can’t perform that action at this time.
0 commit comments