aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Definitions.scala
diff options
context:
space:
mode:
authorjvican <jorgevc@fastmail.es>2016-06-27 23:20:03 +0200
committerjvican <jorgevc@fastmail.es>2016-06-29 00:08:56 +0200
commit66847062f37a4a5088e9d3fd2228d2679e334d61 (patch)
tree34ae75ac7cece5f844cb98d79e27973e790f17d5 /src/dotty/tools/dotc/core/Definitions.scala
parentc7d1826cf0456e5efad5cb66ae06e7273c8a8e2a (diff)
downloaddotty-66847062f37a4a5088e9d3fd2228d2679e334d61.tar.gz
dotty-66847062f37a4a5088e9d3fd2228d2679e334d61.tar.bz2
dotty-66847062f37a4a5088e9d3fd2228d2679e334d61.zip
Implement -Yno-predef and -Yno-imports
* Implement flags -Yno-predef and -Yno-imports * Add unit tests for both
Diffstat (limited to 'src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index 5cb373cfd..87d46f823 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -627,15 +627,24 @@ class Definitions {
def isTupleClass(cls: Symbol) = isVarArityClass(cls, tpnme.Tuple)
def isProductClass(cls: Symbol) = isVarArityClass(cls, tpnme.Product)
- val RootImportFns = List[() => TermRef](
- () => JavaLangPackageVal.termRef,
- () => ScalaPackageVal.termRef,
+ val StaticRootImportFns = List[() => TermRef](
+ () => JavaLangPackageVal.termRef,
+ () => ScalaPackageVal.termRef
+ )
+
+ val PredefImportFns = List[() => TermRef](
() => ScalaPredefModuleRef,
- () => DottyPredefModuleRef)
+ () => DottyPredefModuleRef
+ )
+
+ lazy val RootImportFns =
+ if (ctx.settings.YnoImports.value) List.empty[() => TermRef]
+ else if (ctx.settings.YnoPredef.value) StaticRootImportFns
+ else StaticRootImportFns ++ PredefImportFns
lazy val RootImportTypes = RootImportFns.map(_())
- /** `Modules whose members are in the default namespace and their module classes */
+ /** Modules whose members are in the default namespace and their module classes */
lazy val UnqualifiedOwnerTypes: Set[NamedType] =
RootImportTypes.toSet[NamedType] ++ RootImportTypes.map(_.symbol.moduleClass.typeRef)