Skip to content

Commit 2f4ca2e

Browse files
committed
Rename ...Pos to ...Offset and add pointOffset
1 parent 187eb65 commit 2f4ca2e

File tree

1 file changed

+37
-36
lines changed

1 file changed

+37
-36
lines changed

src/dotty/tools/dotc/parsing/Parsers.scala

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,13 @@ object Parsers {
8383
def atPos[T <: Positioned](start: Offset)(t: T): T =
8484
atPos(start, start)(t)
8585

86-
/** Defensive version of Position#start */
87-
def startPos(t: Positioned): Int =
86+
def startOffset(t: Positioned): Int =
8887
if (t.pos.exists) t.pos.start else in.offset
8988

90-
/** Defensive version of Position#end */
91-
def endPos(t: Positioned): Int =
89+
def pointOffset(t: Positioned): Int =
90+
if (t.pos.exists) t.pos.point else in.offset
91+
92+
def endOffset(t: Positioned): Int =
9293
if (t.pos.exists) t.pos.end else in.lastOffset
9394

9495
def nameStart: Offset =
@@ -456,7 +457,7 @@ object Parsers {
456457
val topInfo = opStack.head
457458
opStack = opStack.tail
458459
val od = reduceStack(base, topInfo.operand, 0, true)
459-
return atPos(startPos(od), topInfo.offset) {
460+
return atPos(startOffset(od), topInfo.offset) {
460461
PostfixOp(od, topInfo.operator)
461462
}
462463
}
@@ -500,7 +501,7 @@ object Parsers {
500501

501502
/** Accept identifier acting as a selector on given tree `t`. */
502503
def selector(t: Tree): Tree =
503-
atPos(startPos(t), in.offset) { Select(t, ident()) }
504+
atPos(startOffset(t), in.offset) { Select(t, ident()) }
504505

505506
/** Selectors ::= ident { `.' ident()
506507
*
@@ -735,7 +736,7 @@ object Parsers {
735736

736737
def refinedTypeRest(t: Tree): Tree = {
737738
newLineOptWhenFollowedBy(LBRACE)
738-
if (in.token == LBRACE) refinedTypeRest(atPos(startPos(t)) { RefinedTypeTree(t, refinement()) })
739+
if (in.token == LBRACE) refinedTypeRest(atPos(startOffset(t)) { RefinedTypeTree(t, refinement()) })
739740
else t
740741
}
741742

@@ -756,7 +757,7 @@ object Parsers {
756757
def annotType(): Tree = annotTypeRest(simpleType())
757758

758759
def annotTypeRest(t: Tree): Tree =
759-
if (in.token == AT) annotTypeRest(atPos(startPos(t)) { Annotated(t, annot()) })
760+
if (in.token == AT) annotTypeRest(atPos(startOffset(t)) { Annotated(t, annot()) })
760761
else t
761762

762763
/** SimpleType ::= SimpleType TypeArgs
@@ -787,19 +788,19 @@ object Parsers {
787788
val handleSingletonType: Tree => Tree = t =>
788789
if (in.token == TYPE) {
789790
in.nextToken()
790-
atPos(startPos(t)) { SingletonTypeTree(t) }
791+
atPos(startOffset(t)) { SingletonTypeTree(t) }
791792
} else t
792793

793794
private def simpleTypeRest(t: Tree): Tree = in.token match {
794795
case HASH => simpleTypeRest(typeProjection(t))
795-
case LBRACKET => simpleTypeRest(atPos(startPos(t)) { AppliedTypeTree(t, typeArgs(namedOK = true)) })
796+
case LBRACKET => simpleTypeRest(atPos(startOffset(t)) { AppliedTypeTree(t, typeArgs(namedOK = true)) })
796797
case _ => t
797798
}
798799

799800
private def typeProjection(t: Tree): Tree = {
800801
accept(HASH)
801802
val id = typeIdent()
802-
atPos(startPos(t), startPos(id)) { Select(t, id.name) }
803+
atPos(startOffset(t), startOffset(id)) { Select(t, id.name) }
803804
}
804805

805806
/** NamedTypeArg ::= id `=' Type
@@ -853,7 +854,7 @@ object Parsers {
853854
val t = toplevelTyp()
854855
if (isIdent(nme.raw.STAR)) {
855856
in.nextToken()
856-
atPos(startPos(t)) { PostfixOp(t, nme.raw.STAR) }
857+
atPos(startOffset(t)) { PostfixOp(t, nme.raw.STAR) }
857858
} else t
858859
}
859860

@@ -978,7 +979,7 @@ object Parsers {
978979
val t = expr1(location)
979980
if (in.token == ARROW) {
980981
placeholderParams = saved
981-
closureRest(startPos(t), location, convertToParams(t))
982+
closureRest(startOffset(t), location, convertToParams(t))
982983
}
983984
else if (isWildcard(t)) {
984985
placeholderParams = placeholderParams ::: saved
@@ -1032,7 +1033,7 @@ object Parsers {
10321033
assert(handlerStart != -1)
10331034
syntaxError(
10341035
new EmptyCatchBlock(body),
1035-
Position(handlerStart, endPos(handler))
1036+
Position(handlerStart, endOffset(handler))
10361037
)
10371038
case _ =>
10381039
}
@@ -1042,7 +1043,7 @@ object Parsers {
10421043
else {
10431044
if (handler.isEmpty) warning(
10441045
EmptyCatchAndFinallyBlock(body),
1045-
source atPos Position(tryOffset, endPos(body))
1046+
source atPos Position(tryOffset, endOffset(body))
10461047
)
10471048
EmptyTree
10481049
}
@@ -1064,21 +1065,21 @@ object Parsers {
10641065
case EQUALS =>
10651066
t match {
10661067
case Ident(_) | Select(_, _) | Apply(_, _) =>
1067-
atPos(startPos(t), in.skipToken()) { Assign(t, expr()) }
1068+
atPos(startOffset(t), in.skipToken()) { Assign(t, expr()) }
10681069
case _ =>
10691070
t
10701071
}
10711072
case COLON =>
10721073
ascription(t, location)
10731074
case MATCH =>
1074-
atPos(startPos(t), in.skipToken()) {
1075+
atPos(startOffset(t), in.skipToken()) {
10751076
inBraces(Match(t, caseClauses()))
10761077
}
10771078
case _ =>
10781079
t
10791080
}
10801081

1081-
def ascription(t: Tree, location: Location.Value) = atPos(startPos(t), in.skipToken()) {
1082+
def ascription(t: Tree, location: Location.Value) = atPos(startOffset(t), in.skipToken()) {
10821083
in.token match {
10831084
case USCORE =>
10841085
val uscoreStart = in.skipToken()
@@ -1112,7 +1113,7 @@ object Parsers {
11121113
val id = termIdent()
11131114
val paramExpr =
11141115
if (location == Location.InBlock && in.token == COLON)
1115-
atPos(startPos(id), in.skipToken()) { Typed(id, infixType()) }
1116+
atPos(startOffset(id), in.skipToken()) { Typed(id, infixType()) }
11161117
else
11171118
id
11181119
closureRest(start, location, convertToParam(paramExpr, mods) :: Nil)
@@ -1201,13 +1202,13 @@ object Parsers {
12011202
in.nextToken()
12021203
simpleExprRest(selector(t), canApply = true)
12031204
case LBRACKET =>
1204-
val tapp = atPos(startPos(t), in.offset) { TypeApply(t, typeArgs(namedOK = true)) }
1205+
val tapp = atPos(startOffset(t), in.offset) { TypeApply(t, typeArgs(namedOK = true)) }
12051206
simpleExprRest(tapp, canApply = true)
12061207
case LPAREN | LBRACE if canApply =>
1207-
val app = atPos(startPos(t), in.offset) { Apply(t, argumentExprs()) }
1208+
val app = atPos(startOffset(t), in.offset) { Apply(t, argumentExprs()) }
12081209
simpleExprRest(app, canApply = true)
12091210
case USCORE =>
1210-
atPos(startPos(t), in.skipToken()) { PostfixOp(t, nme.WILDCARD) }
1211+
atPos(startOffset(t), in.skipToken()) { PostfixOp(t, nme.WILDCARD) }
12111212
case _ =>
12121213
t
12131214
}
@@ -1291,7 +1292,7 @@ object Parsers {
12911292
if (in.token == IF) guard()
12921293
else {
12931294
val pat = pattern1()
1294-
if (in.token == EQUALS) atPos(startPos(pat), in.skipToken()) { GenAlias(pat, expr()) }
1295+
if (in.token == EQUALS) atPos(startOffset(pat), in.skipToken()) { GenAlias(pat, expr()) }
12951296
else generatorRest(pat)
12961297
}
12971298

@@ -1300,7 +1301,7 @@ object Parsers {
13001301
def generator(): Tree = generatorRest(pattern1())
13011302

13021303
def generatorRest(pat: Tree) =
1303-
atPos(startPos(pat), accept(LARROW)) { GenFrom(pat, expr()) }
1304+
atPos(startOffset(pat), accept(LARROW)) { GenFrom(pat, expr()) }
13041305

13051306
/** ForExpr ::= `for' (`(' Enumerators `)' | `{' Enumerators `}')
13061307
* {nl} [`yield'] Expr
@@ -1364,7 +1365,7 @@ object Parsers {
13641365
val pattern = () => {
13651366
val pat = pattern1()
13661367
if (isIdent(nme.raw.BAR))
1367-
atPos(startPos(pat)) { Alternative(pat :: patternAlts()) }
1368+
atPos(startOffset(pat)) { Alternative(pat :: patternAlts()) }
13681369
else pat
13691370
}
13701371

@@ -1390,15 +1391,15 @@ object Parsers {
13901391
// compatibility for Scala2 `x @ _*` syntax
13911392
infixPattern() match {
13921393
case pt @ Ident(tpnme.WILDCARD_STAR) =>
1393-
migrationWarningOrError("The syntax `x @ _*' is no longer supported; use `x : _*' instead", startPos(p))
1394-
atPos(startPos(p), offset) { Typed(p, pt) }
1394+
migrationWarningOrError("The syntax `x @ _*' is no longer supported; use `x : _*' instead", startOffset(p))
1395+
atPos(startOffset(p), offset) { Typed(p, pt) }
13951396
case p =>
1396-
atPos(startPos(p), offset) { Bind(name, p) }
1397+
atPos(startOffset(p), offset) { Bind(name, p) }
13971398
}
13981399
case p @ Ident(tpnme.WILDCARD_STAR) =>
13991400
// compatibility for Scala2 `_*` syntax
1400-
migrationWarningOrError("The syntax `_*' is no longer supported; use `x : _*' instead", startPos(p))
1401-
atPos(startPos(p)) { Typed(Ident(nme.WILDCARD), p) }
1401+
migrationWarningOrError("The syntax `_*' is no longer supported; use `x : _*' instead", startOffset(p))
1402+
atPos(startOffset(p)) { Typed(Ident(nme.WILDCARD), p) }
14021403
case p =>
14031404
p
14041405
}
@@ -1422,7 +1423,7 @@ object Parsers {
14221423
val simplePattern = () => in.token match {
14231424
case IDENTIFIER | BACKQUOTED_IDENT | THIS =>
14241425
path(thisOK = true) match {
1425-
case id @ Ident(nme.raw.MINUS) if isNumericLit => literal(startPos(id))
1426+
case id @ Ident(nme.raw.MINUS) if isNumericLit => literal(startOffset(id))
14261427
case t => simplePatternRest(t)
14271428
}
14281429
case USCORE =>
@@ -1452,9 +1453,9 @@ object Parsers {
14521453
def simplePatternRest(t: Tree): Tree = {
14531454
var p = t
14541455
if (in.token == LBRACKET)
1455-
p = atPos(startPos(t), in.offset) { TypeApply(p, typeArgs()) }
1456+
p = atPos(startOffset(t), in.offset) { TypeApply(p, typeArgs()) }
14561457
if (in.token == LPAREN)
1457-
p = atPos(startPos(t), in.offset) { Apply(p, argumentPatterns()) }
1458+
p = atPos(startOffset(t), in.offset) { Apply(p, argumentPatterns()) }
14581459
p
14591460
}
14601461

@@ -1779,7 +1780,7 @@ object Parsers {
17791780
case imp: Import =>
17801781
imp
17811782
case sel @ Select(qual, name) =>
1782-
val selector = atPos(sel.pos.point) { Ident(name) }
1783+
val selector = atPos(pointOffset(sel)) { Ident(name) }
17831784
cpy.Import(sel)(qual, selector :: Nil)
17841785
case t =>
17851786
accept(DOT)
@@ -1812,7 +1813,7 @@ object Parsers {
18121813
def importSelector(): Tree = {
18131814
val from = termIdentOrWildcard()
18141815
if (from.name != nme.WILDCARD && in.token == ARROW)
1815-
atPos(startPos(from), in.skipToken()) {
1816+
atPos(startOffset(from), in.skipToken()) {
18161817
Thicket(from, termIdentOrWildcard())
18171818
}
18181819
else from
@@ -2093,7 +2094,7 @@ object Parsers {
20932094

20942095
/** Create a tree representing a packaging */
20952096
def makePackaging(start: Int, pkg: Tree, stats: List[Tree]): PackageDef = pkg match {
2096-
case x: RefTree => atPos(start, pkg.pos.point)(PackageDef(x, stats))
2097+
case x: RefTree => atPos(start, pointOffset(pkg))(PackageDef(x, stats))
20972098
}
20982099

20992100
/** Packaging ::= package QualId [nl] `{' TopStatSeq `}'

0 commit comments

Comments
 (0)