From 8d3dd98d6dc91485a6c3c2e361300eb65efc84eb Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Tue, 24 Mar 2015 15:52:08 +0300 Subject: [PATCH] Fall back to the default set of modern string prefixes for recent Pythons The set of prefixes remains unchanged for several latest releases, so we use default prefixes here in order not to update the prefixes table with every release. --- .../jetbrains/python/validation/CompatibilityVisitor.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/python/src/com/jetbrains/python/validation/CompatibilityVisitor.java b/python/src/com/jetbrains/python/validation/CompatibilityVisitor.java index 67a7306a61b2..4e60035be074 100644 --- a/python/src/com/jetbrains/python/validation/CompatibilityVisitor.java +++ b/python/src/com/jetbrains/python/validation/CompatibilityVisitor.java @@ -50,10 +50,10 @@ public abstract class CompatibilityVisitor extends PyAnnotator { AVAILABLE_PREFIXES.put(LanguageLevel.PYTHON30, Sets.newHashSet("R", "B")); AVAILABLE_PREFIXES.put(LanguageLevel.PYTHON31, Sets.newHashSet("R", "B", "BR")); AVAILABLE_PREFIXES.put(LanguageLevel.PYTHON32, Sets.newHashSet("R", "B", "BR")); - AVAILABLE_PREFIXES.put(LanguageLevel.PYTHON33, Sets.newHashSet("R", "U", "B", "BR", "RB")); - AVAILABLE_PREFIXES.put(LanguageLevel.PYTHON34, Sets.newHashSet("R", "U", "B", "BR", "RB")); } + private static final Set DEFAULT_PREFIXES = Sets.newHashSet(Sets.newHashSet("R", "U", "B", "BR", "RB")); + public CompatibilityVisitor(List versionsToProcess) { myVersionsToProcess = versionsToProcess; } @@ -254,7 +254,8 @@ public abstract class CompatibilityVisitor extends PyAnnotator { final LanguageLevel languageLevel = myVersionsToProcess.get(i); if (prefix.isEmpty()) continue; - final Set prefixes = AVAILABLE_PREFIXES.get(languageLevel); + final Set prefixesForLanguageLevel = AVAILABLE_PREFIXES.get(languageLevel); + final Set prefixes = prefixesForLanguageLevel != null ? prefixesForLanguageLevel : DEFAULT_PREFIXES; if (!prefixes.contains(prefix)) len = appendLanguageLevel(message, len, languageLevel); }