本文整理汇总了Java中com.intellij.psi.PsiExpressionStatement.getExpression方法的典型用法代码示例。如果您正苦于以下问题:Java PsiExpressionStatement.getExpression方法的具体用法?Java PsiExpressionStatement.getExpression怎么用?Java PsiExpressionStatement.getExpression使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.psi.PsiExpressionStatement
的用法示例。
在下文中一共展示了PsiExpressionStatement.getExpression方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: visitExpressionStatement
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
@Override
public void visitExpressionStatement(@NotNull PsiExpressionStatement statement) {
super.visitExpressionStatement(statement);
final PsiExpression expression = statement.getExpression();
if (!(expression instanceof PsiNewExpression)) {
return;
}
final PsiNewExpression newExpression = (PsiNewExpression)expression;
final PsiExpression[] arrayDimensions = newExpression.getArrayDimensions();
if (arrayDimensions.length != 0) {
return;
}
if (newExpression.getArrayInitializer() != null) {
return;
}
registerNewExpressionError(newExpression);
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:18,代码来源:ResultOfObjectAllocationIgnoredInspection.java
示例2: invoke
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException
{
PsiExpressionStatement statement = myPointer.getElement();
if(statement == null)
{
return;
}
PsiExpression expression = statement.getExpression();
List<PsiExpression> sideEffects = SideEffectChecker.extractSideEffectExpressions(expression);
PsiStatement[] statements = StatementExtractor.generateStatements(sideEffects, expression);
if(statements.length > 0)
{
BlockUtils.addBefore(statement, statements);
}
statement.delete();
}
示例3: replaceSimplifiableAssignment
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
private static void replaceSimplifiableAssignment(
PsiIfStatement statement)
throws IncorrectOperationException {
final PsiExpression condition = statement.getCondition();
if (condition == null) {
return;
}
final String conditionText = condition.getText();
final PsiStatement thenBranch = statement.getThenBranch();
final PsiExpressionStatement assignmentStatement =
(PsiExpressionStatement)
ControlFlowUtils.stripBraces(thenBranch);
final PsiAssignmentExpression assignmentExpression =
(PsiAssignmentExpression)assignmentStatement.getExpression();
final PsiJavaToken operator =
assignmentExpression.getOperationSign();
final String operand = operator.getText();
final PsiExpression lhs = assignmentExpression.getLExpression();
final String lhsText = lhs.getText();
replaceStatement(statement,
lhsText + operand + conditionText + ';');
}
示例4: replaceSimplifiableAssignmentNegated
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
private static void replaceSimplifiableAssignmentNegated(
PsiIfStatement statement)
throws IncorrectOperationException {
final PsiExpression condition = statement.getCondition();
if (condition == null) {
return;
}
final String conditionText =
BoolUtils.getNegatedExpressionText(condition);
final PsiStatement thenBranch = statement.getThenBranch();
final PsiExpressionStatement assignmentStatement =
(PsiExpressionStatement)
ControlFlowUtils.stripBraces(thenBranch);
final PsiAssignmentExpression assignmentExpression =
(PsiAssignmentExpression)
assignmentStatement.getExpression();
final PsiJavaToken operator =
assignmentExpression.getOperationSign();
final String operand = operator.getText();
final PsiExpression lhs = assignmentExpression.getLExpression();
final String lhsText = lhs.getText();
replaceStatement(statement,
lhsText + operand + conditionText + ';');
}
示例5: DeleteSideEffectsAwareFix
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
public DeleteSideEffectsAwareFix(PsiExpressionStatement statement)
{
myPointer = SmartPointerManager.getInstance(statement.getProject()).createSmartPsiElementPointer(statement);
PsiExpression expression = statement.getExpression();
List<PsiExpression> sideEffects = SideEffectChecker.extractSideEffectExpressions(expression);
if(sideEffects.isEmpty())
{
myMessage = JavaQuickFixBundle.message("delete.element.fix.text");
}
else if(sideEffects.size() == 1 && sideEffects.get(0) == PsiUtil.skipParenthesizedExprDown(expression))
{
// "Remove unnecessary parentheses" action is already present which will do the same
myMessage = "";
}
else
{
PsiStatement[] statements = StatementExtractor.generateStatements(sideEffects, expression);
if(statements.length == 1)
{
if(statements[0] instanceof PsiIfStatement)
{
myMessage = JavaQuickFixBundle.message("extract.side.effects.convert.to.if");
}
else
{
myMessage = JavaQuickFixBundle.message("extract.side.effects.single");
}
}
else
{
myMessage = JavaQuickFixBundle.message("extract.side.effects.multiple");
}
}
}
示例6: replaceSimplifiableImplicitAssignment
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
private static void replaceSimplifiableImplicitAssignment(
PsiIfStatement statement) throws IncorrectOperationException {
final PsiElement prevStatement =
PsiTreeUtil.skipSiblingsBackward(statement,
PsiWhiteSpace.class);
if (prevStatement == null) {
return;
}
final PsiExpression condition = statement.getCondition();
if (condition == null) {
return;
}
final String conditionText = condition.getText();
final PsiStatement thenBranch = statement.getThenBranch();
final PsiExpressionStatement assignmentStatement =
(PsiExpressionStatement)
ControlFlowUtils.stripBraces(thenBranch);
final PsiAssignmentExpression assignmentExpression =
(PsiAssignmentExpression)assignmentStatement.getExpression();
final PsiJavaToken operator =
assignmentExpression.getOperationSign();
final String operand = operator.getText();
final PsiExpression lhs = assignmentExpression.getLExpression();
final String lhsText = lhs.getText();
replaceStatement(statement,
lhsText + operand + conditionText + ';');
deleteElement(prevStatement);
}
示例7: isSimplifiableAssignment
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
public static boolean isSimplifiableAssignment(PsiIfStatement ifStatement) {
PsiStatement thenBranch = ifStatement.getThenBranch();
thenBranch = ControlFlowUtils.stripBraces(thenBranch);
PsiStatement elseBranch = ifStatement.getElseBranch();
elseBranch = ControlFlowUtils.stripBraces(elseBranch);
if (ConditionalUtils.isAssignment(thenBranch, PsiKeyword.TRUE) &&
ConditionalUtils.isAssignment(elseBranch, PsiKeyword.FALSE)) {
final PsiExpressionStatement thenExpressionStatement =
(PsiExpressionStatement)thenBranch;
final PsiAssignmentExpression thenExpression =
(PsiAssignmentExpression)
thenExpressionStatement.getExpression();
final PsiExpressionStatement elseExpressionStatement =
(PsiExpressionStatement)elseBranch;
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
final IElementType thenTokenType = thenExpression.getOperationTokenType();
if (!thenTokenType.equals(elseExpression.getOperationTokenType())) {
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
final PsiExpression elseLhs = elseExpression.getLExpression();
return EquivalenceChecker.getCanonicalPsiEquivalence().expressionsAreEquivalent(thenLhs,
elseLhs);
}
else {
return false;
}
}
示例8: isSimplifiableAssignmentNegated
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
public static boolean isSimplifiableAssignmentNegated(
PsiIfStatement ifStatement) {
PsiStatement thenBranch = ifStatement.getThenBranch();
thenBranch = ControlFlowUtils.stripBraces(thenBranch);
PsiStatement elseBranch = ifStatement.getElseBranch();
elseBranch = ControlFlowUtils.stripBraces(elseBranch);
if (ConditionalUtils.isAssignment(thenBranch, PsiKeyword.FALSE) &&
ConditionalUtils.isAssignment(elseBranch, PsiKeyword.TRUE)) {
final PsiExpressionStatement thenExpressionStatement =
(PsiExpressionStatement)thenBranch;
final PsiAssignmentExpression thenExpression =
(PsiAssignmentExpression)
thenExpressionStatement.getExpression();
final PsiExpressionStatement elseExpressionStatement =
(PsiExpressionStatement)elseBranch;
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
final IElementType thenTokenType = thenExpression.getOperationTokenType();
if (!thenTokenType.equals(elseExpression.getOperationTokenType())) {
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
final PsiExpression elseLhs = elseExpression.getLExpression();
return EquivalenceChecker.getCanonicalPsiEquivalence().expressionsAreEquivalent(thenLhs,
elseLhs);
}
else {
return false;
}
}
示例9: isSimplifiableImplicitAssignment
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
public static boolean isSimplifiableImplicitAssignment(
PsiIfStatement ifStatement) {
if (ifStatement.getElseBranch() != null) {
return false;
}
PsiStatement thenBranch = ifStatement.getThenBranch();
thenBranch = ControlFlowUtils.stripBraces(thenBranch);
final PsiElement nextStatement =
PsiTreeUtil.skipSiblingsBackward(ifStatement,
PsiWhiteSpace.class);
if (!(nextStatement instanceof PsiStatement)) {
return false;
}
PsiStatement elseBranch = (PsiStatement)nextStatement;
elseBranch = ControlFlowUtils.stripBraces(elseBranch);
if (ConditionalUtils.isAssignment(thenBranch, PsiKeyword.TRUE) &&
ConditionalUtils.isAssignment(elseBranch, PsiKeyword.FALSE)) {
final PsiExpressionStatement thenExpressionStatement =
(PsiExpressionStatement)thenBranch;
final PsiAssignmentExpression thenExpression =
(PsiAssignmentExpression)
thenExpressionStatement.getExpression();
final PsiExpressionStatement elseExpressionStatement =
(PsiExpressionStatement)elseBranch;
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
final IElementType thenTokenType = thenExpression.getOperationTokenType();
if (!thenTokenType.equals(elseExpression.getOperationTokenType())) {
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
final PsiExpression elseLhs = elseExpression.getLExpression();
return EquivalenceChecker.getCanonicalPsiEquivalence().expressionsAreEquivalent(thenLhs,
elseLhs);
}
else {
return false;
}
}
示例10: isSimplifiableImplicitAssignmentNegated
import com.intellij.psi.PsiExpressionStatement; //导入方法依赖的package包/类
public static boolean isSimplifiableImplicitAssignmentNegated(
PsiIfStatement ifStatement) {
if (ifStatement.getElseBranch() != null) {
return false;
}
PsiStatement thenBranch = ifStatement.getThenBranch();
thenBranch = ControlFlowUtils.stripBraces(thenBranch);
final PsiElement nextStatement =
PsiTreeUtil.skipSiblingsBackward(ifStatement,
PsiWhiteSpace.class);
if (!(nextStatement instanceof PsiStatement)) {
return false;
}
PsiStatement elseBranch = (PsiStatement)nextStatement;
elseBranch = ControlFlowUtils.stripBraces(elseBranch);
if (ConditionalUtils.isAssignment(thenBranch, PsiKeyword.FALSE) &&
ConditionalUtils.isAssignment(elseBranch, PsiKeyword.TRUE)) {
final PsiExpressionStatement thenExpressionStatement =
(PsiExpressionStatement)thenBranch;
final PsiAssignmentExpression thenExpression =
(PsiAssignmentExpression)
thenExpressionStatement.getExpression();
final PsiExpressionStatement elseExpressionStatement =
(PsiExpressionStatement)elseBranch;
final PsiAssignmentExpression elseExpression =
(PsiAssignmentExpression)
elseExpressionStatement.getExpression();
final IElementType thenTokenType = thenExpression.getOperationTokenType();
if (!thenTokenType.equals(elseExpression.getOperationTokenType())) {
return false;
}
final PsiExpression thenLhs = thenExpression.getLExpression();
final PsiExpression elseLhs = elseExpression.getLExpression();
return EquivalenceChecker.getCanonicalPsiEquivalence().expressionsAreEquivalent(thenLhs,
elseLhs);
}
else {
return false;
}
}