Skip to content

Commit

Permalink
Show duplicate key name in the duplicate object key error message
Browse files Browse the repository at this point in the history
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=138667545
  • Loading branch information
blickly committed Nov 9, 2016
1 parent 1f859c5 commit 6af9aeb
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions src/com/google/javascript/jscomp/StrictModeCheck.java
Expand Up @@ -81,11 +81,11 @@ class StrictModeCheck extends AbstractPostOrderCallback

static final DiagnosticType DUPLICATE_OBJECT_KEY = DiagnosticType.error(
"JSC_DUPLICATE_OBJECT_KEY",
"object literals cannot contain duplicate keys in ES5 strict mode");
"Object literal contains illegal duplicate key \"{0}\", disallowed in ES5 strict mode");

static final DiagnosticType DUPLICATE_CLASS_METHODS = DiagnosticType.error(
"JSC_DUPLICATE_CLASS_METHODS",
"Classes cannot contain duplicate method names");
"Class contain duplicate method name \"{0}\"");

static final DiagnosticType BAD_FUNCTION_DECLARATION = DiagnosticType.error(
"JSC_BAD_FUNCTION_DECLARATION",
Expand Down Expand Up @@ -187,23 +187,24 @@ private static void checkObjectLiteralOrClass(NodeTraversal t, Node n) {
for (Node key = n.getFirstChild();
key != null;
key = key.getNext()) {
String keyName = key.getString();
if (!key.isSetterDef()) {
// normal property and getter cases
if (!getters.add(key.getString())) {
if (!getters.add(keyName)) {
if (n.isClassMembers()) {
t.report(key, DUPLICATE_CLASS_METHODS);
t.report(key, DUPLICATE_CLASS_METHODS, keyName);
} else {
t.report(key, DUPLICATE_OBJECT_KEY);
t.report(key, DUPLICATE_OBJECT_KEY, keyName);
}
}
}
if (!key.isGetterDef()) {
// normal property and setter cases
if (!setters.add(key.getString())) {
if (!setters.add(keyName)) {
if (n.isClassMembers()) {
t.report(key, DUPLICATE_CLASS_METHODS);
t.report(key, DUPLICATE_CLASS_METHODS, keyName);
} else {
t.report(key, DUPLICATE_OBJECT_KEY);
t.report(key, DUPLICATE_OBJECT_KEY, keyName);
}
}
}
Expand Down

0 comments on commit 6af9aeb

Please sign in to comment.