return new IntegralTypeEffectiveStatementImpl<>(ctx,
RestrictedTypes.newUint64Builder((Uint64TypeDefinition) baseType, typeEffectiveSchemaPath(ctx)));
} else if (baseType instanceof UnionTypeDefinition) {
- return new UnionTypeEffectiveStatementImpl(ctx, (UnionTypeDefinition) baseType);
+ return createUnion(ctx, (UnionTypeDefinition) baseType, declared, substatements);
} else {
throw new IllegalStateException("Unhandled base type " + baseType);
}
typeEffectiveSchemaPath(ctx)));
}
+ private static @NonNull TypeEffectiveStatement<TypeStatement> createUnion(final StmtContext<?, ?, ?> ctx,
+ final UnionTypeDefinition baseType, final TypeStatement declared,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ return new TypeEffectiveStatementImpl<>(declared, substatements, RestrictedTypes.newUnionBuilder(baseType,
+ typeEffectiveSchemaPath(ctx)));
+ }
}
\ No newline at end of file