mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-07-26 06:38:42 +00:00
6645f412ae
x/tools go/ssa names instantiations using the type argument's String(). Function-local aliases like `type F = float64` therefore collide when two callers use distinct aliases named F (Go 1.27's internal/strconv.ftoa32 and ftoa64 do exactly this). Extend localTypeArgsSuffix to detect local aliases and include their declaration position, so the float32 and float64 instantiations get distinct LLVM symbols. Fixes wrong float formatting in strconv/math on Go 1.27, and adds a regression test to testdata/localtypes.go. Signed-off-by: deadprogram <ron@hybridgroup.com>
52 lines
2.1 KiB
Plaintext
52 lines
2.1 KiB
Plaintext
ok: issue5180 TestCopy1
|
|
ok: issue5180 TestCopyIgnoreNilMembers
|
|
ok: siblingA.Foo accepts own
|
|
ok: siblingB.Foo accepts own
|
|
ok: siblingA.Foo rejects siblingB.Foo
|
|
ok: siblingB.Foo rejects siblingA.Foo
|
|
ok: nestedScopes.Bar#1 accepts own
|
|
ok: nestedScopes.Bar#2 accepts own
|
|
ok: nestedScopes.Bar#3 accepts own
|
|
ok: nestedScopes.Bar#1 rejects #2
|
|
ok: nestedScopes.Bar#2 rejects #3
|
|
ok: nestedScopes.Bar#1 rejects #3
|
|
ok: genericWithLocals[int].UsesT accepts own
|
|
ok: genericWithLocals[int].NoT accepts own
|
|
ok: genericWithLocals[string].UsesT accepts own
|
|
ok: genericWithLocals[string].NoT accepts own
|
|
ok: genericWithLocals[int].UsesT rejects [string].UsesT
|
|
ok: genericWithLocals[int].NoT rejects [string].NoT
|
|
ok: genericWithLocals[string].UsesT rejects [int].UsesT
|
|
ok: genericWithLocals[string].NoT rejects [int].NoT
|
|
ok: genericWithLocals[int].UsesT matches across calls
|
|
ok: genericWithLocals[int].NoT matches across calls
|
|
ok: siblingClosures.C#1 accepts own
|
|
ok: siblingClosures.C#2 accepts own
|
|
ok: siblingClosures.C#1 rejects C#2
|
|
ok: siblingClosures.C#2 rejects C#1
|
|
ok: closureInGenericUsesT[int].X accepts own
|
|
ok: closureInGenericUsesT[string].X accepts own
|
|
ok: closureInGenericUsesT[int].X rejects [string].X
|
|
ok: closureInGenericUsesT[string].X rejects [int].X
|
|
ok: closureInGenericNoT[int].X accepts own
|
|
ok: closureInGenericNoT[string].X accepts own
|
|
ok: closureInGenericNoT[int].X rejects [string].X
|
|
ok: closureInGenericNoT[string].X rejects [int].X
|
|
ok: siblingClosuresInGeneric[int].C#1 accepts own
|
|
ok: siblingClosuresInGeneric[int].C#2 accepts own
|
|
ok: siblingClosuresInGeneric[int].C#1 rejects C#2
|
|
ok: siblingClosuresInGeneric[int].C#1 rejects [string].C#1
|
|
ok: siblingClosuresInGeneric[string].C#1 rejects [int].C#1
|
|
ok: doublyNestedInGeneric[int].Y accepts own
|
|
ok: doublyNestedInGeneric[string].Y accepts own
|
|
ok: doublyNestedInGeneric[int].Y rejects [string].Y
|
|
ok: doublyNestedInGeneric[string].Y rejects [int].Y
|
|
issue4931A labels: 0
|
|
issue4931B labels: 0
|
|
issue4931PairA labels: 0
|
|
issue4931PairB labels: 0
|
|
issue4931MethodA labels: 0
|
|
issue4931MethodB labels: 0
|
|
ok: aliasSize[float32]==32
|
|
ok: aliasSize[float64]==64
|