compiler: disallow named types redeclaration via contract config

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
This commit is contained in:
Anna Shaleva 2023-05-29 18:50:36 +03:00
parent 865bd6c9cc
commit 44dfe8342d
4 changed files with 34 additions and 1 deletions

View file

@ -340,7 +340,9 @@ func CompileAndSave(src string, o *Options) ([]byte, error) {
cfg.NamedTypes = di.NamedTypes
}
for name, et := range o.DeclaredNamedTypes {
// TODO: handle name conflict (it can happen due to invalid user input e.g.)
if _, ok := cfg.NamedTypes[name]; ok {
return nil, fmt.Errorf("configured declared named type intersects with the contract's one: `%s`", name)
}
cfg.NamedTypes[name] = et
}
for _, e := range o.ContractEvents {