B-Lang-org/bsc

Suggest missing 'valueOf' in error message

Aberta

#276 aberto em 8 de nov. de 2020

 (0 comentário) (0 reação) (0 responsável)Haskell (178 forks)batch import
error-messagesgood first issue

Métricas do repositório

Stars
 (1.108 estrelas)
Métricas de merge de PR
 (Mesclagem média 17d 1h) (18 fundiu PRs em 30d)

Description

If valueOf is left out of this code:

typedef 32 DataWidth;

function Bit#(DataWidth) fn (Bit#(DataWidth) x);
  //if (valueOf(DataWidth) == 64)
  if (DataWidth == 64)
    return 8;
  else
    return 4;
endfunction

then BSC, noticing that the name DataWidth is capital, looks for a constructor by that name and doesn't find one, so it reports an error about an unbound constructor name:

Error: "Test.bsv", line 5, column 7: (T0003)
  Unbound constructor `DataWidth'

It should be easy for BSC, in this case, to look for the name in the type domain and, if it's found, add a message that this name is a type and maybe a pseudo-function like valueOf is missing.

Guia do colaborador