Skip to content

Commit

Permalink
SONARPY-1283 Remove Deprecated APIs (#1390)
Browse files Browse the repository at this point in the history
  • Loading branch information
maksim-grebeniuk-sonarsource authored Feb 20, 2023
1 parent e2cad42 commit 0e1ee9b
Show file tree
Hide file tree
Showing 6 changed files with 0 additions and 102 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,6 @@ public interface Decorator extends Tree {

Expression expression();

/**
Might return a DottedName containing an empty list of names when the expression is more complex
than a qualified name or a call expression (possible since Python 3.9)
*/
@Deprecated
DottedName name();

@CheckForNull
@Deprecated
Token leftPar();

@CheckForNull
ArgList arguments();

@CheckForNull
@Deprecated
Token rightPar();
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,6 @@ public interface StringElement extends Tree {

boolean isInterpolated();

/**
* @deprecated Use {@link #formattedExpressions()} instead.
*/
@Deprecated
List<Expression> interpolatedExpressions();

/**
* @return Formatted expressions of an f-string.
* Empty list if the string element is not an f-string.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,6 @@ enum Kind {

IMPORT_NAME(DottedName.class),

/**
* @deprecated Not essential as there are already IMPORT_NAME and IMPORT_FROM
*/
@Deprecated
IMPORT_STMT(DottedName.class),

KEYWORD_PATTERN(KeywordPattern.class),

LAMBDA(LambdaExpression.class),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
*/
package org.sonar.python.tree;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
Expand All @@ -30,10 +28,7 @@
import org.sonar.plugins.python.api.tree.ArgList;
import org.sonar.plugins.python.api.tree.CallExpression;
import org.sonar.plugins.python.api.tree.Decorator;
import org.sonar.plugins.python.api.tree.DottedName;
import org.sonar.plugins.python.api.tree.Expression;
import org.sonar.plugins.python.api.tree.Name;
import org.sonar.plugins.python.api.tree.QualifiedExpression;
import org.sonar.plugins.python.api.tree.Token;
import org.sonar.plugins.python.api.tree.Tree;
import org.sonar.plugins.python.api.tree.TreeVisitor;
Expand All @@ -46,12 +41,10 @@ public class DecoratorImpl extends SimpleStatement implements Decorator {
private final Token atToken;
private final Token newLineToken;
private final Expression expression;
private final DottedName name;

public DecoratorImpl(Token atToken, Expression expression, @Nullable Token newLineToken) {
this.atToken = atToken;
this.expression = expression;
this.name = new DottedNameImpl(nameTreesFromExpression(expression));
this.newLineToken = newLineToken != null ? newLineToken : null;
}

Expand All @@ -60,22 +53,6 @@ public Token atToken() {
return atToken;
}

@Override
@Deprecated
public DottedName name() {
return name;
}

@CheckForNull
@Override
@Deprecated
public Token leftPar() {
if (expression.is(Kind.CALL_EXPR)) {
return ((CallExpression) expression).leftPar();
}
return null;
}

@CheckForNull
@Override
public ArgList arguments() {
Expand All @@ -85,16 +62,6 @@ public ArgList arguments() {
return null;
}

@CheckForNull
@Override
@Deprecated
public Token rightPar() {
if (expression.is(Kind.CALL_EXPR)) {
return ((CallExpression) expression).rightPar();
}
return null;
}

@Override
public Expression expression() {
return expression;
Expand All @@ -114,29 +81,4 @@ public List<Tree> computeChildren() {
public Kind getKind() {
return Kind.DECORATOR;
}

private static List<Name> nameTreesFromExpression(Expression expression) {
if (expression.is(Kind.NAME)) {
List<Name> result = new ArrayList<>();
result.add((Name) expression);
return result;
} else if (expression.is(Kind.QUALIFIED_EXPR)) {
return nameTreesFromQualifiedExpression((QualifiedExpression) expression);
} else if (expression.is(Kind.CALL_EXPR)) {
CallExpression callExpression = (CallExpression) expression;
Expression callee = callExpression.callee();
return nameTreesFromExpression(callee);
}
return Collections.emptyList();
}

private static List<Name> nameTreesFromQualifiedExpression(QualifiedExpression qualifiedExpression) {
Name exprName = qualifiedExpression.name();
Expression qualifier = qualifiedExpression.qualifier();
List<Name> names = nameTreesFromExpression(qualifier);
if (!names.isEmpty()) {
names.add(exprName);
}
return names;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.sonar.plugins.python.api.tree.Expression;
import org.sonar.plugins.python.api.tree.FormattedExpression;
import org.sonar.plugins.python.api.tree.StringElement;
import org.sonar.plugins.python.api.tree.Token;
Expand Down Expand Up @@ -101,11 +100,6 @@ public boolean isInterpolated() {
return prefix.indexOf('f') >= 0 || prefix.indexOf('F') >= 0;
}

@Override
public List<Expression> interpolatedExpressions() {
return formattedExpressions.stream().map(FormattedExpression::expression).collect(Collectors.toList());
}

@Override
public List<FormattedExpression> formattedExpressions() {
return formattedExpressions;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -783,17 +783,12 @@ public void funcdef_statement() {
Decorator decoratorTree = functionDef.decorators().get(0);
assertThat(decoratorTree.getKind()).isEqualTo(Tree.Kind.DECORATOR);
assertThat(decoratorTree.atToken().value()).isEqualTo("@");
assertThat(decoratorTree.name().names().get(0).name()).isEqualTo("foo");
assertThat(decoratorTree.leftPar()).isNull();
assertThat(decoratorTree.arguments()).isNull();
assertThat(decoratorTree.rightPar()).isNull();

functionDef = parse("@foo()\n@bar(1)\ndef func(x): pass", treeMaker::funcDefStatement);
assertThat(functionDef.decorators()).hasSize(2);
Decorator decoratorTree1 = functionDef.decorators().get(0);
assertThat(decoratorTree1.leftPar().value()).isEqualTo("(");
assertThat(decoratorTree1.arguments()).isNull();
assertThat(decoratorTree1.rightPar().value()).isEqualTo(")");
Decorator decoratorTree2 = functionDef.decorators().get(1);
assertThat(decoratorTree2.arguments().arguments()).extracting(arg -> ((RegularArgument) arg).expression().getKind()).containsExactly(Tree.Kind.NUMERIC_LITERAL);

Expand Down Expand Up @@ -886,7 +881,6 @@ public void decorators() {
List<Decorator> decorators = functionDef.decorators();
assertThat(decorators).hasSize(2);
Decorator decorator = decorators.get(0);
assertThat(decorator.name().names().get(0).name()).isEqualTo("foo");
assertThat(TreeUtils.decoratorNameFromExpression(decorator.expression())).isEqualTo("foo");
assertThat(TreeUtils.fullyQualifiedNameFromExpression(decorator.expression())).isEqualTo("foo");
assertThat(decorator.expression().is(Kind.CALL_EXPR)).isTrue();
Expand All @@ -895,8 +889,6 @@ public void decorators() {
decorators = functionDef.decorators();
assertThat(decorators).hasSize(1);
decorator = decorators.get(0);
assertThat(decorator.name().names().get(0).name()).isEqualTo("foo");
assertThat(decorator.name().names().get(1).name()).isEqualTo("bar");
assertThat(TreeUtils.decoratorNameFromExpression(decorator.expression())).isEqualTo("foo.bar");
assertThat(TreeUtils.fullyQualifiedNameFromExpression(decorator.expression())).isEqualTo("foo.bar");
assertThat(decorator.expression().is(Kind.CALL_EXPR)).isTrue();
Expand All @@ -905,7 +897,6 @@ public void decorators() {
decorators = functionDef.decorators();
assertThat(decorators).hasSize(1);
decorator = decorators.get(0);
assertThat(decorator.name().names()).isEmpty();
assertThat(TreeUtils.decoratorNameFromExpression(decorator.expression())).isNull();
assertThat(TreeUtils.fullyQualifiedNameFromExpression(decorator.expression())).isNull();
assertThat(decorator.expression().is(Kind.QUALIFIED_EXPR)).isTrue();
Expand Down Expand Up @@ -964,7 +955,6 @@ public void classdef_statement() {
classDef = treeMaker.classDefStatement(astNode);
assertThat(classDef.decorators()).hasSize(1);
Decorator decorator = classDef.decorators().get(0);
assertThat(decorator.name().names()).extracting(Name::name).containsExactly("foo", "bar");

astNode = p.parse("class clazz:\n def foo(): pass");
classDef = treeMaker.classDefStatement(astNode);
Expand Down Expand Up @@ -2133,7 +2123,6 @@ private FormattedExpression parseInterpolated(String interpolatedExpr) {
assertThat(stringLiteral.stringElements()).hasSize(1);
StringElement elmt = stringLiteral.stringElements().get(0);
assertThat(elmt.isInterpolated()).isTrue();
assertThat(elmt.formattedExpressions()).extracting(FormattedExpression::expression).containsExactlyElementsOf(elmt.interpolatedExpressions());
assertThat(elmt.formattedExpressions()).hasSize(1);
return elmt.formattedExpressions().get(0);
}
Expand Down

0 comments on commit 0e1ee9b

Please sign in to comment.