Indicates that a method argument is not retained (stored in a field) by the method, or by any objects it calls,
except those that are returned to the caller.
Formally, the annotated argument:
- Is not stored in a field of the method's class.
- Is not stored directly in a field of another class.
- Is not passed to a constructor or method as a
Retained
argument.
- Is returned as the method's return value; or, if passed to a constructor or method as a
Returned
argument, the return value of that method/constructor satisfies these conditions.
Constructor arguments (for both
Pure
and non-
Pure
types) are
Returned
by default.