{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/31512","repository_url":"https://api.github.com/repos/rust-lang/rust","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/31512/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/31512/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/31512/events","html_url":"https://github.com/rust-lang/rust/issues/31512","id":132467217,"number":31512,"title":"extend lint interface with more _post methods","user":{"login":"llogiq","id":4200835,"avatar_url":"https://avatars.githubusercontent.com/u/4200835?v=3","gravatar_id":"","url":"https://api.github.com/users/llogiq","html_url":"https://github.com/llogiq","followers_url":"https://api.github.com/users/llogiq/followers","following_url":"https://api.github.com/users/llogiq/following{/other_user}","gists_url":"https://api.github.com/users/llogiq/gists{/gist_id}","starred_url":"https://api.github.com/users/llogiq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llogiq/subscriptions","organizations_url":"https://api.github.com/users/llogiq/orgs","repos_url":"https://api.github.com/users/llogiq/repos","events_url":"https://api.github.com/users/llogiq/events{/privacy}","received_events_url":"https://api.github.com/users/llogiq/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-02-09T16:36:46Z","updated_at":"2016-02-10T20:34:23Z","closed_at":null,"body":"For clippy's `regex_macro` lint, I made use of a `Visitor` so I could stop clippy from linting the same macro multiple times while being reasonably fast. However, this unfortunately means the lint ignores `#[allow(_)]` .. `#[deny(_)]` attributes below the crate level.\r\n\r\nTo solve this and other related problems, I propose any of\r\n\r\n* allow a lint to check anything from anywhere in the analysis by moving up the parent chain to check the level\r\n* allow a lint to opt out of `check_*` calls for the duration of a specific node including its child nodes\r\n* add `after_*` methods to the {Early, Late}LintPass trait, so lints can decide themselves\r\n\r\nThe third option is probably the easiest to implement, yet the most flexible. This would bring the trait closer to other stream parser implementations like SAX."},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/182572642","html_url":"https://github.com/rust-lang/rust/issues/31512#issuecomment-182572642","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/31512","id":182572642,"user":{"login":"llogiq","id":4200835,"avatar_url":"https://avatars.githubusercontent.com/u/4200835?v=3","gravatar_id":"","url":"https://api.github.com/users/llogiq","html_url":"https://github.com/llogiq","followers_url":"https://api.github.com/users/llogiq/followers","following_url":"https://api.github.com/users/llogiq/following{/other_user}","gists_url":"https://api.github.com/users/llogiq/gists{/gist_id}","starred_url":"https://api.github.com/users/llogiq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llogiq/subscriptions","organizations_url":"https://api.github.com/users/llogiq/orgs","repos_url":"https://api.github.com/users/llogiq/repos","events_url":"https://api.github.com/users/llogiq/events{/privacy}","received_events_url":"https://api.github.com/users/llogiq/received_events","type":"User","site_admin":false},"created_at":"2016-02-10T20:34:23Z","updated_at":"2016-02-10T20:34:23Z","body":"Seeing that we already have a few, _post methods, I think adding some more will be an acceptable solution here. I'll have a PR shortly."}}