diff options
author | Laurent Le Brun <laurentlb@google.com> | 2015-03-12 15:00:20 +0000 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@google.com> | 2015-03-13 14:37:36 +0000 |
commit | 5290d995ffe0c6e942ad514857e05533994cadcd (patch) | |
tree | d5633d01a10918770259aa29a3588c4711697b5d /src/main/java/com/google/devtools/build | |
parent | 9f62c0b7f4e09414949cceb26fd8129e28eb1e04 (diff) |
Skylark: DictionaryLiteral is immutable (like every dict).
--
MOS_MIGRATED_REVID=88440711
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java | 3 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java index 778bc7bd8b..57df6483e2 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.syntax; import com.google.common.base.Strings; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.devtools.build.lib.syntax.ClassObject.SkylarkClassObject; @@ -141,7 +142,7 @@ public final class BinaryOperatorExpression extends Expression { Map<Object, Object> result = Maps.newHashMapWithExpectedSize(ldict.size() + rdict.size()); result.putAll(ldict); result.putAll(rdict); - return result; + return ImmutableMap.copyOf(result); } if (env.isSkylarkEnabled() diff --git a/src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java index 0b926f6ae1..e991504488 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.syntax; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import java.util.LinkedHashMap; import java.util.List; @@ -78,7 +79,7 @@ public class DictionaryLiteral extends Expression { } map.put(entry.key.eval(env), entry.value.eval(env)); } - return map; + return ImmutableMap.copyOf(map); } @Override |