diff --git a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/functionTypeComments/PyFunctionTypeAnnotationParser.java b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/functionTypeComments/PyFunctionTypeAnnotationParser.java index 8051d1dbc122..58696cb9795c 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/functionTypeComments/PyFunctionTypeAnnotationParser.java +++ b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/functionTypeComments/PyFunctionTypeAnnotationParser.java @@ -26,19 +26,17 @@ import com.jetbrains.python.parsing.ExpressionParsing; import com.jetbrains.python.parsing.ParsingContext; import com.jetbrains.python.parsing.PyParser; import com.jetbrains.python.parsing.StatementParsing; -import com.jetbrains.python.psi.FutureFeature; import com.jetbrains.python.psi.LanguageLevel; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; /** * @author Mikhail Golubev */ public class PyFunctionTypeAnnotationParser extends PyParser { @Override - protected ParsingContext createParsingContext(SyntaxTreeBuilder builder, LanguageLevel languageLevel, FutureFeature futureFlag) { - return new ParsingContext(builder, languageLevel, futureFlag) { - private final StatementParsing myStatementParsing = new AnnotationParser(this, futureFlag); + protected ParsingContext createParsingContext(SyntaxTreeBuilder builder, LanguageLevel languageLevel) { + return new ParsingContext(builder, languageLevel) { + private final StatementParsing myStatementParsing = new AnnotationParser(this); private final ExpressionParsing myExpressionParsing = new ExpressionParsing(this) { @Override protected IElementType getReferenceType() { @@ -59,8 +57,8 @@ public class PyFunctionTypeAnnotationParser extends PyParser { } private static class AnnotationParser extends StatementParsing { - AnnotationParser(ParsingContext context, @Nullable FutureFeature futureFlag) { - super(context, futureFlag); + AnnotationParser(ParsingContext context) { + super(context); } @Override diff --git a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/typeHints/PyTypeHintParser.java b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/typeHints/PyTypeHintParser.java index c41f8e245698..1d675ebde9b1 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/typeHints/PyTypeHintParser.java +++ b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/typeHints/PyTypeHintParser.java @@ -8,22 +8,18 @@ import com.jetbrains.python.parsing.ExpressionParsing; import com.jetbrains.python.parsing.ParsingContext; import com.jetbrains.python.parsing.PyParser; import com.jetbrains.python.parsing.StatementParsing; -import com.jetbrains.python.psi.FutureFeature; import com.jetbrains.python.psi.LanguageLevel; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; class PyTypeHintParser extends PyParser { @Override @NotNull - protected ParsingContext createParsingContext(@NotNull SyntaxTreeBuilder builder, - @NotNull LanguageLevel languageLevel, - @Nullable FutureFeature futureFlag) { - return new ParsingContext(builder, languageLevel, futureFlag) { + protected ParsingContext createParsingContext(@NotNull SyntaxTreeBuilder builder, @NotNull LanguageLevel languageLevel) { + return new ParsingContext(builder, languageLevel) { @NotNull - private final StatementParsing myStatementParsing = new StatementParsing(this, futureFlag) { + private final StatementParsing myStatementParsing = new StatementParsing(this) { @Override @NotNull protected IElementType getReferenceType() { diff --git a/python/python-psi-impl/src/com/jetbrains/python/documentation/doctest/PyDocstringParser.java b/python/python-psi-impl/src/com/jetbrains/python/documentation/doctest/PyDocstringParser.java index 7e7bc28e562a..dfe656bcabf2 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/documentation/doctest/PyDocstringParser.java +++ b/python/python-psi-impl/src/com/jetbrains/python/documentation/doctest/PyDocstringParser.java @@ -18,7 +18,6 @@ package com.jetbrains.python.documentation.doctest; import com.intellij.lang.SyntaxTreeBuilder; import com.jetbrains.python.parsing.ParsingContext; import com.jetbrains.python.parsing.PyParser; -import com.jetbrains.python.psi.FutureFeature; import com.jetbrains.python.psi.LanguageLevel; /** @@ -26,7 +25,7 @@ import com.jetbrains.python.psi.LanguageLevel; */ public class PyDocstringParser extends PyParser { @Override - protected ParsingContext createParsingContext(SyntaxTreeBuilder builder, LanguageLevel languageLevel, FutureFeature futureFlag) { - return new PyDocstringParsingContext(builder, languageLevel, futureFlag); + protected ParsingContext createParsingContext(SyntaxTreeBuilder builder, LanguageLevel languageLevel) { + return new PyDocstringParsingContext(builder, languageLevel); } } diff --git a/python/python-psi-impl/src/com/jetbrains/python/documentation/doctest/PyDocstringParsingContext.java b/python/python-psi-impl/src/com/jetbrains/python/documentation/doctest/PyDocstringParsingContext.java index 6da3f06aac03..85ec8e0ae3f3 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/documentation/doctest/PyDocstringParsingContext.java +++ b/python/python-psi-impl/src/com/jetbrains/python/documentation/doctest/PyDocstringParsingContext.java @@ -22,9 +22,7 @@ import com.jetbrains.python.PyTokenTypes; import com.jetbrains.python.parsing.ExpressionParsing; import com.jetbrains.python.parsing.ParsingContext; import com.jetbrains.python.parsing.StatementParsing; -import com.jetbrains.python.psi.FutureFeature; import com.jetbrains.python.psi.LanguageLevel; -import org.jetbrains.annotations.Nullable; /** * User : ktisha @@ -33,11 +31,9 @@ public class PyDocstringParsingContext extends ParsingContext { private final StatementParsing myStatementParser; private final ExpressionParsing myExpressionParser; - public PyDocstringParsingContext(final SyntaxTreeBuilder builder, - LanguageLevel languageLevel, - FutureFeature futureFlag) { - super(builder, languageLevel, futureFlag); - myStatementParser = new PyDocstringStatementParsing(this, futureFlag); + public PyDocstringParsingContext(final SyntaxTreeBuilder builder, LanguageLevel languageLevel) { + super(builder, languageLevel); + myStatementParser = new PyDocstringStatementParsing(this); myExpressionParser = new PyDocstringExpressionParsing(this); } @@ -64,9 +60,8 @@ public class PyDocstringParsingContext extends ParsingContext { private static class PyDocstringStatementParsing extends StatementParsing { - protected PyDocstringStatementParsing(ParsingContext context, - @Nullable FutureFeature futureFlag) { - super(context, futureFlag); + protected PyDocstringStatementParsing(ParsingContext context) { + super(context); } @Override diff --git a/python/python-psi-impl/src/com/jetbrains/python/parsing/ParsingContext.java b/python/python-psi-impl/src/com/jetbrains/python/parsing/ParsingContext.java index 8847b4b0121b..9583ada5f002 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/parsing/ParsingContext.java +++ b/python/python-psi-impl/src/com/jetbrains/python/parsing/ParsingContext.java @@ -16,7 +16,6 @@ package com.jetbrains.python.parsing; import com.intellij.lang.SyntaxTreeBuilder; -import com.jetbrains.python.psi.FutureFeature; import com.jetbrains.python.psi.LanguageLevel; import org.jetbrains.annotations.NotNull; @@ -31,10 +30,10 @@ public class ParsingContext { private final LanguageLevel myLanguageLevel; private final Deque myScopes; - public ParsingContext(final SyntaxTreeBuilder builder, LanguageLevel languageLevel, FutureFeature futureFlag) { + public ParsingContext(final SyntaxTreeBuilder builder, LanguageLevel languageLevel) { myBuilder = builder; myLanguageLevel = languageLevel; - stmtParser = new StatementParsing(this, futureFlag); + stmtParser = new StatementParsing(this); expressionParser = new ExpressionParsing(this); functionParser = new FunctionParsing(this); myScopes = new ArrayDeque<>(); diff --git a/python/python-psi-impl/src/com/jetbrains/python/parsing/PythonParser.java b/python/python-psi-impl/src/com/jetbrains/python/parsing/PythonParser.java index 4c902641aa9f..4445f8f8e1d7 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/parsing/PythonParser.java +++ b/python/python-psi-impl/src/com/jetbrains/python/parsing/PythonParser.java @@ -3,13 +3,11 @@ package com.jetbrains.python.parsing; import com.intellij.lang.SyntaxTreeBuilder; import com.intellij.openapi.diagnostic.Logger; import com.intellij.psi.tree.IElementType; -import com.jetbrains.python.psi.FutureFeature; import com.jetbrains.python.psi.LanguageLevel; public class PythonParser { protected static final Logger LOGGER = Logger.getInstance(PyParser.class.getName()); protected LanguageLevel myLanguageLevel; - private FutureFeature myFutureFlag; public PythonParser() {myLanguageLevel = LanguageLevel.getDefault();} @@ -19,7 +17,7 @@ public class PythonParser { public void parseRoot(IElementType root, SyntaxTreeBuilder builder) { final SyntaxTreeBuilder.Marker rootMarker = builder.mark(); - ParsingContext context = createParsingContext(builder, myLanguageLevel, myFutureFlag); + ParsingContext context = createParsingContext(builder, myLanguageLevel); StatementParsing statementParser = context.getStatementParser(); builder.setTokenTypeRemapper(statementParser); // must be done before touching the caching lexer with eof() call. boolean lastAfterSemicolon = false; @@ -37,11 +35,7 @@ public class PythonParser { rootMarker.done(root); } - protected ParsingContext createParsingContext(SyntaxTreeBuilder builder, LanguageLevel languageLevel, FutureFeature futureFlag) { - return new ParsingContext(builder, languageLevel, futureFlag); - } - - public void setFutureFlag(FutureFeature future) { - myFutureFlag = future; + protected ParsingContext createParsingContext(SyntaxTreeBuilder builder, LanguageLevel languageLevel) { + return new ParsingContext(builder, languageLevel); } } diff --git a/python/python-psi-impl/src/com/jetbrains/python/parsing/StatementParsing.java b/python/python-psi-impl/src/com/jetbrains/python/parsing/StatementParsing.java index c8cc178fb50f..981caec40018 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/parsing/StatementParsing.java +++ b/python/python-psi-impl/src/com/jetbrains/python/parsing/StatementParsing.java @@ -76,11 +76,8 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper { } } - public StatementParsing(ParsingContext context, @Nullable FutureFeature futureFlag) { + public StatementParsing(ParsingContext context) { super(context); - if (futureFlag != null) { - myFutureFlags.add(futureFlag); - } } public void parseStatement() { diff --git a/python/python-psi-impl/src/com/jetbrains/python/parsing/console/PyConsoleParser.java b/python/python-psi-impl/src/com/jetbrains/python/parsing/console/PyConsoleParser.java index 63ed27d5a19c..f5616574cabb 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/parsing/console/PyConsoleParser.java +++ b/python/python-psi-impl/src/com/jetbrains/python/parsing/console/PyConsoleParser.java @@ -21,7 +21,6 @@ import com.intellij.psi.tree.IElementType; import com.jetbrains.python.PyTokenTypes; import com.jetbrains.python.parsing.ParsingContext; import com.jetbrains.python.parsing.PyParser; -import com.jetbrains.python.psi.FutureFeature; import com.jetbrains.python.psi.LanguageLevel; public class PyConsoleParser extends PyParser { @@ -48,8 +47,8 @@ public class PyConsoleParser extends PyParser { } @Override - protected ParsingContext createParsingContext(SyntaxTreeBuilder builder, LanguageLevel languageLevel, FutureFeature futureFlag) { + protected ParsingContext createParsingContext(SyntaxTreeBuilder builder, LanguageLevel languageLevel) { boolean iPythonStartSymbol = myPythonConsoleData.isIPythonEnabled() && startsWithIPythonSpecialSymbol(builder); - return new PyConsoleParsingContext(builder, languageLevel, futureFlag, myPythonConsoleData, iPythonStartSymbol); + return new PyConsoleParsingContext(builder, languageLevel, myPythonConsoleData, iPythonStartSymbol); } } diff --git a/python/python-psi-impl/src/com/jetbrains/python/parsing/console/PyConsoleParsingContext.java b/python/python-psi-impl/src/com/jetbrains/python/parsing/console/PyConsoleParsingContext.java index 133a341a6ef4..5ecb9d03139e 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/parsing/console/PyConsoleParsingContext.java +++ b/python/python-psi-impl/src/com/jetbrains/python/parsing/console/PyConsoleParsingContext.java @@ -8,9 +8,7 @@ import com.jetbrains.python.PyTokenTypes; import com.jetbrains.python.parsing.ExpressionParsing; import com.jetbrains.python.parsing.ParsingContext; import com.jetbrains.python.parsing.StatementParsing; -import com.jetbrains.python.psi.FutureFeature; import com.jetbrains.python.psi.LanguageLevel; -import org.jetbrains.annotations.Nullable; public class PyConsoleParsingContext extends ParsingContext { private final StatementParsing stmtParser; @@ -18,11 +16,10 @@ public class PyConsoleParsingContext extends ParsingContext { public PyConsoleParsingContext(final SyntaxTreeBuilder builder, LanguageLevel languageLevel, - FutureFeature futureFlag, PythonConsoleData pythonConsoleData, boolean startsWithIPythonSymbol) { - super(builder, languageLevel, futureFlag); - stmtParser = new ConsoleStatementParsing(this, futureFlag, startsWithIPythonSymbol, pythonConsoleData); + super(builder, languageLevel); + stmtParser = new ConsoleStatementParsing(this, startsWithIPythonSymbol, pythonConsoleData); if (pythonConsoleData.isIPythonEnabled()) { expressionParser = new ConsoleExpressionParsing(this); } @@ -47,10 +44,9 @@ public class PyConsoleParsingContext extends ParsingContext { private final PythonConsoleData myPythonConsoleData; protected ConsoleStatementParsing(ParsingContext context, - @Nullable FutureFeature futureFlag, boolean startsWithIPythonSymbol, PythonConsoleData pythonConsoleData) { - super(context, futureFlag); + super(context); myStartsWithIPythonSymbol = startsWithIPythonSymbol; myPythonConsoleData = pythonConsoleData; } diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java b/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java index 6cf8284bc1dc..2d9ef18fe671 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java @@ -91,9 +91,6 @@ public class PyFileElementType extends IStubFileElementType { if (parser instanceof PyParser) { final PythonParser pythonParser = (PythonParser)parser; pythonParser.setLanguageLevel(languageLevel); - if (languageLevel == LanguageLevel.PYTHON26 && psi.getContainingFile().getName().equals("__builtin__.py")) { - pythonParser.setFutureFlag(FutureFeature.PRINT_FUNCTION); - } } return parser.parse(this, builder).getFirstChildNode(); }