Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-8609

Fails to compile when upper bound has generics

    Details

      Description

      Fails to compile the following code:

      @groovy.transform.CompileStatic
      public class A<T extends List<E>, E extends Map<String, Integer>> {
          E getFirstRecord(T recordList) {
              return recordList.get(0);
          }
      }
      

      Error messages:

      BUG! exception in phase 'instruction selection' in source unit 'ConsoleScript0' Expected earlier checking to detect generics parameter arity mismatch
      Expected: java.util.Map<K,V> 
      Supplied: java.util.Map<E> 
      
      	at org.codehaus.groovy.ast.tools.GenericsUtils.extractPlaceholders(GenericsUtils.java:169)
      
      	at org.codehaus.groovy.ast.tools.GenericsUtils.extractPlaceholders(GenericsUtils.java:142)
      
      	at org.codehaus.groovy.ast.GenericsType$GenericsTypeMatcher.compareGenericsWithBound(GenericsType.java:375)
      
      	at org.codehaus.groovy.ast.GenericsType$GenericsTypeMatcher.checkGenerics(GenericsType.java:307)
      
      	at org.codehaus.groovy.ast.GenericsType$GenericsTypeMatcher.matches(GenericsType.java:276)
      
      	at org.codehaus.groovy.ast.GenericsType.isCompatibleWith(GenericsType.java:198)
      
      	at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkTypeGenerics(StaticTypeCheckingVisitor.java:1174)
      
      	at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkReturnType(StaticTypeCheckingVisitor.java:2076)
      
      	at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor$1.returnStatementAdded(StaticTypeCheckingVisitor.java:309)
      
      	at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitReturnStatement(StaticTypeCheckingVisitor.java:2026)
      
      	at org.codehaus.groovy.ast.stmt.ReturnStatement.visit(ReturnStatement.java:49)
      
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                daniel_sun Daniel Sun
                Reporter:
                daniel_sun Daniel Sun
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: