}
@NotNull
@Override
protected GoType[] resolveTypes() {
GoLiteral literal = getLiteral();
if (literal == null)
return GoType.EMPTY_ARRAY;
final GoTypes types = getInstance(getProject());
GoNamesCache namesCache = GoNamesCache.getInstance(getProject());
switch (literal.getType()) {
case Bool:
return new GoType[]{GoTypes.constant(GoTypeConstant.Kind.Boolean, literal.getValue())};
case Int:
return new GoType[]{GoTypes.constant(GoTypeConstant.Kind.Integer, literal.getValue())};
case Float:
return new GoType[]{GoTypes.constant(GoTypeConstant.Kind.Float, literal.getValue())};
case Char:
return new GoType[]{GoTypes.constant(GoTypeConstant.Kind.Rune, literal.getValue())};
case ImaginaryInt:
case ImaginaryFloat:
return new GoType[]{GoTypes.constant(GoTypeConstant.Kind.Complex, literal.getValue())};
case RawString:
case InterpretedString:
return new GoType[]{GoTypes.constant(GoTypeConstant.Kind.String, literal.getValue())};
case Function:
return new GoType[]{GoTypes.fromPsi((GoLiteralFunction) literal)};
case Identifier: