User Tools

A PCRE internal error occured. This might be caused by a faulty plugin

====== Declaration IGNORE, IGNORABLE ====== ====Syntax==== * (**ignore** {//var// | (**[[CL:Special Operators:function]]** //fn//)}''*'') * (**ignorable** {//var// | (**[[CL:Special Operators:function]]** //fn//)}''*'') ====Arguments==== * //var// - a //[[CL:Glossary:variable]]// //[[CL:Glossary:name]]//. * //fn// - a //[[CL:Glossary:function]]// //[[CL:Glossary:name]]//. ====Valid Context==== //[[CL:Glossary:declaration]]// ====Binding Types Affected==== //[[CL:Glossary:variable]]//, //[[CL:Glossary:function]]// ====Description==== The **ignore** and **ignorable** declarations refer to //[[CL:Glossary:for-value]]// //[[CL:Glossary:reference|references]]// to //[[CL:Glossary:variable]]// //[[CL:Glossary:binding|bindings]]// for the //var//s and to //[[CL:Glossary:function]]// //[[CL:Glossary:binding|bindings]]// for the //fn//s. An **ignore** //[[CL:Glossary:declaration]]// specifies that //[[CL:Glossary:for-value]]// //[[CL:Glossary:reference|references]]// to the indicated //[[CL:Glossary:binding|bindings]]// will not occur within the scope of the //[[CL:Glossary:declaration]]//. Within the //[[CL:Glossary:scope]]// of such a //[[CL:Glossary:declaration]]//, it is desirable for a compiler to issue a warning about the presence of either a //[[CL:Glossary:for-value]]// //[[CL:Glossary:reference]]// to any //var// or //fn//, or a **[[CL:Declarations:special]]** //[[CL:Glossary:declaration]]// for any //var//. An **ignorable** //[[CL:Glossary:declaration]]// specifies that //[[CL:Glossary:for-value]]// //[[CL:Glossary:reference|references]]// to the indicated //[[CL:Glossary:binding|bindings]]// might or might not occur within the scope of the //[[CL:Glossary:declaration]]//. Within the //[[CL:Glossary:scope]]// of such a //[[CL:Glossary:declaration]]//, it is not desirable for a compiler to issue a warning about the presence or absence of either a //[[CL:Glossary:for-value]]// //[[CL:Glossary:reference]]// to any //var// or //fn//, or a **[[CL:Declarations:special]]** //[[CL:Glossary:declaration]]// for any //var//. When not within the //[[CL:Glossary:scope]]// of a **ignore** or **ignorable** //[[CL:Glossary:declaration]]//, it is desirable for a compiler to issue a warning about any //var// for which there is neither a //[[CL:Glossary:for-value]]// //[[CL:Glossary:reference]]// nor a **[[CL:Declarations:special]]** //[[CL:Glossary:declaration]]//, or about any //fn// for which there is no //[[CL:Glossary:for-value]]// //[[CL:Glossary:reference]]//. Any warning about a "used" or "unused" //[[CL:Glossary:binding]]// must be of type **[[CL:Types:style-warning]]**, and may not affect program semantics. The //[[CL:Glossary:stream variable|stream variables]]// established by **[[CL:Macros:with-open-file]]**, **[[CL:Macros:with-open-stream]]**, **[[CL:Macros:with-input-from-string]]**, and **[[CL:Macros:with-output-to-string]]**, and all //[[CL:Glossary:iteration variable|iteration variables]]// are, by definition, always "used". Using ''(declare (ignore //v//))'', for such a //[[CL:Glossary:variable]]// //v// has unspecified consequences. ====See Also==== **[[CL:Symbols:declare|Symbol DECLARE]]** \issue{DOTIMES-IGNORE:X3J13-MAR91} \issue{IGNORE-USE-TERMINOLOGY:VALUE-ONLY} \issue{KMP-COMMENTS-ON-SANDRA-COMMENTS:X3J13-MAR-92}