Googletest export
Mark ACTION_Pn()-generated functions as must-use-result.
This catches when a client creates an action and discards it, thinking that the action has actually been applied to something.
This will help people who make the mistake of defining, for example, both `void Use(Foo*)` and `ACTION(Use) { Use(arg); }` for later application to a Foo.  With such an overload, a client may then write `Use();`, forgetting the param and being confused why nothing happens.
This also catches when a client defines their own action in terms of an ACTION()-generated one, invokes the ACTION's builder, and then fails to invoke the resulting action, thinking it's operating on the outer action's parameters.
PiperOrigin-RevId: 312108101
			
			
This commit is contained in:
		@@ -1512,6 +1512,7 @@ auto InvokeArgumentAdl(AdlTag, F f, Args... args) -> decltype(f(args...)) {
 | 
				
			|||||||
      return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const; \
 | 
					      return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const; \
 | 
				
			||||||
    };                                                                        \
 | 
					    };                                                                        \
 | 
				
			||||||
  };                                                                          \
 | 
					  };                                                                          \
 | 
				
			||||||
 | 
					  inline name##Action name() GTEST_MUST_USE_RESULT_;                          \
 | 
				
			||||||
  inline name##Action name() { return name##Action(); }                       \
 | 
					  inline name##Action name() { return name##Action(); }                       \
 | 
				
			||||||
  template <typename F>                                                       \
 | 
					  template <typename F>                                                       \
 | 
				
			||||||
  template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>                                \
 | 
					  template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>                                \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -442,7 +442,13 @@
 | 
				
			|||||||
    }\
 | 
					    }\
 | 
				
			||||||
    GMOCK_INTERNAL_DEFN_##value_params\
 | 
					    GMOCK_INTERNAL_DEFN_##value_params\
 | 
				
			||||||
  };\
 | 
					  };\
 | 
				
			||||||
  template <GMOCK_INTERNAL_DECL_##template_params\
 | 
					  template <GMOCK_INTERNAL_DECL_##template_params                   \
 | 
				
			||||||
 | 
					            GMOCK_INTERNAL_DECL_TYPE_##value_params>\
 | 
				
			||||||
 | 
					  GMOCK_ACTION_CLASS_(name, value_params)<\
 | 
				
			||||||
 | 
					      GMOCK_INTERNAL_LIST_##template_params\
 | 
				
			||||||
 | 
					      GMOCK_INTERNAL_LIST_TYPE_##value_params> name(\
 | 
				
			||||||
 | 
					          GMOCK_INTERNAL_DECL_##value_params) GTEST_MUST_USE_RESULT_;\
 | 
				
			||||||
 | 
					  template <GMOCK_INTERNAL_DECL_##template_params                   \
 | 
				
			||||||
            GMOCK_INTERNAL_DECL_TYPE_##value_params>\
 | 
					            GMOCK_INTERNAL_DECL_TYPE_##value_params>\
 | 
				
			||||||
  inline GMOCK_ACTION_CLASS_(name, value_params)<\
 | 
					  inline GMOCK_ACTION_CLASS_(name, value_params)<\
 | 
				
			||||||
      GMOCK_INTERNAL_LIST_##template_params\
 | 
					      GMOCK_INTERNAL_LIST_##template_params\
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -260,7 +260,13 @@ $range k 0..n-1
 | 
				
			|||||||
    }\
 | 
					    }\
 | 
				
			||||||
    GMOCK_INTERNAL_DEFN_##value_params\
 | 
					    GMOCK_INTERNAL_DEFN_##value_params\
 | 
				
			||||||
  };\
 | 
					  };\
 | 
				
			||||||
  template <GMOCK_INTERNAL_DECL_##template_params\
 | 
					  template <GMOCK_INTERNAL_DECL_##template_params                   \
 | 
				
			||||||
 | 
					            GMOCK_INTERNAL_DECL_TYPE_##value_params>\
 | 
				
			||||||
 | 
					  GMOCK_ACTION_CLASS_(name, value_params)<\
 | 
				
			||||||
 | 
					      GMOCK_INTERNAL_LIST_##template_params\
 | 
				
			||||||
 | 
					      GMOCK_INTERNAL_LIST_TYPE_##value_params> name(\
 | 
				
			||||||
 | 
					          GMOCK_INTERNAL_DECL_##value_params) GTEST_MUST_USE_RESULT_;\
 | 
				
			||||||
 | 
					  template <GMOCK_INTERNAL_DECL_##template_params                   \
 | 
				
			||||||
            GMOCK_INTERNAL_DECL_TYPE_##value_params>\
 | 
					            GMOCK_INTERNAL_DECL_TYPE_##value_params>\
 | 
				
			||||||
  inline GMOCK_ACTION_CLASS_(name, value_params)<\
 | 
					  inline GMOCK_ACTION_CLASS_(name, value_params)<\
 | 
				
			||||||
      GMOCK_INTERNAL_LIST_##template_params\
 | 
					      GMOCK_INTERNAL_LIST_##template_params\
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user