Displaying 2 results from an estimated 2 matches for "not_null_and_isa".
Did you mean:
nonnull_and_isa
2019 Apr 04
4
[RFC] Should we add isa_or_null<>?
I'd like to propose adding `isa_or_null<>` to replace the following usage
pattern that's relatively common in conditionals:
var && isa<T>(var) =>> isa_or_null<T>(var)
And in particular when `var` is a method call which might be expensive,
e.g.:
X->foo() && isa<T>(X->foo()) =>> isa_or_null<T>(X->foo())
The
2019 Apr 04
2
[RFC] Should we add isa_or_null<>?
...; conveys to me.
>
This is the same convention used by the existing "_or_null" varieties,
i.e., "cast_or_null" and "dyn_cast_or_null". They accept a null and
propagate it. In the "isa" case, it would accept a null and propagate it
as false.
>
> not_null_and_isa<T> would seem a better fit, or maybe exists_and_isa<T>.
>
> That said, I'm not sure sure we need a special API for this. Are
> expensive calls used in the way you describe really common?
>
I've only been looking at the ones involving method calls, but it's not...