From fa3b145b53a72f5e63859bd9bb4358d5ddb3042f Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Fri, 5 Dec 2014 23:21:28 +0100 Subject: [PATCH] IDEA-133955 ("Unnecessary unicode escape sequence" is triggered for surrogate characters.) --- .../UnnecessaryUnicodeEscapeInspection.java | 13 +++++++------ .../UnnecessaryUnicodeEscape.java | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/internationalization/UnnecessaryUnicodeEscapeInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/internationalization/UnnecessaryUnicodeEscapeInspection.java index d8a3874a869a..31f72ad71aa2 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/internationalization/UnnecessaryUnicodeEscapeInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/internationalization/UnnecessaryUnicodeEscapeInspection.java @@ -156,13 +156,14 @@ public class UnnecessaryUnicodeEscapeInspection extends BaseInspection { charBuffer.clear(); charBuffer.put(d).rewind(); final CoderResult coderResult = encoder.encode(charBuffer, byteBuffer, true); - if (!coderResult.isUnmappable()) { - final PsiElement element = file.findElementAt(i); - if (element != null && isSuppressedFor(element)) { - return; - } - registerErrorAtOffset(file, i, escapeEnd - i, Character.valueOf(d)); + if (coderResult.isError()) { + continue; } + final PsiElement element = file.findElementAt(i); + if (element != null && isSuppressedFor(element)) { + return; + } + registerErrorAtOffset(file, i, escapeEnd - i, Character.valueOf(d)); } } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/internationalization/unnecessary_unicode_escape/UnnecessaryUnicodeEscape.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/internationalization/unnecessary_unicode_escape/UnnecessaryUnicodeEscape.java index 14f8daa04656..20f2ba7a1b19 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/internationalization/unnecessary_unicode_escape/UnnecessaryUnicodeEscape.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/internationalization/unnecessary_unicode_escape/UnnecessaryUnicodeEscape.java @@ -3,6 +3,8 @@ package com.siyeh.igtest.internationalization.unnecessary_unicode_escape; class UnnecessaryUnicodeEscape { // \uuuuuu0061\u0062 // control char & not representable char: \u0010 \u00e4 + + char[] surrogates = new char[]{'\ud800','\udc00'}; } @SuppressWarnings("UnnecessaryUnicodeEscape") class Suppress {