Skip to content

Commit e1b2d49

Browse files
committed
Enforce rawType to be a Class in ParameterizedTypeImpl
Enforce rawType to be a Class in ParameterizedTypeImpl
1 parent 7e98ebd commit e1b2d49

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

gson/src/main/java/com/google/gson/internal/$Gson$Types.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public final class $Gson$Types {
5757
* @return a {@link java.io.Serializable serializable} parameterized type.
5858
*/
5959
public static ParameterizedType newParameterizedTypeWithOwner(
60-
Type ownerType, Type rawType, Type... typeArguments) {
60+
Type ownerType, Class<?> rawType, Type... typeArguments) {
6161
return new ParameterizedTypeImpl(ownerType, rawType, typeArguments);
6262
}
6363

@@ -112,7 +112,7 @@ public static Type canonicalize(Type type) {
112112
} else if (type instanceof ParameterizedType) {
113113
ParameterizedType p = (ParameterizedType) type;
114114
return new ParameterizedTypeImpl(
115-
p.getOwnerType(), p.getRawType(), p.getActualTypeArguments());
115+
p.getOwnerType(), (Class<?>) p.getRawType(), p.getActualTypeArguments());
116116

117117
} else if (type instanceof GenericArrayType) {
118118
GenericArrayType g = (GenericArrayType) type;
@@ -411,7 +411,8 @@ private static Type resolve(
411411

412412
toResolve =
413413
ownerChanged || argsChanged
414-
? newParameterizedTypeWithOwner(newOwnerType, original.getRawType(), args)
414+
? newParameterizedTypeWithOwner(
415+
newOwnerType, (Class<?>) original.getRawType(), args)
415416
: original;
416417
break;
417418

@@ -519,7 +520,7 @@ private static final class ParameterizedTypeImpl implements ParameterizedType, S
519520
@SuppressWarnings("serial")
520521
private final Type[] typeArguments;
521522

522-
public ParameterizedTypeImpl(Type ownerType, Type rawType, Type... typeArguments) {
523+
public ParameterizedTypeImpl(Type ownerType, Class<?> rawType, Type... typeArguments) {
523524
// TODO: Should this enforce that rawType is a Class? See JDK implementation of
524525
// the ParameterizedType interface and https://bugs.openjdk.org/browse/JDK-8250659
525526
requireNonNull(rawType);

gson/src/main/java/com/google/gson/reflect/TypeToken.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,8 @@ public static TypeToken<?> getParameterized(Type rawType, Type... typeArguments)
440440
}
441441
}
442442

443-
return new TypeToken<>($Gson$Types.newParameterizedTypeWithOwner(null, rawType, typeArguments));
443+
return new TypeToken<>(
444+
$Gson$Types.newParameterizedTypeWithOwner(null, rawClass, typeArguments));
444445
}
445446

446447
/**

0 commit comments

Comments
 (0)