}
IQualifierNode qualifier = (IQualifierNode) leftRef;
assertTrue(!RefQualified.isExpressionQualifier(qualifier));
leftRef = parseRefQualified(parse, qualifier);
} else if(refRestrictions.canParsePointer() && tryConsume(DeeTokens.STAR)) {
leftRef = conclude(srToPosition(leftRef, new RefTypePointer(leftRef)));
} else if(refRestrictions.canParseBracketRef() && lookAhead() == DeeTokens.OPEN_BRACKET) {
leftRef = parseBracketReference(leftRef, parse);
} else if(refRestrictions.canParseFunctionTypes() &&
(tryConsume(DeeTokens.KW_FUNCTION) || tryConsume(DeeTokens.KW_DELEGATE))) {
leftRef = parse.checkResult(thisParser().parseRefTypeFunction_afterReturnType(leftRef));