LNode RestOfPropertyDefinition(int startIndex, LNode type, LNode name, bool isExpression)
{
TokenType la0;
Token lb = default(Token);
Token rb = default(Token);
LNode result = default(LNode);
// line 1662
LNode args = F.Missing;
// Line 1663: (TT.LBrack TT.RBrack)?
la0 = LA0;
if (la0 == TT.LBrack) {
lb = MatchAny();
rb = Match((int) TT.RBrack);
// line 1663
args = ArgList(lb, rb);
}
WhereClausesOpt(ref name);
// line 1665
LNode initializer;
var body = MethodBodyOrForward(true, out initializer, isExpression);
// line 1668
var parts = new VList<LNode> {
type, name, args, body
};
if (initializer != null) {
parts.Add(initializer);
}
int targetIndex = type.Range.StartIndex;
result = F.Call(S.Property, parts, startIndex, body.Range.EndIndex, targetIndex, targetIndex);
return result;
}