diff options
Diffstat (limited to 'org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java')
-rw-r--r-- | org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java index 29b31b1349..33967f8407 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter.java @@ -570,6 +570,14 @@ public class SourceTypeConverter extends TypeConverter { type.superInterfaces[i].bits |= ASTNode.IsSuperType; } } + char[][] permittedSubtypeNames = typeInfo.getPermittedSubtypeNames(); + int permittedSubtypeCount = permittedSubtypeNames == null ? 0 : permittedSubtypeNames.length; + if (permittedSubtypeCount > 0) { + type.permittedTypes = new TypeReference[permittedSubtypeCount]; + for (int i = 0; i < permittedSubtypeCount; i++) { + type.permittedTypes[i] = createTypeReference(permittedSubtypeNames[i], start, end, true /* include generics */); + } + } /* convert member types */ if ((this.flags & MEMBER_TYPE) != 0) { SourceType[] sourceMemberTypes = typeInfo.getMemberTypeHandles(); |