diff options
author | Martin Odersky <odersky@gmail.com> | 2013-03-12 09:04:57 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-03-12 09:04:57 +0100 |
commit | bf8e854c9f2dc2b03be5a44c84183af21510e6ef (patch) | |
tree | d9e59bd6415405b93662adce334d87c626c38980 /src/dotty/tools/dotc/core/Symbols.scala | |
parent | f02b4183a9a3d8fb7147e1aa1c74a5f102739d97 (diff) | |
download | dotty-bf8e854c9f2dc2b03be5a44c84183af21510e6ef.tar.gz dotty-bf8e854c9f2dc2b03be5a44c84183af21510e6ef.tar.bz2 dotty-bf8e854c9f2dc2b03be5a44c84183af21510e6ef.zip |
Split filterAsSeenFrom and generalized flag handling.
1. filterAsSeenFrom has been split again into its constituents "filterExcluded" and "asSeenFrom", and care was taken not to force the info unless we have to. The accessible check is no longer done when collecting members, because it would have forced the symbol through requesting privateWithin.
2. SymDenotation#is is tweaked to no longer force the denotation if the flags are in "FromStartFlags", i.e. set upon symbol creation. We can then eliminate special cases isModuleXXX, isPackageXXX.
3. Other tweaks mostly having to do with weakening sym.exists checks to avoid CyclicReference errros.
Diffstat (limited to 'src/dotty/tools/dotc/core/Symbols.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/Symbols.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/Symbols.scala b/src/dotty/tools/dotc/core/Symbols.scala index 52456f98d..213ddb765 100644 --- a/src/dotty/tools/dotc/core/Symbols.scala +++ b/src/dotty/tools/dotc/core/Symbols.scala @@ -256,7 +256,7 @@ trait Symbols { this: Context => def requiredPackage(path: PreName): TermSymbol = { val pathName = path.toTermName - base.staticRef(pathName).requiredSymbol(_.isPackage, pathName).asTerm + base.staticRef(pathName).requiredSymbol(_ is Package, pathName).asTerm } def requiredClass(path: PreName): ClassSymbol = { @@ -266,7 +266,7 @@ trait Symbols { this: Context => def requiredModule(path: PreName): TermSymbol = { val pathName = path.toTermName - base.staticRef(pathName).requiredSymbol(_.isModule, pathName).asTerm + base.staticRef(pathName).requiredSymbol(_ is Module, pathName).asTerm } } @@ -383,7 +383,7 @@ object Symbols { /** The source or class file from which this class was generated, null if not applicable. */ override def associatedFile(implicit ctx: Context): AbstractFile = - if (this.owner.isPackageClass) assocFile + if (this.owner is PackageClass) assocFile else super.associatedFile final def classDenot(implicit ctx: Context): ClassDenotation = |