digitalmars.D.bugs - [Issue 4906] New: Dereferencing null error in a single expression
- d-bugmail puremagic.com (32/32) Sep 21 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4906
- d-bugmail puremagic.com (13/20) Dec 09 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4906
http://d.puremagic.com/issues/show_bug.cgi?id=4906 Summary: Dereferencing null error in a single expression Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: accepts-invalid Severity: enhancement Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: bearophile_hugs eml.cc To find null dereferencing in code the compiler probably needs to perform flow analysis. But the compiler can spot and flag as errors at compile-time expressions that follow explicit comparisons to null: if (obj is null && obj.foo()) { ... Where the programmer probably meant to write: if (obj !is null && obj.foo()) { ... Or: if (obj is null || obj.foo()) { ... This test doesn't cover several cases of dereference null errors that span different lines of code, but the cases it covers seem common enough to me. See also bug 4595 See also bug 4571 See also: http://code.google.com/intl/en-EN/webtoolkit/tools/codepro/doc/features/audit/audit_rules_com.instantiations.assist.eclipse.auditGroup.semanticErrors.html#com.instantiations.assist.eclipse.analysis.audit.rule.dereferencingNullPointer -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 21 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4906 Andrej Mitrovic <andrej.mitrovich gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrej.mitrovich gmail.com 09:11:03 PST ---To find null dereferencing in code the compiler probably needs to perform flow analysis. But the compiler can spot and flag as errors at compile-time expressions that follow explicit comparisons to null: if (obj is null && obj.foo()) { ...What if 'foo' is a UFCS function? There's a slight possibility that such a check was expected. I guess the compiler could be more lax in the UFCS case and more careful if 'foo' is actually a method, so maybe this is implementable.. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 09 2012