diff options
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scalac/ast/Tree.java.tmpl | 1 | ||||
-rw-r--r-- | sources/scalac/symtab/Symbol.java | 1 | ||||
-rw-r--r-- | sources/scalac/symtab/Type.java | 1 |
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; |