}
}
@Override
public void visitFunctionParameter(GoFunctionParameter parameter) {
GoPsiType typeForBody = parameter.getTypeForBody();
if (typeForBody != null)
setData(new GoType[]{GoTypes.fromPsi(typeForBody)});
}
@Override
public void visitMethodReceiver(GoMethodReceiver receiver) {
GoPsiType type = receiver.getType();
if (type != null)
setData(new GoType[]{GoTypes.fromPsi(type)});
}
@Override
public void visitSwitchTypeGuard(GoSwitchTypeGuard typeGuard) {
GoSwitchTypeStatement switchStatement = (GoSwitchTypeStatement) typeGuard.getParent();
TextRange litRange = identifier.getTextRange();
for (GoSwitchTypeClause clause : switchStatement.getClauses()) {
TextRange clauseTextRange = clause.getTextRange();
if (clauseTextRange.contains(litRange)) {
setData(GoTypes.fromPsiType(clause.getTypes()));
}
}
}
@Override
public void visitForWithRangeAndVars(GoForWithRangeAndVarsStatement statement) {
if (resolvedIdent != null) {
if (statement.getKey() == resolvedIdent) {
setData(statement.getKeyType());
} else if (statement.getValue() == resolvedIdent) {
setData(statement.getValueType());
}
}
}
});
case Composite:
GoLiteralComposite composite = (GoLiteralComposite) literal;
GoPsiType literalType = composite.getLiteralType();
if (literalType == null) {
return GoType.EMPTY_ARRAY;
}
return new GoType[]{
GoTypes.fromPsi(literalType)