aboutsummaryrefslogtreecommitdiff
path: root/library/src/scala/Projector.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-01-05 16:02:09 +0700
committerMartin Odersky <odersky@gmail.com>2017-01-05 18:00:06 +0700
commitaa6ebe938639f07dd6f5612e645f1449f37a86eb (patch)
tree24d257c1f12d0f5cb9b76102043046e3a904d98a /library/src/scala/Projector.scala
parent42eb864dc752254fc3b8b0428570fe94aa1dafc7 (diff)
downloaddotty-aa6ebe938639f07dd6f5612e645f1449f37a86eb.tar.gz
dotty-aa6ebe938639f07dd6f5612e645f1449f37a86eb.tar.bz2
dotty-aa6ebe938639f07dd6f5612e645f1449f37a86eb.zip
Implement structural type member access
New scheme for implementing structural type member access.
Diffstat (limited to 'library/src/scala/Projector.scala')
-rw-r--r--library/src/scala/Projector.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/library/src/scala/Projector.scala b/library/src/scala/Projector.scala
new file mode 100644
index 000000000..cff73f84d
--- /dev/null
+++ b/library/src/scala/Projector.scala
@@ -0,0 +1,10 @@
+package scala
+import scala.reflect.ClassTag
+import scala.annotation.implicitNotFound
+
+@implicitNotFound("no projector instance found to implement reflective access to structural type ${T}")
+trait Projector[-T] extends Any {
+ def get(receiver: T, name: String): Any
+ def getMethod(receiver: T, name: String, paramClasses: ClassTag[_]*): Any =
+ new UnsupportedOperationException("getMethod")
+}