summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-10-29 16:04:17 +0100
committerJason Zaugg <jzaugg@gmail.com>2013-11-08 08:25:18 +0100
commita5127a8392fd2a0bce9b3ced302b4ebe1a80bc65 (patch)
tree4d52b8ed7dd8fcfb10d4bef41198ffe6ecc7cfe6 /src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
parent3dba9932fcc79ce0ea6f7c9282320c14c95d133f (diff)
downloadscala-a5127a8392fd2a0bce9b3ced302b4ebe1a80bc65.tar.gz
scala-a5127a8392fd2a0bce9b3ced302b4ebe1a80bc65.tar.bz2
scala-a5127a8392fd2a0bce9b3ced302b4ebe1a80bc65.zip
SI-7678 Don't cache member symbols of TypeTags in Definitions.
It we can only safely use vals in Definitions for top-level symbols. Otherwise, when the IDE switches to loading the symbol from source, we can hold on to a stale symbol, which in turn impedes implicit materialization of TypeTags. This commit moves (most) of the accessors for member symbols into RunDefinitions, and changes calling code accordingly. This is a win for presentation compiler correctness, and might even shave of a few cycles. In a few cases, I have had to leave a `def` to a member symbol in Definitions so we can get to it from the SymbolTable cake, which doesn't see RunDefinitions. The macro FastTrack facility now correctly recreates the mapping from Symbol to macro implementation each run, using a new facility in perRunCaches to create a run-indexed cache. The enclosed test recreates the situation reported in the ticket, in which TypeTags.scala is loaded from source.
Diffstat (limited to 'src/reflect/scala/reflect/runtime/JavaUniverseForce.scala')
-rw-r--r--src/reflect/scala/reflect/runtime/JavaUniverseForce.scala32
1 files changed, 0 insertions, 32 deletions
diff --git a/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala b/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
index 1f1f07c09a..4d69a6673c 100644
--- a/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
+++ b/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
@@ -254,13 +254,9 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
definitions.UnqualifiedOwners
definitions.PredefModule
definitions.SpecializableModule
- definitions.GroupOfSpecializable
definitions.ScalaRunTimeModule
definitions.SymbolModule
- definitions.Symbol_apply
definitions.StringAddClass
- definitions.ArrowAssocClass
- definitions.StringAdd_$plus
definitions.ScalaNumberClass
definitions.TraitSetterAnnotationClass
definitions.DelayedInitClass
@@ -276,7 +272,6 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
definitions.ByNameParamClass
definitions.JavaRepeatedParamClass
definitions.RepeatedParamClass
- definitions.ExprClassOf
definitions.ConsClass
definitions.IteratorClass
definitions.IterableClass
@@ -285,7 +280,6 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
definitions.StringBuilderClass
definitions.TraversableClass
definitions.ListModule
- definitions.List_apply
definitions.NilModule
definitions.SeqModule
definitions.ArrayModule
@@ -310,18 +304,10 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
definitions.OptManifestClass
definitions.NoManifest
definitions.TreesClass
- definitions.TreesTreeType
- definitions.TreeType
- definitions.SubtreeType
definitions.ExprsClass
- definitions.ExprClass
definitions.ClassTagModule
definitions.ClassTagClass
definitions.TypeTagsClass
- definitions.WeakTypeTagClass
- definitions.WeakTypeTagModule
- definitions.TypeTagClass
- definitions.TypeTagModule
definitions.ApiUniverseClass
definitions.JavaUniverseClass
definitions.MirrorClass
@@ -340,7 +326,6 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
definitions.ScalaLongSignatureAnnotation
definitions.OptionClass
definitions.OptionModule
- definitions.Option_apply
definitions.SomeClass
definitions.NoneModule
definitions.SomeModule
@@ -384,8 +369,6 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
definitions.BoxedLongClass
definitions.BoxedFloatClass
definitions.BoxedDoubleClass
- definitions.Boxes_isNumberOrBool
- definitions.Boxes_isNumber
definitions.BoxedUnitClass
definitions.BoxedUnitModule
definitions.AnnotationClass
@@ -432,18 +415,8 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
definitions.MethodTargetClass
definitions.LanguageFeatureAnnot
definitions.languageFeatureModule
- definitions.experimentalModule
- definitions.MacrosFeature
- definitions.DynamicsFeature
- definitions.PostfixOpsFeature
- definitions.ReflectiveCallsFeature
- definitions.ImplicitConversionsFeature
- definitions.HigherKindsFeature
- definitions.ExistentialsFeature
definitions.metaAnnotations
definitions.AnnotationDefaultAttr
- definitions.isUnbox
- definitions.isBox
definitions.isPhantomClass
definitions.syntheticCoreClasses
definitions.syntheticCoreMethods
@@ -457,8 +430,6 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
definitions.boxedClass
definitions.refClass
definitions.volatileRefClass
- definitions.boxMethod
- definitions.unboxMethod
definitions.UnitClass
definitions.ByteClass
definitions.ShortClass
@@ -468,9 +439,6 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
definitions.FloatClass
definitions.DoubleClass
definitions.BooleanClass
- definitions.Boolean_and
- definitions.Boolean_or
- definitions.Boolean_not
definitions.UnitTpe
definitions.ByteTpe
definitions.ShortTpe