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.
This commit is contained in:
Andrey Vlasovskikh
2015-03-24 15:52:08 +03:00
parent d093874c3a
commit 8d3dd98d6d
@@ -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<String> DEFAULT_PREFIXES = Sets.newHashSet(Sets.newHashSet("R", "U", "B", "BR", "RB"));
public CompatibilityVisitor(List<LanguageLevel> 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<String> prefixes = AVAILABLE_PREFIXES.get(languageLevel);
final Set<String> prefixesForLanguageLevel = AVAILABLE_PREFIXES.get(languageLevel);
final Set<String> prefixes = prefixesForLanguageLevel != null ? prefixesForLanguageLevel : DEFAULT_PREFIXES;
if (!prefixes.contains(prefix))
len = appendLanguageLevel(message, len, languageLevel);
}