What do you mean?
use feature qw( try ); is a lexically-scoped pragma. The only thing that matter is the hints in effect when the try word is being compiled.
Please elaborate or demonstrate those cases.
I already posted the test cases.
| [reply] [d/l] [select] |
Yes, but I have no idea how this contradicts what I already said.
If use Try::Tiny sees "feature_try" in the callers hint hash it can (at least) warn.°
And if use feature "try" sees "try", "catch" or "finally" in the callers stash it can warn.
Elaborate edge cases for false positives and false negatives please.
What I suggested are well defined compile-time actions.
°) IMHO it should die, but this is open to debate.
| [reply] [d/l] [select] |
If use Try::Tiny sees "feature_try" in the callers hint hash it can (at least) warn.
The issue, as mentioned repeatedly, is that it's impossible to check the hash at the correct time.
Elaborate edge cases for false positives and false negatives please.
What matters is whether the feature is enabled when the try call is compiled. You suggested calling at 3 or 4 other times. But that won't work. If you perform the check as these wrong times,
-
It can warn even there's no issue.
This happens if the feature is enabled in the lexical scope being compiled when you perform your check, but it's not enabled for the lexical scope that contains the try call.
-
It can not warn when there is an issue.
This happens if the feature isn't enabled in the lexical scope being compiled when you perform your check, but it is enabled for the lexical scope that contains the try call.
Provide your check, and I'll provide a case that fails.
| [reply] [d/l] [select] |