Skip to content

Commit d195ca5

Browse files
authored
DartPsiUtil.java cleanup, nullability, etc (#7684)
1 parent eebb9ab commit d195ca5

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

flutter-idea/src/io/flutter/dart/DartPsiUtil.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,21 @@ public static int parseLiteralNumber(@NotNull String val) throws NumberFormatExc
2626
}
2727

2828
@Nullable
29-
public static PsiElement getNewExprFromType(PsiElement element) {
29+
public static PsiElement getNewExprFromType(@NotNull PsiElement element) {
30+
if (element.getNode() == null) return null;
3031
if (element.getNode().getElementType() != DartTokenTypes.SIMPLE_TYPE) return null;
3132
PsiElement parent = element.getParent();
3233
if (parent == null) return null;
3334
parent = parent.getParent();
34-
if (parent == null) return null;
35+
if (parent == null || parent.getNode() == null) return null;
3536
if (parent.getNode().getElementType() != DartTokenTypes.NEW_EXPRESSION) return null;
3637
return parent;
3738
}
3839

3940
@Nullable
4041
public static String getValueOfPositionalArgument(@NotNull DartArguments arguments, int index) {
4142
final DartExpression expression = getPositionalArgument(arguments, index);
42-
if (expression == null) return null;
43+
if (expression == null || expression.getNode() == null) return null;
4344
if (expression.getNode().getElementType() != DartTokenTypes.LITERAL_EXPRESSION) return null;
4445
return expression.getText();
4546
}
@@ -56,9 +57,12 @@ public static DartExpression getPositionalArgument(@NotNull DartArguments argume
5657
public static String getValueOfNamedArgument(@NotNull DartArguments arguments, @NotNull String name) {
5758
final PsiElement family = getNamedArgumentExpression(arguments, "fontFamily");
5859
if (family != null) {
60+
assert family.getNode() != null;
5961
if (family.getNode().getElementType() == DartTokenTypes.STRING_LITERAL_EXPRESSION) {
62+
assert family.getText() != null;
6063
return DartPsiImplUtil.getUnquotedDartStringAndItsRange(family.getText()).first;
61-
} else {
64+
}
65+
else {
6266
return ""; // Empty string indicates arg was found but value could not be determined easily.
6367
}
6468
}
@@ -71,10 +75,12 @@ public static PsiElement getNamedArgumentExpression(@NotNull DartArguments argum
7175
if (list == null) return null;
7276
final List<DartNamedArgument> namedArgumentList = list.getNamedArgumentList();
7377
for (DartNamedArgument namedArgument : namedArgumentList) {
78+
assert namedArgument != null;
7479
final DartExpression nameExpression = namedArgument.getParameterReferenceExpression();
80+
assert nameExpression != null;
7581
final PsiElement childId = nameExpression.getFirstChild();
7682
final PsiElement child = nameExpression.getFirstChild();
77-
if (name.equals(child.getText())) {
83+
if (name.equals(child != null ? child.getText() : "")) {
7884
return namedArgument.getExpression();
7985
}
8086
}
@@ -84,12 +90,14 @@ public static PsiElement getNamedArgumentExpression(@NotNull DartArguments argum
8490
@Nullable
8591
public static PsiElement topmostReferenceExpression(@NotNull PsiElement element) {
8692
final PsiElement id = element.getParent();
87-
if (id == null || id.getNode().getElementType() != DartTokenTypes.ID) return null;
93+
if (id == null || id.getNode() == null || id.getNode().getElementType() != DartTokenTypes.ID) return null;
8894
PsiElement refExpr = id.getParent();
89-
if (refExpr == null || refExpr.getNode().getElementType() != DartTokenTypes.REFERENCE_EXPRESSION) return null;
95+
if (refExpr == null || refExpr.getNode() == null || refExpr.getNode().getElementType() != DartTokenTypes.REFERENCE_EXPRESSION) {
96+
return null;
97+
}
9098

9199
PsiElement parent = refExpr.getParent();
92-
while (parent != null && parent.getNode().getElementType() == DartTokenTypes.REFERENCE_EXPRESSION) {
100+
while (parent != null && parent.getNode() != null && parent.getNode().getElementType() == DartTokenTypes.REFERENCE_EXPRESSION) {
93101
refExpr = parent;
94102
parent = parent.getParent();
95103
}

0 commit comments

Comments
 (0)