diff --git a/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java b/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java index 86aa37e471e6..064cb97012ee 100644 --- a/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java +++ b/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java @@ -160,12 +160,13 @@ public class PythonDocumentationProvider extends AbstractDocumentationProvider i } } if (type instanceof PyUnionType) { - final List typeNames = new ArrayList(); - for (PyType t : ((PyUnionType)type).getMembers()) { - typeNames.add(getTypeName(t, context)); - } - Collections.sort(typeNames); - return String.format("one of (%s)", StringUtil.join(typeNames, ", ")); + return String.format("one of (%s)", StringUtil.join(((PyUnionType)type).getMembers(), + new Function() { + @Override + public String fun(PyType t) { + return getTypeName(t, context); + } + }, ", ")); } return name; } diff --git a/python/src/com/jetbrains/python/refactoring/PyDefUseUtil.java b/python/src/com/jetbrains/python/refactoring/PyDefUseUtil.java index 77d410d0c13d..6ebdfb0c79be 100644 --- a/python/src/com/jetbrains/python/refactoring/PyDefUseUtil.java +++ b/python/src/com/jetbrains/python/refactoring/PyDefUseUtil.java @@ -15,8 +15,7 @@ import com.jetbrains.python.psi.PyTargetExpression; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Collection; -import java.util.HashSet; +import java.util.*; /** * @author Dennis.Ushakov @@ -36,7 +35,19 @@ public class PyDefUseUtil { final boolean[] visited = new boolean[instructions.length]; final Collection result = new HashSet(); getLatestDefs(var, instructions, instr, visited, result); - return result.toArray(new PyElement[result.size()]); + final List sortedResult = new ArrayList(); + sortedResult.addAll(result); + Collections.sort(sortedResult, new Comparator() { + @Override + public int compare(PyElement e1, PyElement e2) { + final String n1 = e1.getName(); + if (n1 != null) { + return n1.compareTo(e2.getName()); + } + return 0; + } + }); + return sortedResult.toArray(new PyElement[sortedResult.size()]); } private static void getLatestDefs(final PyElement var,