summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/Variance.scala
Commit message (Collapse)AuthorAgeFilesLines
* Logging cleanup.Paul Phillips2013-08-251-2/+1
| | | | | | | | | | | | | | Reduced the amount of extraneous logging noise at the default logging level. Was brought to my usual crashing halt by the discovery of identical logging statements throughout GenASM and elsewhere. I'm supposing the reason people so grossly underestimate the cost of such duplication is that most of the effects are in things which don't happen, aka "silent evidence". An example of a thing which isn't happening is the remainder of this commit, which exists only in parallel universes.
* Absolutized paths involving the scala package.Paul Phillips2013-05-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Confusing, now-it-happens now-it-doesn't mysteries lurk in the darkness. When scala packages are declared like this: package scala.collection.mutable Then paths relative to scala can easily be broken via the unlucky presence of an empty (or nonempty) directory. Example: // a.scala package scala.foo class Bar { new util.Random } % scalac ./a.scala % mkdir util % scalac ./a.scala ./a.scala:4: error: type Random is not a member of package util new util.Random ^ one error found There are two ways to play defense against this: - don't use relative paths; okay sometimes, less so others - don't "opt out" of the scala package This commit mostly pursues the latter, with occasional doses of the former. I created a scratch directory containing these empty directories: actors annotation ant api asm beans cmd collection compat concurrent control convert docutil dtd duration event factory forkjoin generic hashing immutable impl include internal io logging macros man1 matching math meta model mutable nsc parallel parsing partest persistent process pull ref reflect reify remote runtime scalap scheduler script swing sys text threadpool tools transform unchecked util xml I stopped when I could compile the main src directories even with all those empties on my classpath.
* Eliminated VariantTypeMap.Paul Phillips2013-01-091-0/+5
| | | | | Made variance tracking a constructor parameter to TypeMap. Eliminated more variance duplication.
* Created value class Variance.Paul Phillips2013-01-091-0/+85
This will be instead of passing numbers like -1 and 1 around, also instead of a variety of named constants like AnyVariance and CoVariance, and also instead of sometimes using the flags Flag.COVARIANT and Flag.CONTRAVARIANT for things. 1, 2, 3, go-type-safety-rah!