{"action":"opened","issue":{"url":"https://api.github.com/repos/myint/cppclean/issues/78","labels_url":"https://api.github.com/repos/myint/cppclean/issues/78/labels{/name}","comments_url":"https://api.github.com/repos/myint/cppclean/issues/78/comments","events_url":"https://api.github.com/repos/myint/cppclean/issues/78/events","html_url":"https://github.com/myint/cppclean/issues/78","id":115913217,"number":78,"title":"cppclean thinks forward declaration is not used, but it is.","user":{"login":"jwpeterson","id":1775907,"avatar_url":"https://avatars.githubusercontent.com/u/1775907?v=3","gravatar_id":"","url":"https://api.github.com/users/jwpeterson","html_url":"https://github.com/jwpeterson","followers_url":"https://api.github.com/users/jwpeterson/followers","following_url":"https://api.github.com/users/jwpeterson/following{/other_user}","gists_url":"https://api.github.com/users/jwpeterson/gists{/gist_id}","starred_url":"https://api.github.com/users/jwpeterson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwpeterson/subscriptions","organizations_url":"https://api.github.com/users/jwpeterson/orgs","repos_url":"https://api.github.com/users/jwpeterson/repos","events_url":"https://api.github.com/users/jwpeterson/events{/privacy}","received_events_url":"https://api.github.com/users/jwpeterson/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-11-09T16:29:45Z","updated_at":"2015-11-09T16:29:45Z","closed_at":null,"body":"cppclean master reports:\r\n```\r\ncppclean_test2.h:4: 'Foo::Bar' not used\r\n```\r\nfor the following code snippet.  I think it may be getting tricked by the `using namespace` declaration into thinking that the `Bar` forward declaration is not required, when in fact it is.\r\n\r\n```\r\n// Forward declare Foo::Bar\r\nnamespace Foo\r\n{\r\nclass Bar;\r\n}\r\n\r\n// So we can reference Bar without qualification below.\r\nusing namespace Foo;\r\n\r\nclass A\r\n{\r\n  // The namespaced forward declaration is required for this line of code.\r\n  void f(Bar & bar);\r\n};\r\n```\r\n"}}