903 {
905 ASSERT(flow_graph_builder_ !=
nullptr);
906
908
909
910
911 const Class& klass =
913 Function& outermost_function =
915
916 ActiveClassScope active_class_scope(active_class(), &klass);
917 ActiveMemberScope active_member(active_class(), &outermost_function);
919 ActiveTypeParametersScope active_type_params(active_class(),
function,
921
922 ParseKernelASTFunction();
923
925 case UntaggedFunction::kRegularFunction:
926 case UntaggedFunction::kGetterFunction:
927 case UntaggedFunction::kSetterFunction:
928 case UntaggedFunction::kClosureFunction:
929 case UntaggedFunction::kConstructor: {
931 return B->BuildGraphOfRecognizedMethod(
function);
932 }
933 return BuildGraphOfFunction(
function.IsGenerativeConstructor());
934 }
935 case UntaggedFunction::kImplicitGetter:
936 case UntaggedFunction::kImplicitStaticGetter:
937 case UntaggedFunction::kImplicitSetter: {
938 return B->BuildGraphOfFieldAccessor(
function);
939 }
940 case UntaggedFunction::kFieldInitializer:
941 return BuildGraphOfFieldInitializer();
942 case UntaggedFunction::kDynamicInvocationForwarder:
943 return B->BuildGraphOfDynamicInvocationForwarder(
function);
944 case UntaggedFunction::kMethodExtractor:
945 return flow_graph_builder_->BuildGraphOfMethodExtractor(
function);
946 case UntaggedFunction::kNoSuchMethodDispatcher:
947 return flow_graph_builder_->BuildGraphOfNoSuchMethodDispatcher(
function);
948 case UntaggedFunction::kInvokeFieldDispatcher:
949 return flow_graph_builder_->BuildGraphOfInvokeFieldDispatcher(
function);
950 case UntaggedFunction::kImplicitClosureFunction:
951 return flow_graph_builder_->BuildGraphOfImplicitClosureFunction(
function);
952 case UntaggedFunction::kFfiTrampoline:
953 return flow_graph_builder_->BuildGraphOfFfiTrampoline(
function);
954 case UntaggedFunction::kRecordFieldGetter:
955 return flow_graph_builder_->BuildGraphOfRecordFieldGetter(
function);
956 case UntaggedFunction::kIrregexpFunction:
957 break;
958 }
960 return nullptr;
961}
const Function & function() const
static bool IsRecognizedMethodForFlowGraph(const Function &function)
Dart_NativeFunction function