< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacTypes.java
Print this page
@@ -91,46 +91,47 @@
return types.isSameType((Type) t1, (Type) t2);
}
@DefinedBy(Api.LANGUAGE_MODEL)
public boolean isSubtype(TypeMirror t1, TypeMirror t2) {
- validateTypeNotIn(t1, EXEC_OR_PKG);
- validateTypeNotIn(t2, EXEC_OR_PKG);
+ validateTypeNotIn(t1, EXEC_OR_PKG_OR_MOD);
+ validateTypeNotIn(t2, EXEC_OR_PKG_OR_MOD);
return types.isSubtype((Type) t1, (Type) t2);
}
@DefinedBy(Api.LANGUAGE_MODEL)
public boolean isAssignable(TypeMirror t1, TypeMirror t2) {
- validateTypeNotIn(t1, EXEC_OR_PKG);
- validateTypeNotIn(t2, EXEC_OR_PKG);
+ validateTypeNotIn(t1, EXEC_OR_PKG_OR_MOD);
+ validateTypeNotIn(t2, EXEC_OR_PKG_OR_MOD);
return types.isAssignable((Type) t1, (Type) t2);
}
@DefinedBy(Api.LANGUAGE_MODEL)
public boolean contains(TypeMirror t1, TypeMirror t2) {
- validateTypeNotIn(t1, EXEC_OR_PKG);
- validateTypeNotIn(t2, EXEC_OR_PKG);
+ validateTypeNotIn(t1, EXEC_OR_PKG_OR_MOD);
+ validateTypeNotIn(t2, EXEC_OR_PKG_OR_MOD);
return types.containsType((Type) t1, (Type) t2);
}
@DefinedBy(Api.LANGUAGE_MODEL)
public boolean isSubsignature(ExecutableType m1, ExecutableType m2) {
return types.isSubSignature((Type) m1, (Type) m2);
}
@DefinedBy(Api.LANGUAGE_MODEL)
public List<Type> directSupertypes(TypeMirror t) {
- validateTypeNotIn(t, EXEC_OR_PKG);
+ validateTypeNotIn(t, EXEC_OR_PKG_OR_MOD);
Type ty = (Type)t;
return types.directSupertypes(ty).stream()
.map(Type::stripMetadataIfNeeded)
.collect(Collectors.toList());
}
@DefinedBy(Api.LANGUAGE_MODEL)
public TypeMirror erasure(TypeMirror t) {
- if (t.getKind() == TypeKind.PACKAGE)
+ TypeKind kind = t.getKind();
+ if (kind == TypeKind.PACKAGE || kind == TypeKind.MODULE)
throw new IllegalArgumentException(t.toString());
return types.erasure((Type)t).stripMetadataIfNeeded();
}
@DefinedBy(Api.LANGUAGE_MODEL)
@@ -148,11 +149,11 @@
return (PrimitiveType)unboxed;
}
@DefinedBy(Api.LANGUAGE_MODEL)
public TypeMirror capture(TypeMirror t) {
- validateTypeNotIn(t, EXEC_OR_PKG);
+ validateTypeNotIn(t, EXEC_OR_PKG_OR_MOD);
return types.capture((Type)t).stripMetadataIfNeeded();
}
@DefinedBy(Api.LANGUAGE_MODEL)
public PrimitiveType getPrimitiveType(TypeKind kind) {
@@ -190,10 +191,11 @@
switch (componentType.getKind()) {
case VOID:
case EXECUTABLE:
case WILDCARD: // heh!
case PACKAGE:
+ case MODULE:
throw new IllegalArgumentException(componentType.toString());
}
return new Type.ArrayType((Type) componentType, syms.arrayClass);
}
@@ -297,12 +299,12 @@
throw new IllegalArgumentException(sym + "@" + site);
return types.memberType(site, sym);
}
- private static final Set<TypeKind> EXEC_OR_PKG =
- EnumSet.of(TypeKind.EXECUTABLE, TypeKind.PACKAGE);
+ private static final Set<TypeKind> EXEC_OR_PKG_OR_MOD =
+ EnumSet.of(TypeKind.EXECUTABLE, TypeKind.PACKAGE, TypeKind.MODULE);
/**
* Throws an IllegalArgumentException if a type's kind is one of a set.
*/
private void validateTypeNotIn(TypeMirror t, Set<TypeKind> invalidKinds) {
< prev index next >