return ((TypeLiteral) parent).getType().resolveBinding();
    private static ITypeBinding getPossibleTypeBinding(ASTNode node) {    	ASTNode parent= node.getParent();    	while (parent instanceof Type) {    		parent= parent.getParent();    	}    	switch (parent.getNodeType()) {    	case ASTNode.VARIABLE_DECLARATION_STATEMENT:    		return guessVariableType(((VariableDeclarationStatement) parent).fragments());		case ASTNode.FIELD_DECLARATION:			return guessVariableType(((FieldDeclaration) parent).fragments());		case ASTNode.VARIABLE_DECLARATION_EXPRESSION:			return guessVariableType(((VariableDeclarationExpression) parent).fragments());		case ASTNode.SINGLE_VARIABLE_DECLARATION:			SingleVariableDeclaration varDecl= (SingleVariableDeclaration) parent;			if (varDecl.getInitializer() != null) {				return varDecl.getInitializer().resolveTypeBinding();			}			break;		case ASTNode.ARRAY_CREATION:			ArrayCreation creation= (ArrayCreation) parent;			if (creation.getInitializer() != null) {				return creation.getInitializer().resolveTypeBinding();			}			return getPossibleReferenceBinding(parent);        case ASTNode.TYPE_LITERAL:        case ASTNode.CLASS_INSTANCE_CREATION:        	return getPossibleReferenceBinding(parent);        case ASTNode.TAG_ELEMENT:        	TagElement tagElement= (TagElement) parent;        	if ("@throws".equals(tagElement.getTagName()) || "@exception".equals(tagElement.getTagName())) {  //$NON-NLS-1$//$NON-NLS-2$        		ASTNode methNode= tagElement.getParent().getParent();        		if (methNode instanceof MethodDeclaration) {        			List thrownExcpetions= ((MethodDeclaration) methNode).thrownExceptions();        			if (thrownExcpetions.size() == 1) {        				return ((Name) thrownExcpetions.get(0)).resolveTypeBinding();        			}        		}        	}        	break;     	}    	return null;    }