Removed redundant PyTypeProvider.getIterationType()

It was used only for 'file', superseded by 'io' classes. Providers can
provide iteration types via '__iter__' and '__next__'.
This commit is contained in:
Andrey Vlasovskikh
2014-01-21 16:18:10 +04:00
parent 2bbb843512
commit d2a8310ee8
4 changed files with 0 additions and 27 deletions
@@ -41,9 +41,6 @@ public interface PyTypeProvider {
@Nullable
PyType getReturnType(@NotNull PyFunction function, @Nullable PyQualifiedExpression callSite, @NotNull TypeEvalContext context);
@Nullable
PyType getIterationType(@NotNull PyClass iterable);
@Nullable
PyType getContextManagerVariableType(PyClass contextManager, PyExpression withExpression, TypeEvalContext context);
@@ -106,11 +106,6 @@ public class PyTypeProviderBase implements PyTypeProvider {
return null;
}
@Override
public PyType getIterationType(@NotNull PyClass iterable) {
return null;
}
@Nullable
@Override
public PyType getContextManagerVariableType(PyClass contextManager, PyExpression withExpression, TypeEvalContext context) {
@@ -135,18 +135,6 @@ public class PyStdlibTypeProvider extends PyTypeProviderBase {
return null;
}
@Nullable
@Override
public PyType getIterationType(@NotNull PyClass iterable) {
final PyBuiltinCache builtinCache = PyBuiltinCache.getInstance(iterable);
if (builtinCache.hasInBuiltins(iterable)) {
if ("file".equals(iterable.getName())) {
return builtinCache.getStrType();
}
}
return null;
}
@Nullable
@Override
public PyType getContextManagerVariableType(@NotNull PyClass contextManager, @NotNull PyExpression withExpression, @NotNull TypeEvalContext context) {
@@ -392,13 +392,6 @@ public class PyTargetExpressionImpl extends PyPresentableElementImpl<PyTargetExp
}
else if (iterableType instanceof PyClassType) {
final PyClass pyClass = ((PyClassType)iterableType).getPyClass();
for (PyTypeProvider provider: Extensions.getExtensions(PyTypeProvider.EP_NAME)) {
final PyType iterationType = provider.getIterationType(pyClass);
if (iterationType != null) {
result = iterationType;
break;
}
}
if (PyABCUtil.isSubclass(pyClass, PyNames.ITERATOR)) {
final PyFunction iterateMethod = pyClass.findMethodByName(PyNames.ITER, true);
PyType iterateMethodType = null;