summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2016-08-02 11:43:36 -0700
committerJason Zaugg <jzaugg@gmail.com>2016-08-15 14:34:51 +1000
commit40f7fce0af1da614d99048b024e1ff579635f0f2 (patch)
treee0471e7302da2291edb14a43a32bb0073e25aee4 /src/reflect
parent804133f60dd3c78909dc9e557e91b5c9923240ff (diff)
downloadscala-40f7fce0af1da614d99048b024e1ff579635f0f2.tar.gz
scala-40f7fce0af1da614d99048b024e1ff579635f0f2.tar.bz2
scala-40f7fce0af1da614d99048b024e1ff579635f0f2.zip
SD-192 Change scheme for trait super accessors
Rather than putting the code of a trait method body into a static method, leave it in the default method. The static method (needed as the target of the super calls) now uses `invokespecial` to exactly call that method.
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/StdAttachments.scala2
-rw-r--r--src/reflect/scala/reflect/runtime/JavaUniverseForce.scala1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/StdAttachments.scala b/src/reflect/scala/reflect/internal/StdAttachments.scala
index 76e34153c9..78f360409d 100644
--- a/src/reflect/scala/reflect/internal/StdAttachments.scala
+++ b/src/reflect/scala/reflect/internal/StdAttachments.scala
@@ -76,4 +76,6 @@ trait StdAttachments {
* in place of the outer parameter, can help callers to avoid capturing the outer instance.
*/
case object OuterArgCanBeElided extends PlainAttachment
+
+ case object UseInvokeSpecial extends PlainAttachment
}
diff --git a/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala b/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
index caef5535b4..f55b33959a 100644
--- a/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
+++ b/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
@@ -46,6 +46,7 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
this.NoInlineCallsiteAttachment
this.InlineCallsiteAttachment
this.OuterArgCanBeElided
+ this.UseInvokeSpecial
this.noPrint
this.typeDebug
this.Range