| interface A<T> { |
| def <T, S extends T> T getT(); |
| } |
| ----- |
| Groovy script |
| Interface definition |
| Modifiers |
| <empty list> |
| PsiElement(interface)('interface') |
| PsiWhiteSpace(' ') |
| PsiElement(identifier)('A') |
| Type parameter list |
| PsiElement(<)('<') |
| Type parameter |
| PsiElement(identifier)('T') |
| Type extends bounds list |
| <empty list> |
| PsiElement(>)('>') |
| Extends clause |
| <empty list> |
| PsiWhiteSpace(' ') |
| Type definition body |
| PsiElement({)('{') |
| PsiWhiteSpace('\n') |
| Method |
| Modifiers |
| PsiElement(def)('def') |
| PsiWhiteSpace(' ') |
| Type parameter list |
| PsiElement(<)('<') |
| Type parameter |
| PsiElement(identifier)('T') |
| Type extends bounds list |
| <empty list> |
| PsiElement(,)(',') |
| PsiWhiteSpace(' ') |
| Type parameter |
| PsiElement(identifier)('S') |
| PsiWhiteSpace(' ') |
| Type extends bounds list |
| PsiElement(extends)('extends') |
| PsiWhiteSpace(' ') |
| Reference element |
| PsiElement(identifier)('T') |
| PsiElement(>)('>') |
| PsiWhiteSpace(' ') |
| Type element |
| Reference element |
| PsiElement(identifier)('T') |
| PsiWhiteSpace(' ') |
| PsiElement(identifier)('getT') |
| PsiElement(()('(') |
| Parameter list |
| <empty list> |
| PsiElement())(')') |
| Throw clause |
| <empty list> |
| PsiElement(;)(';') |
| PsiElement(new line)('\n') |
| PsiElement(})('}') |