diff options
author | Martin Odersky <odersky@gmail.com> | 2013-02-27 09:12:27 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-02-27 09:14:33 +0100 |
commit | 856f084c474125117ed2166720ba4192d358fbef (patch) | |
tree | bfbcc9c242dae55863ce4cd84a894fb12e34ab9f /src/dotty/tools/dotc/core/Definitions.scala | |
parent | d29cc7978daa49f68d14eba35af20fbb8dd423c1 (diff) | |
download | dotty-856f084c474125117ed2166720ba4192d358fbef.tar.gz dotty-856f084c474125117ed2166720ba4192d358fbef.tar.bz2 dotty-856f084c474125117ed2166720ba4192d358fbef.zip |
Filling in all ???s
Added reporters.
Added context for signatures.
Implemented method signatures via erasure.
Refined derivedNameType handling.
Diffstat (limited to 'src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/Definitions.scala | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala index efed9392d..0245928b2 100644 --- a/src/dotty/tools/dotc/core/Definitions.scala +++ b/src/dotty/tools/dotc/core/Definitions.scala @@ -149,6 +149,7 @@ class Definitions(implicit ctx: Context) { def NullType: Type = NullClass.typeConstructor def SeqType: Type = SeqClass.typeConstructor def ArrayType: Type = ArrayClass.typeConstructor + def ObjectArrayType = ArrayType.appliedTo(ObjectType) def UnitType: Type = UnitClass.typeConstructor def BooleanType: Type = BooleanClass.typeConstructor @@ -230,13 +231,27 @@ class Definitions(implicit ctx: Context) { // ----- Initialization --------------------------------------------------- + /** Lists core classes that don't have underlying bytecode, but are synthesized on-the-fly in every reflection universe */ + lazy val syntheticCoreClasses = List( + AnnotationDefaultAnnot, // #2264 + RepeatedParamClass, + JavaRepeatedParamClass, + ByNameParamClass, + AnyClass, + AnyRefAlias, + AnyValClass, + NullClass, + NothingClass, + SingletonClass, + EqualsPatternClass) + private[this] var _isInitialized = false def isInitialized = _isInitialized def init() = if (!_isInitialized) { // force initialization of every symbol that is synthesized or hijacked by the compiler - val forced = ??? + val forced = syntheticCoreClasses _isInitialized = true } } |