Lines Matching refs:LM
130 LexedMethod* LM = new LexedMethod(this, FnD); in ParseCXXInlineMethodDef() local
131 getCurrentClass().LateParsedDeclarations.push_back(LM); in ParseCXXInlineMethodDef()
132 LM->TemplateScope = getCurScope()->isTemplateParamScope(); in ParseCXXInlineMethodDef()
133 CachedTokens &Toks = LM->Toks; in ParseCXXInlineMethodDef()
295 void Parser::ParseLexedMethodDeclaration(LateParsedMethodDeclaration &LM) { in ParseLexedMethodDeclaration() argument
297 ParseScope TemplateScope(this, Scope::TemplateParamScope, LM.TemplateScope); in ParseLexedMethodDeclaration()
299 if (LM.TemplateScope) { in ParseLexedMethodDeclaration()
300 Actions.ActOnReenterTemplateScope(getCurScope(), LM.Method); in ParseLexedMethodDeclaration()
304 Actions.ActOnStartDelayedCXXMethodDeclaration(getCurScope(), LM.Method); in ParseLexedMethodDeclaration()
310 for (unsigned I = 0, N = LM.DefaultArgs.size(); I != N; ++I) { in ParseLexedMethodDeclaration()
311 auto Param = cast<ParmVarDecl>(LM.DefaultArgs[I].Param); in ParseLexedMethodDeclaration()
315 if (CachedTokens *Toks = LM.DefaultArgs[I].Toks) { in ParseLexedMethodDeclaration()
375 LM.DefaultArgs[I].Toks = nullptr; in ParseLexedMethodDeclaration()
378 FunctionDecl *Old = cast<FunctionDecl>(LM.Method)->getPreviousDecl(); in ParseLexedMethodDeclaration()
390 if (CachedTokens *Toks = LM.ExceptionSpecTokens) { in ParseLexedMethodDeclaration()
397 ExceptionSpecEnd.setEofData(LM.Method); in ParseLexedMethodDeclaration()
415 = dyn_cast<FunctionTemplateDecl>(LM.Method)) in ParseLexedMethodDeclaration()
418 Method = cast<CXXMethodDecl>(LM.Method); in ParseLexedMethodDeclaration()
437 if (Tok.isNot(tok::eof) || Tok.getEofData() != LM.Method) in ParseLexedMethodDeclaration()
441 Actions.actOnDelayedExceptionSpecification(LM.Method, EST, in ParseLexedMethodDeclaration()
454 if (Tok.is(tok::eof) && Tok.getEofData() == LM.Method) in ParseLexedMethodDeclaration()
458 LM.ExceptionSpecTokens = nullptr; in ParseLexedMethodDeclaration()
464 Actions.ActOnFinishDelayedCXXMethodDeclaration(getCurScope(), LM.Method); in ParseLexedMethodDeclaration()
487 void Parser::ParseLexedMethodDef(LexedMethod &LM) { in ParseLexedMethodDef() argument
489 ParseScope TemplateScope(this, Scope::TemplateParamScope, LM.TemplateScope); in ParseLexedMethodDef()
491 if (LM.TemplateScope) { in ParseLexedMethodDef()
492 Actions.ActOnReenterTemplateScope(getCurScope(), LM.D); in ParseLexedMethodDef()
496 assert(!LM.Toks.empty() && "Empty body!"); in ParseLexedMethodDef()
497 Token LastBodyToken = LM.Toks.back(); in ParseLexedMethodDef()
502 BodyEnd.setEofData(LM.D); in ParseLexedMethodDef()
503 LM.Toks.push_back(BodyEnd); in ParseLexedMethodDef()
506 LM.Toks.push_back(Tok); in ParseLexedMethodDef()
507 PP.EnterTokenStream(LM.Toks.data(), LM.Toks.size(), true, false); in ParseLexedMethodDef()
517 Actions.ActOnStartOfFunctionDef(getCurScope(), LM.D); in ParseLexedMethodDef()
520 ParseFunctionTryBlock(LM.D, FnScope); in ParseLexedMethodDef()
525 if (Tok.is(tok::eof) && Tok.getEofData() == LM.D) in ParseLexedMethodDef()
530 ParseConstructorInitializer(LM.D); in ParseLexedMethodDef()
535 Actions.ActOnFinishFunctionBody(LM.D, nullptr); in ParseLexedMethodDef()
540 if (Tok.is(tok::eof) && Tok.getEofData() == LM.D) in ParseLexedMethodDef()
545 Actions.ActOnDefaultCtorInitializers(LM.D); in ParseLexedMethodDef()
548 !isa<FunctionTemplateDecl>(LM.D) || in ParseLexedMethodDef()
549 cast<FunctionTemplateDecl>(LM.D)->getTemplateParameters()->getDepth() in ParseLexedMethodDef()
554 ParseFunctionStatementBody(LM.D, FnScope); in ParseLexedMethodDef()
557 if (LM.D) in ParseLexedMethodDef()
558 LM.D->getAsFunction()->setLateTemplateParsed(false); in ParseLexedMethodDef()
563 if (Tok.is(tok::eof) && Tok.getEofData() == LM.D) in ParseLexedMethodDef()
566 if (CXXMethodDecl *MD = dyn_cast_or_null<CXXMethodDecl>(LM.D)) in ParseLexedMethodDef()