Skip to content

Commit 353b508

Browse files
committed
rename to ImportOrExport, add ExportType
1 parent 02660c7 commit 353b508

File tree

9 files changed

+22
-16
lines changed

9 files changed

+22
-16
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -794,9 +794,9 @@ object Trees {
794794
}
795795

796796

797-
abstract class GenericImport[-T >: Untyped](implicit @constructorOnly src: SourceFile)
797+
abstract class ImportOrExport[-T >: Untyped](implicit @constructorOnly src: SourceFile)
798798
extends DenotingTree[T] {
799-
type ThisTree[-T >: Untyped] <: GenericImport[T]
799+
type ThisTree[-T >: Untyped] <: ImportOrExport[T]
800800
val expr: Tree[T]
801801
val selectors: List[untpd.ImportSelector]
802802
}
@@ -806,7 +806,7 @@ object Trees {
806806
* an untyped thicket consisting of `name` and `rename`.
807807
*/
808808
case class Import[-T >: Untyped] private[ast] (expr: Tree[T], selectors: List[untpd.ImportSelector])(implicit @constructorOnly src: SourceFile)
809-
extends GenericImport[T] {
809+
extends ImportOrExport[T] {
810810
type ThisTree[-T >: Untyped] = Import[T]
811811
}
812812

@@ -815,7 +815,7 @@ object Trees {
815815
* an untyped thicket consisting of `name` and `rename`.
816816
*/
817817
case class Export[-T >: Untyped] private[ast] (expr: Tree[T], selectors: List[untpd.ImportSelector])(implicit @constructorOnly src: SourceFile)
818-
extends GenericImport[T] {
818+
extends ImportOrExport[T] {
819819
type ThisTree[-T >: Untyped] = Export[T]
820820
}
821821

compiler/src/dotty/tools/dotc/core/Types.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4813,6 +4813,11 @@ object Types {
48134813
/** The type of an import clause tree */
48144814
case class ImportType(expr: Tree) extends UncachedGroundType
48154815

4816+
/** Sentinal for typed export clauses */
4817+
@sharable case object ExportType extends CachedGroundType {
4818+
override def computeHash(bs: Binders): Int = hashSeed
4819+
}
4820+
48164821
/** Sentinel for "missing type" */
48174822
@sharable case object NoType extends CachedGroundType {
48184823
override def computeHash(bs: Binders): Int = hashSeed

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -968,9 +968,9 @@ class TreeUnpickler(reader: TastyReader,
968968
case TYPEDEF | VALDEF | DEFDEF =>
969969
readIndexedDef()
970970
case IMPORT =>
971-
readImportLike(Import(_, _))()
971+
readImportOrExport(Import(_, _))()
972972
case EXPORT =>
973-
readImportLike(Export(_, _))()
973+
readImportOrExport(Export(_, _))()
974974
case PACKAGE =>
975975
val start = currentAddr
976976
processPackage { (pid, end) =>
@@ -980,7 +980,8 @@ class TreeUnpickler(reader: TastyReader,
980980
readTerm()(using ctx.withOwner(exprOwner))
981981
}
982982

983-
inline def readImportLike(inline mkTree: (Tree, List[untpd.ImportSelector]) => Tree)()(using Context): Tree = {
983+
inline def readImportOrExport(inline mkTree:
984+
(Tree, List[untpd.ImportSelector]) => Tree)()(using Context): Tree = {
984985
val start = currentAddr
985986
assert(sourcePathAt(start).isEmpty)
986987
readByte()

compiler/src/dotty/tools/dotc/decompiler/DecompilationPrinter.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ class DecompilationPrinter extends Phase {
4343
if (ctx.settings.printTasty.value)
4444
println(TastyPrinter.show(unit.pickled.head._2()))
4545
else {
46-
import dotty.tools.dotc.core.Decorators.i
4746
val unitFile = unit.source.toString.replace("\\", "/").replace(".class", ".tasty")
4847
out.println(s"/** Decompiled from $unitFile */")
4948
out.println(QuoteContextImpl.showDecompiledTree(unit.tpdTree))

compiler/src/dotty/tools/dotc/fromtasty/TASTYRun.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import core.Contexts._
77
class TASTYRun(comp: Compiler, ictx: Context) extends Run(comp, ictx) {
88
override def compile(classNames: List[String]): Unit = {
99
val units = classNames.map(new TASTYCompilationUnit(_))
10+
println(s"compile units = $units")
1011
compileUnits(units)
1112
}
1213
}

compiler/src/dotty/tools/dotc/transform/FirstTransform.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ class FirstTransform extends MiniPhase with InfoTransformer { thisPhase =>
152152
}
153153

154154
override def transformOther(tree: Tree)(using Context): Tree = tree match {
155-
case tree: (GenericImport[_]) => EmptyTree
155+
case tree: (ImportOrExport[_]) => EmptyTree
156156
case tree: NamedArg => transformAllDeep(tree.arg)
157157
case tree => if (tree.isType) toTypeTree(tree) else tree
158158
}

compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ trait TypeAssigner {
508508
tree.withType(sym.termRef)
509509

510510
def assignType(tree: untpd.Export)(using Context): Export =
511-
tree.withType(ImportType(tree.expr.asInstanceOf[tpd.Tree]))
511+
tree.withType(ExportType)
512512

513513
def assignType(tree: untpd.Annotated, arg: Tree, annot: Tree)(using Context): Annotated = {
514514
assert(tree.isType) // annotating a term is done via a Typed node, can't use Annotate directly

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2235,7 +2235,7 @@ class Typer extends Namer
22352235
def localDummy(cls: ClassSymbol, impl: untpd.Template)(using Context): Symbol =
22362236
newLocalDummy(cls, impl.span)
22372237

2238-
inline def typedGenericImport[T <: GenericImport[Untyped]](imp: T)(
2238+
inline def typedImportOrExport[T <: ImportOrExport[Untyped]](imp: T)(
22392239
inline mkTree: (Tree, List[untpd.ImportSelector]) => imp.ThisTree[Type])(using Context): imp.ThisTree[Type] = {
22402240
val expr1 = typedExpr(imp.expr, AnySelectionProto)
22412241
checkLegalImportPath(expr1)
@@ -2249,13 +2249,13 @@ class Typer extends Namer
22492249
}
22502250

22512251
def typedImport(imp: untpd.Import, sym: Symbol)(using Context): Import = {
2252-
typedGenericImport(imp)((expr1, selectors1) =>
2252+
typedImportOrExport(imp)((expr1, selectors1) =>
22532253
assignType(cpy.Import(imp)(expr1, selectors1), sym)
22542254
)
22552255
}
22562256

22572257
def typedExport(exp: untpd.Export)(using Context): Export = {
2258-
typedGenericImport(exp)((expr1, selectors1) =>
2258+
typedImportOrExport(exp)((expr1, selectors1) =>
22592259
assignType(cpy.Export(exp)(expr1, selectors1))
22602260
)
22612261
}

library/src/scala/quoted/QuoteContext.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ trait QuoteContext { self: internal.QuoteUnpickler & internal.QuoteMatching =>
8181
* ```none
8282
*
8383
* +- Tree -+- PackageClause
84-
* +- Import
85-
* +- Export
8684
* |
87-
* +- Statement -+- Definition --+- ClassDef
85+
* +- Statement -+- Import
86+
* | +- Export
87+
* | +- Definition --+- ClassDef
8888
* | | +- TypeDef
8989
* | | +- DefDef
9090
* | | +- ValDef

0 commit comments

Comments
 (0)