Fix handling of +/-inf defaults in TS/rust/go/dart codegen (#7588)

+/-inf were not being handled, and so invalid typescript was being
generated when a float/double had an infinite default value. NaN was
being handled correctly.

Co-authored-by: Derek Bailey <derekbailey@google.com>
Co-authored-by: Casper <casperneo@uchicago.edu>
This commit is contained in:
James Kuszmaul
2022-11-08 10:59:46 -08:00
committed by GitHub
parent 001adf782d
commit 8aa8b9139e
41 changed files with 8217 additions and 4647 deletions

View File

@@ -1152,8 +1152,48 @@ longEnumNormalDefault():bigint {
return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('2');
}
nanDefault():number {
const offset = this.bb!.__offset(this.bb_pos, 112);
return offset ? this.bb!.readFloat32(this.bb_pos + offset) : NaN;
}
infDefault():number {
const offset = this.bb!.__offset(this.bb_pos, 114);
return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
}
positiveInfDefault():number {
const offset = this.bb!.__offset(this.bb_pos, 116);
return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
}
infinityDefault():number {
const offset = this.bb!.__offset(this.bb_pos, 118);
return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
}
positiveInfinityDefault():number {
const offset = this.bb!.__offset(this.bb_pos, 120);
return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity;
}
negativeInfDefault():number {
const offset = this.bb!.__offset(this.bb_pos, 122);
return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity;
}
negativeInfinityDefault():number {
const offset = this.bb!.__offset(this.bb_pos, 124);
return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity;
}
doubleInfDefault():number {
const offset = this.bb!.__offset(this.bb_pos, 126);
return offset ? this.bb!.readFloat64(this.bb_pos + offset) : Infinity;
}
static startMonster(builder:flatbuffers.Builder) {
builder.startObject(54);
builder.startObject(62);
}
static addPos(builder:flatbuffers.Builder, posOffset:flatbuffers.Offset) {
@@ -1589,6 +1629,38 @@ static addLongEnumNormalDefault(builder:flatbuffers.Builder, longEnumNormalDefau
builder.addFieldInt64(53, longEnumNormalDefault, BigInt('2'));
}
static addNanDefault(builder:flatbuffers.Builder, nanDefault:number) {
builder.addFieldFloat32(54, nanDefault, NaN);
}
static addInfDefault(builder:flatbuffers.Builder, infDefault:number) {
builder.addFieldFloat32(55, infDefault, Infinity);
}
static addPositiveInfDefault(builder:flatbuffers.Builder, positiveInfDefault:number) {
builder.addFieldFloat32(56, positiveInfDefault, Infinity);
}
static addInfinityDefault(builder:flatbuffers.Builder, infinityDefault:number) {
builder.addFieldFloat32(57, infinityDefault, Infinity);
}
static addPositiveInfinityDefault(builder:flatbuffers.Builder, positiveInfinityDefault:number) {
builder.addFieldFloat32(58, positiveInfinityDefault, Infinity);
}
static addNegativeInfDefault(builder:flatbuffers.Builder, negativeInfDefault:number) {
builder.addFieldFloat32(59, negativeInfDefault, -Infinity);
}
static addNegativeInfinityDefault(builder:flatbuffers.Builder, negativeInfinityDefault:number) {
builder.addFieldFloat32(60, negativeInfinityDefault, -Infinity);
}
static addDoubleInfDefault(builder:flatbuffers.Builder, doubleInfDefault:number) {
builder.addFieldFloat64(61, doubleInfDefault, Infinity);
}
static endMonster(builder:flatbuffers.Builder):flatbuffers.Offset {
const offset = builder.endObject();
builder.requiredField(offset, 10) // name