Skip to content

Commit 9f87f7b

Browse files
committed
Drop OrTypeTree
1 parent 5b45634 commit 9f87f7b

File tree

18 files changed

+26
-105
lines changed

18 files changed

+26
-105
lines changed

compiler/src/dotty/tools/dotc/ast/TreeInfo.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,6 @@ trait TreeInfo[T >: Untyped <: Type] { self: Trees.Instance[T] =>
167167
/** can this type be a type pattern? */
168168
def mayBeTypePat(tree: Tree): Boolean = unsplice(tree) match {
169169
case AndTypeTree(tpt1, tpt2) => mayBeTypePat(tpt1) || mayBeTypePat(tpt2)
170-
case OrTypeTree(tpt1, tpt2) => mayBeTypePat(tpt1) || mayBeTypePat(tpt2)
171170
case RefinedTypeTree(tpt, refinements) => mayBeTypePat(tpt) || refinements.exists(_.isInstanceOf[Bind])
172171
case AppliedTypeTree(tpt, args) => mayBeTypePat(tpt) || args.exists(_.isInstanceOf[Bind])
173172
case Select(tpt, _) => mayBeTypePat(tpt)

compiler/src/dotty/tools/dotc/ast/Trees.scala

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -632,12 +632,6 @@ object Trees {
632632
type ThisTree[-T >: Untyped] = AndTypeTree[T]
633633
}
634634

635-
/** left | right */
636-
case class OrTypeTree[-T >: Untyped] private[ast] (left: Tree[T], right: Tree[T])(implicit @constructorOnly src: SourceFile)
637-
extends TypTree[T] {
638-
type ThisTree[-T >: Untyped] = OrTypeTree[T]
639-
}
640-
641635
/** tpt { refinements } */
642636
case class RefinedTypeTree[-T >: Untyped] private[ast] (tpt: Tree[T], refinements: List[Tree[T]])(implicit @constructorOnly src: SourceFile)
643637
extends ProxyTree[T] with TypTree[T] {
@@ -935,7 +929,6 @@ object Trees {
935929
type TypeTree = Trees.TypeTree[T]
936930
type SingletonTypeTree = Trees.SingletonTypeTree[T]
937931
type AndTypeTree = Trees.AndTypeTree[T]
938-
type OrTypeTree = Trees.OrTypeTree[T]
939932
type RefinedTypeTree = Trees.RefinedTypeTree[T]
940933
type AppliedTypeTree = Trees.AppliedTypeTree[T]
941934
type LambdaTypeTree = Trees.LambdaTypeTree[T]
@@ -1106,10 +1099,6 @@ object Trees {
11061099
case tree: AndTypeTree if (left eq tree.left) && (right eq tree.right) => tree
11071100
case _ => finalize(tree, untpd.AndTypeTree(left, right)(sourceFile(tree)))
11081101
}
1109-
def OrTypeTree(tree: Tree)(left: Tree, right: Tree)(implicit ctx: Context): OrTypeTree = tree match {
1110-
case tree: OrTypeTree if (left eq tree.left) && (right eq tree.right) => tree
1111-
case _ => finalize(tree, untpd.OrTypeTree(left, right)(sourceFile(tree)))
1112-
}
11131102
def RefinedTypeTree(tree: Tree)(tpt: Tree, refinements: List[Tree])(implicit ctx: Context): RefinedTypeTree = tree match {
11141103
case tree: RefinedTypeTree if (tpt eq tree.tpt) && (refinements eq tree.refinements) => tree
11151104
case _ => finalize(tree, untpd.RefinedTypeTree(tpt, refinements)(sourceFile(tree)))
@@ -1273,8 +1262,6 @@ object Trees {
12731262
cpy.SingletonTypeTree(tree)(transform(ref))
12741263
case AndTypeTree(left, right) =>
12751264
cpy.AndTypeTree(tree)(transform(left), transform(right))
1276-
case OrTypeTree(left, right) =>
1277-
cpy.OrTypeTree(tree)(transform(left), transform(right))
12781265
case RefinedTypeTree(tpt, refinements) =>
12791266
cpy.RefinedTypeTree(tree)(transform(tpt), transformSub(refinements))
12801267
case AppliedTypeTree(tpt, args) =>
@@ -1401,8 +1388,6 @@ object Trees {
14011388
this(x, ref)
14021389
case AndTypeTree(left, right) =>
14031390
this(this(x, left), right)
1404-
case OrTypeTree(left, right) =>
1405-
this(this(x, left), right)
14061391
case RefinedTypeTree(tpt, refinements) =>
14071392
this(this(x, tpt), refinements)
14081393
case AppliedTypeTree(tpt, args) =>

compiler/src/dotty/tools/dotc/ast/tpd.scala

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,6 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
164164
def AndTypeTree(left: Tree, right: Tree)(implicit ctx: Context): AndTypeTree =
165165
ta.assignType(untpd.AndTypeTree(left, right), left, right)
166166

167-
def OrTypeTree(left: Tree, right: Tree)(implicit ctx: Context): OrTypeTree =
168-
ta.assignType(untpd.OrTypeTree(left, right), left, right)
169-
170167
def RefinedTypeTree(parent: Tree, refinements: List[Tree], refineCls: ClassSymbol)(implicit ctx: Context): Tree =
171168
ta.assignType(untpd.RefinedTypeTree(parent, refinements), parent, refinements, refineCls)
172169

compiler/src/dotty/tools/dotc/ast/untpd.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,6 @@ object untpd extends Trees.Instance[Untyped] with UntypedTreeInfo {
310310
def TypeTree()(implicit src: SourceFile): TypeTree = new TypeTree()
311311
def SingletonTypeTree(ref: Tree)(implicit src: SourceFile): SingletonTypeTree = new SingletonTypeTree(ref)
312312
def AndTypeTree(left: Tree, right: Tree)(implicit src: SourceFile): AndTypeTree = new AndTypeTree(left, right)
313-
def OrTypeTree(left: Tree, right: Tree)(implicit src: SourceFile): OrTypeTree = new OrTypeTree(left, right)
314313
def RefinedTypeTree(tpt: Tree, refinements: List[Tree])(implicit src: SourceFile): RefinedTypeTree = new RefinedTypeTree(tpt, refinements)
315314
def AppliedTypeTree(tpt: Tree, args: List[Tree])(implicit src: SourceFile): AppliedTypeTree = new AppliedTypeTree(tpt, args)
316315
def LambdaTypeTree(tparams: List[TypeDef], body: Tree)(implicit src: SourceFile): LambdaTypeTree = new LambdaTypeTree(tparams, body)

compiler/src/dotty/tools/dotc/core/tasty/TastyFormat.scala

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ Standard-Section: "ASTs" TopLevelStat*
107107
TYPEBOUNDStpt Length low_Term high_Term?
108108
ANNOTATEDtpt Length underlying_Term fullAnnotation_Term
109109
ANDtpt Length left_Term right_Term
110-
ORtpt Length left_Term right_Term
111110
MATCHtpt Length bound_Term? sel_Term CaseDef*
112111
BYNAMEtpt underlying_Term
113112
SHAREDterm term_ASTRef
@@ -421,7 +420,6 @@ object TastyFormat {
421420
final val ANDtype = 165
422421
final val ANDtpt = 166
423422
final val ORtype = 167
424-
final val ORtpt = 168
425423
final val POLYtype = 169
426424
final val TYPELAMBDAtype = 170
427425
final val LAMBDAtpt = 171
@@ -518,7 +516,6 @@ object TastyFormat {
518516
| TYPEBOUNDStpt
519517
| ANNOTATEDtpt
520518
| ANDtpt
521-
| ORtpt
522519
| BYNAMEtpt
523520
| MATCHtpt
524521
| BIND => true
@@ -649,7 +646,6 @@ object TastyFormat {
649646
case ANDtype => "ANDtype"
650647
case ANDtpt => "ANDtpt"
651648
case ORtype => "ORtype"
652-
case ORtpt => "ORtpt"
653649
case BYNAMEtype => "BYNAMEtype"
654650
case BYNAMEtpt => "BYNAMEtpt"
655651
case POLYtype => "POLYtype"

compiler/src/dotty/tools/dotc/core/tasty/TreePickler.scala

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -562,9 +562,6 @@ class TreePickler(pickler: TastyPickler) {
562562
case AndTypeTree(tp1, tp2) =>
563563
writeByte(ANDtpt)
564564
withLength { pickleTree(tp1); pickleTree(tp2) }
565-
case OrTypeTree(tp1, tp2) =>
566-
writeByte(ORtpt)
567-
withLength { pickleTree(tp1); pickleTree(tp2) }
568565
case MatchTypeTree(bound, selector, cases) =>
569566
writeByte(MATCHtpt)
570567
withLength {

compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1181,8 +1181,6 @@ class TreeUnpickler(reader: TastyReader,
11811181
val tpt2 = readTpt()
11821182
// FIXME: We need to do this instead of "AndType(tpt1, tpt2)" to avoid self-type cyclic reference in tasty_tools
11831183
untpd.AndTypeTree(tpt1, tpt2).withType(AndType(tpt1.tpe, tpt2.tpe))
1184-
case ORtpt =>
1185-
OrTypeTree(readTpt(), readTpt())
11861184
case ANNOTATEDtpt =>
11871185
Annotated(readTpt(), readTerm())
11881186
case LAMBDAtpt =>

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -504,9 +504,7 @@ object Parsers {
504504
val op = opInfo.operator
505505
val l = opInfo.operand
506506
val r = top
507-
if (isType && !op.isBackquoted && op.name == tpnme.raw.BAR) {
508-
OrTypeTree(l, r)
509-
} else if (isType && !op.isBackquoted && op.name == tpnme.raw.AMP) {
507+
if (isType && !op.isBackquoted && op.name == tpnme.raw.AMP) {
510508
AndTypeTree(l, r)
511509
} else
512510
InfixOp(l, op, r)

compiler/src/dotty/tools/dotc/printing/RefinedPrinter.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -425,12 +425,13 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
425425
toTextLocal(ref) ~ "." ~ keywordStr("type")
426426
case AndTypeTree(l, r) =>
427427
changePrec(AndTypePrec) { toText(l) ~ " & " ~ atPrec(AndTypePrec + 1) { toText(r) } }
428-
case OrTypeTree(l, r) =>
429-
changePrec(OrTypePrec) { toText(l) ~ " | " ~ atPrec(OrTypePrec + 1) { toText(r) } }
430428
case RefinedTypeTree(tpt, refines) =>
431429
toTextLocal(tpt) ~ " " ~ blockText(refines)
432430
case AppliedTypeTree(tpt, args) =>
433-
toTextLocal(tpt) ~ "[" ~ Text(args map argText, ", ") ~ "]"
431+
if (tpt.symbol == defn.orType && args.length == 2)
432+
changePrec(OrTypePrec) { toText(args(0)) ~ " | " ~ atPrec(OrTypePrec + 1) { toText(args(1)) } }
433+
else
434+
toTextLocal(tpt) ~ "[" ~ Text(args map argText, ", ") ~ "]"
434435
case LambdaTypeTree(tparams, body) =>
435436
changePrec(GlobalPrec) {
436437
tparamsText(tparams) ~ " -> " ~ toText(body)

compiler/src/dotty/tools/dotc/tastyreflect/CoreImpl.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ trait CoreImpl extends scala.tasty.reflect.Core {
7474
type Applied = tpd.AppliedTypeTree
7575
type Annotated = tpd.Annotated
7676
type And = tpd.AndTypeTree
77-
type Or = tpd.OrTypeTree
7877
type MatchType = tpd.MatchTypeTree
7978
type ByName = tpd.ByNameTypeTree
8079
type LambdaTypeTree = tpd.LambdaTypeTree

0 commit comments

Comments
 (0)