diff options
author | Martin Odersky <odersky@gmail.com> | 2014-08-28 22:35:09 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-08-28 22:36:49 +0200 |
commit | aae91eddee1a90dc5312ce156b772f090001721f (patch) | |
tree | 6ce2de879d48939ba1914e8e450ff77f45c5c89c /src/dotty/tools/dotc/core/NameOps.scala | |
parent | f7d3f3b12e0f3f69954bfb9980134968abf541f5 (diff) | |
download | dotty-aae91eddee1a90dc5312ce156b772f090001721f.tar.gz dotty-aae91eddee1a90dc5312ce156b772f090001721f.tar.bz2 dotty-aae91eddee1a90dc5312ce156b772f090001721f.zip |
Fixes to erasure to make -Ycheck:all work.
Main change: Introduce JavaArrayType as a new type constructor
for Java erased array. Translate all methods of Array class during
erasure to primitive operations on arrays.
Some other small fixes for more localized problems.
Diffstat (limited to 'src/dotty/tools/dotc/core/NameOps.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/NameOps.scala | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/NameOps.scala b/src/dotty/tools/dotc/core/NameOps.scala index e7283c827..74673235a 100644 --- a/src/dotty/tools/dotc/core/NameOps.scala +++ b/src/dotty/tools/dotc/core/NameOps.scala @@ -196,6 +196,14 @@ object NameOps { case nme.clone_ => nme.array_clone } + /** The name of the primitive runtime operation corresponding to an array operation */ + def primitiveArrayOp: TermName = name match { + case nme.apply => nme.primitive.arrayApply + case nme.length => nme.primitive.arrayLength + case nme.update => nme.primitive.arrayUpdate + case nme.CONSTRUCTOR => nme.primitive.arrayConstructor + } + /** If name length exceeds allowable limit, replace part of it by hash */ def compactified(implicit ctx: Context): TermName = termName(compactify(name.toString)) } |