summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/ast/Tree.java.tmpl1
-rw-r--r--sources/scalac/symtab/Symbol.java1
-rw-r--r--sources/scalac/symtab/Type.java1
3 files changed, 3 insertions, 0 deletions
diff --git a/sources/scalac/ast/Tree.java.tmpl b/sources/scalac/ast/Tree.java.tmpl
index 30f6a4108c..868bdda09a 100644
--- a/sources/scalac/ast/Tree.java.tmpl
+++ b/sources/scalac/ast/Tree.java.tmpl
@@ -133,6 +133,7 @@ public class Tree {
/** Returns a shallow copy of the given array. */
public static Tree[] cloneArray(Tree[] array) {
+ if (array.length == 0) return array;
Tree[] clone = new Tree[array.length];
for (int i = 0; i < clone.length; i++) clone[i] = array[i];
return clone;
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java
index e87c4d201e..fa595e51ff 100644
--- a/sources/scalac/symtab/Symbol.java
+++ b/sources/scalac/symtab/Symbol.java
@@ -86,6 +86,7 @@ public abstract class Symbol implements Modifiers, Kinds {
/** Returns a shallow copy of the given array. */
public static Symbol[] cloneArray(Symbol[] array) {
+ if (array.length == 0) return array;
Symbol[] clone = new Symbol[array.length];
for (int i = 0; i < clone.length; i++) clone[i] = array[i];
return clone;
diff --git a/sources/scalac/symtab/Type.java b/sources/scalac/symtab/Type.java
index 21fdf32917..7d771b927d 100644
--- a/sources/scalac/symtab/Type.java
+++ b/sources/scalac/symtab/Type.java
@@ -1305,6 +1305,7 @@ public class Type implements Modifiers, Kinds, TypeTags, EntryTags {
/** Returns a shallow copy of the given array. */
public static Type[] cloneArray(Type[] array) {
+ if (array.length == 0) return array;
Type[] clone = new Type[array.length];
for (int i = 0; i < clone.length; i++) clone[i] = array[i];
return clone;