{"action":"created","issue":{"url":"https://api.github.com/repos/FasterXML/java-classmate/issues/28","labels_url":"https://api.github.com/repos/FasterXML/java-classmate/issues/28/labels{/name}","comments_url":"https://api.github.com/repos/FasterXML/java-classmate/issues/28/comments","events_url":"https://api.github.com/repos/FasterXML/java-classmate/issues/28/events","html_url":"https://github.com/FasterXML/java-classmate/issues/28","id":83651177,"number":28,"title":"Parametrised classes does not resolve method types properly","user":{"login":"dawrut","id":1149384,"avatar_url":"https://avatars.githubusercontent.com/u/1149384?v=3","gravatar_id":"","url":"https://api.github.com/users/dawrut","html_url":"https://github.com/dawrut","followers_url":"https://api.github.com/users/dawrut/followers","following_url":"https://api.github.com/users/dawrut/following{/other_user}","gists_url":"https://api.github.com/users/dawrut/gists{/gist_id}","starred_url":"https://api.github.com/users/dawrut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dawrut/subscriptions","organizations_url":"https://api.github.com/users/dawrut/orgs","repos_url":"https://api.github.com/users/dawrut/repos","events_url":"https://api.github.com/users/dawrut/events{/privacy}","received_events_url":"https://api.github.com/users/dawrut/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-06-01T19:16:00Z","updated_at":"2015-06-04T09:14:34Z","closed_at":null,"body":"There is an issue when method's argument is bounded to a class type.\r\nAs below, the foo method's parameter is resolved to: java.lang.Number<java.lang.Object>\r\nWhatmore, the type has a resolved constructor, even it is an abstract class.\r\n\r\nFull output:\r\njava.lang.Number&lt;Object&#x3e;\r\njava.lang.Number\r\n\r\nCode snippet to reproduce:\r\n\r\n```java\r\n      public class App {\r\n          public static void main(String[] args) {\r\n              TypeResolver resolver = new TypeResolver();\r\n              ResolvedType resolvedType = resolver.resolve(A.class);\r\n              MemberResolver memberResolver = new MemberResolver(resolver);\r\n              ResolvedTypeWithMembers resolvedTypeWithMembers = memberResolver.resolve(resolvedType, null, null);\r\n\r\n              for (ResolvedMethod method : resolvedTypeWithMembers.getMemberMethods()) {\r\n                  for (int i = 0; i < method.getArgumentCount(); i++) {\r\n                      ResolvedType argumentType = method.getArgumentType(i);\r\n                      System.out.println(argumentType);\r\n                      argumentType.getConstructors().forEach(System.out::println);\r\n                  }\r\n              }\r\n\r\n          }\r\n      }\r\n\r\n      class A<T extends Number> {\r\n          public void foo(T t) {\r\n          }\r\n      }\r\n```"},"comment":{"url":"https://api.github.com/repos/FasterXML/java-classmate/issues/comments/108798044","html_url":"https://github.com/FasterXML/java-classmate/issues/28#issuecomment-108798044","issue_url":"https://api.github.com/repos/FasterXML/java-classmate/issues/28","id":108798044,"user":{"login":"dawrut","id":1149384,"avatar_url":"https://avatars.githubusercontent.com/u/1149384?v=3","gravatar_id":"","url":"https://api.github.com/users/dawrut","html_url":"https://github.com/dawrut","followers_url":"https://api.github.com/users/dawrut/followers","following_url":"https://api.github.com/users/dawrut/following{/other_user}","gists_url":"https://api.github.com/users/dawrut/gists{/gist_id}","starred_url":"https://api.github.com/users/dawrut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dawrut/subscriptions","organizations_url":"https://api.github.com/users/dawrut/orgs","repos_url":"https://api.github.com/users/dawrut/repos","events_url":"https://api.github.com/users/dawrut/events{/privacy}","received_events_url":"https://api.github.com/users/dawrut/received_events","type":"User","site_admin":false},"created_at":"2015-06-04T09:14:34Z","updated_at":"2015-06-04T09:14:34Z","body":"I've dug a bit and I can see that bindings are passed as screenshots states below:\r\n\r\n![screen shot 2015-06-04 at 10 58 37](https://cloud.githubusercontent.com/assets/1149384/7980718/fbbf71ce-0aa9-11e5-8f24-d68ae04d098e.png)\r\n\r\nThe easiest way to fix that is put there a condition which would check the predicate if a raw type has parameterised types - if so, then assign type bindings. I haven't analysed the resolving algorithm to trace the issue, so this fix could be... a workaround? :-(\r\n\r\n![screen shot 2015-06-04 at 11 02 29](https://cloud.githubusercontent.com/assets/1149384/7980719/fce8d46e-0aa9-11e5-991d-9e092c955057.png)\r\n"}}