compiler: fix difference in aliases in interface methods

There used to be a difference between `byte` and `uint8` in interface
methods. These are aliases, so they should be treated the same.
This patch introduces a custom serialization format for types,
circumventing the `Type.String()` method that is slightly wrong for our
purposes.

This also fixes an issue with the `any` keyword in Go 1.18, which
suffers from the same problem (but this time actually leads to a crash).
This commit is contained in:
Ayke van Laethem
2022-04-06 21:22:04 +02:00
committed by Ron Evans
parent 7af24c7864
commit c0d257d682
5 changed files with 110 additions and 64 deletions
+1
View File
@@ -20,6 +20,7 @@ Stringer.String(): foo
Stringer.(*Thing).String(): foo
s has String() method: foo
nested switch: true
Byte(): 3
non-blocking call on sometimes-blocking interface
slept 1ms
slept 1ms