diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-08-04 11:08:10 +0200 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-08-06 23:09:30 +0200 |
commit | 432d7b86cb7c46d0415b8c06bf8045e309c63f03 (patch) | |
tree | c8d768c86d849a5cddf59f2ef6fce8de889b1310 /test/files/run/t6178.check | |
parent | 114367c0b2ce5f48186d4270c1724090fd77877b (diff) | |
download | scala-432d7b86cb7c46d0415b8c06bf8045e309c63f03.tar.gz scala-432d7b86cb7c46d0415b8c06bf8045e309c63f03.tar.bz2 scala-432d7b86cb7c46d0415b8c06bf8045e309c63f03.zip |
SI-6178 reflective invocation of magic symbols
In Scala there are some methods that only exist in symbol tables,
but don't have corresponding method entries in Java class files.
To the best of my knowledge, these methods can be subdivided into five groups:
1) stuff weaved onto Any, AnyVal and AnyRef (aka Object),
2) magic methods that Scala exposes to fix Java arrays,
3) magic methods declared on Scala primitive value classes,
4) compile-time methods (such as classOf and all kinds of macros),
5) miscellaneous stuff (currently only String_+).
To support these magic symbols, I've modified the `checkMemberOf` validator
to special case Any/AnyVal/AnyRef methods and adjusted MethodMirror and
ConstructorMirror classes to use special invokers for those instead of
relying on Java reflection.
Support for value classes will arrive in the subsequent commit, because
it requires some unrelated changes to the mirror API (currently mirrors
only support AnyRefs as their targets).
Diffstat (limited to 'test/files/run/t6178.check')
-rw-r--r-- | test/files/run/t6178.check | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/test/files/run/t6178.check b/test/files/run/t6178.check new file mode 100644 index 0000000000..d8263ee986 --- /dev/null +++ b/test/files/run/t6178.check @@ -0,0 +1 @@ +2
\ No newline at end of file |