-
Notifications
You must be signed in to change notification settings - Fork 1
Diagnostics pt BR
Todo erro e aviso de build que o eqc pode imprimir, com o que significa e o que fazer. Os códigos são estáveis: são por eles que você busca, e são eles que uma supressão nomeia.
Esta página vem da mesma referência que o repositório confere: docs/DIAGNOSTICS.md, mantida
contra o compilador por DiagnosticsDocumentedTests. Um código que o compilador levanta e não tem
linha aqui quebra a build, assim como uma linha que nomeia um código que não existe mais — e assim
também um código que ganha um novo ponto de emissão, o que não é regra de estilo: o EQ2101 já
foi dois erros sem relação (um template resx divergente e System.IO num componente cliente),
cada um fixado pelo seu próprio teste verde, porque os dois nunca se encontravam numa mesma
compilação.
Os diagnósticos saem no formato canônico do MSBuild, então a IDE e o dotnet build linkam ambos:
Pages/Counter.cs(14,9): error EQ2002: C# 'goto' cannot be transpiled to JavaScript …
O próprio processo eqc, antes ou em volta de uma compilação.
| Código | Significado | O que fazer |
|---|---|---|
EQ0000 |
Um erro de compilação chegou sem código próprio. | Leia a mensagem — o que falta é o código, não o diagnóstico. |
EQ0001 |
O eqc quebrou. | É bug do compilador. A mensagem traz a exceção; reporte com o fonte que a provocou. |
EQ0002 |
A lista de referências do MSBuild está vazia, então o modelo semântico viria de uma compilação incompleta e argumentos nomeados poderiam sair na ordem errada. | Reconstrua (dotnet build). Se persistir, o alvo CompileEQuanticUI rodou sem FindReferenceAssembliesForReferences. |
Uma lacuna do compilador, não do seu código. O construto é C# legal e poderia ser traduzido; hoje nada o faz. São os códigos que encolhem conforme o compilador cresce.
| Código | Significado | O que fazer |
|---|---|---|
EQ1001 |
Um tipo de expressão C# sem estratégia de transpilação. | Reescreva numa forma transpilável, ou adicione uma estratégia de conversão para o construto. |
EQ1002 |
Um tipo de statement C# sem estratégia. | Idem. |
EQ1003 |
Um nó C# (nem expressão nem statement) sem estratégia. | Idem. |
EQ1004 |
Uma estratégia casou com o construto, mas esta forma exata não tem emissão — a tradução sairia silenciosamente errada, então ela para. | Reescreva a forma, ou adicione o caso que falta à estratégia. |
EQ1005 |
Dois tipos dividem o mesmo nome de arquivo do twin — o mesmo nome duas vezes, ou dois nomes que diferem só em maiúsculas (um arquivo só no Windows e no macOS). Os twins seriam UM arquivo e o segundo sobrescreveria o primeiro. | Renomeie um dos tipos. |
EQ1006 |
(aviso) Um tipo está declarado em mais de um lugar e o eqc emite um módulo por declaração, então o twin fica só com os membros da primeira. | Junte numa declaração só, ou mantenha juntos os membros que um componente usa. Inofensivo quando as outras metades são server-only, e é por isso que não para a build. |
Não é lacuna: não há equivalente no browser, ou a tradução teria de ser um palpite. Estes não encolhem com trabalho no compilador — são o formato do alvo.
| Código | Significado | O que fazer |
|---|---|---|
EQ2001 |
Um construto C# sem equivalente em runtime no browser (intrínsecos de typed reference: __makeref, __reftype, __refvalue, stackalloc, ponteiros). |
Reestruture sem ele. |
EQ2002 |
goto. |
Reestruture com laços e condicionais, ou um break/continue rotulado (esses TRADUZEM). |
EQ2003 |
new T() sobre parâmetro de tipo — argumentos genéricos são apagados em runtime no JavaScript, então o tipo concreto é desconhecido. |
Passe uma fábrica (Func<T>) ou o valor já construído. |
EQ2004 |
Um método de extensão cuja classe declarante não faz parte desta compilação, então nada o emite. | Use um membro de instância, ou traga o fonte declarante para a compilação. |
EQ2005 |
Um iterador infinito. Iteradores são MATERIALIZADOS num array, então o laço rodaria para sempre em vez de render preguiçosamente. | Dê um fim ao laço (um limite, um yield break), ou consuma o que precisa dentro do método. |
EQ2006 |
O membro não vincula no modelo semântico, então qualquer tradução seria palpite. | Ou o código não compila, ou faltam referências / fontes gerados ao eqc. Nunca é adivinhado — veja Compilador. |
EQ2007 |
Um argumento with(…) de collection expression além da dica de capacidade — um array ou Set de JS não recebe comparador no construtor. |
Remova o argumento, ou construa a coleção explicitamente. |
EQ2008 |
Query syntax com join, let, um segundo from ou into — a tradução em C# passa por identificadores transparentes gerados pelo compilador. Também as formas cercadas de inicializador. |
Reescreva em method syntax, onde todo operador é suportado. |
EQ2009 |
Um componente declarado mais de uma vez num arquivo (declarações parciais). O eqc emite um módulo por declaração e não sabe fundi-las. | Junte os membros numa declaração só. |
O contrato de localização, conferido na máquina de build em vez de quando um visitante chega.
| Código | Significado | O que fazer |
|---|---|---|
EQ2100 |
Sobre esta chamada: o template precisa ser um composite format válido cujos especificadores estejam dentro do subconjunto suportado, e a chamada precisa passar todos os buracos declarados. | Corrija a contagem de argumentos, ou tire o especificador fora do subconjunto (alinhamento como {0,10} está fora do v1). |
EQ2101 |
Sobre as traduções: o resx de cada cultura é conferido contra o neutro, que é o contrato de aridade. | Corrija o template da cultura — um {n} a mais ou a menos quebra a build, não a página. |
Um componente cliente buscou uma API que só existe num servidor. A ponte é [ServerAction].
| Código | Significado |
|---|---|
EQ2102 |
Acesso direto a banco (Microsoft.EntityFrameworkCore, System.Data). |
EQ2103 |
Rede (System.Net.Http, System.Net.Sockets). |
EQ2104 |
Threading e locking do SO (Thread, Monitor, Mutex, Semaphore — não Task). |
EQ2105 |
Criação de processos (System.Diagnostics.Process). |
EQ2106 |
Interop nativo / P-Invoke (System.Runtime.InteropServices). |
EQ2107 |
Geração de IL em runtime (System.Reflection.Emit). |
EQ2112 |
Acesso ao sistema de arquivos (System.IO). |
O EQ2112 fica separado da família de propósito: System.IO era reportado como EQ2101 até esse
código se revelar pertencente à checagem de resx acima, que a wiki já publicava. Não é um deslize
de numeração para arrumar de volta.
O construto traduz, mas seria LIDO de forma diferente no servidor e no browser. Em vez de escolher por você, o eqc pergunta.
| Código | Significado | O que fazer |
|---|---|---|
EQ2108 |
Um CultureInfo que não é InvariantCulture nem CurrentCulture — só esses dois atravessam. |
Formate com especificador explícito (ToString("N2") segue a cultura da app nos dois alvos), ou converta com a cultura invariante. |
EQ2109 |
ToString(CultureInfo.CurrentCulture) sem especificador — o formato geral está fora do subconjunto de Intl testado. |
Nomeie o formato: ToString("N2"), ToString("F1"). |
EQ2110 |
Um número fracionário convertido sem cultura nenhuma: o C# segue a cultura da request (vírgula, em pt) e o JavaScript é sempre invariante. |
Diga qual você quer. |
EQ2111 |
GetService sem argumento de tipo para atravessar — o registro é chaveado pelo NOME da interface, e aqui não há nada para chavear. |
Chame a sobrecarga genérica. |
EQ2113 |
O ConfigureAwait é descartado — só existe um contexto onde retomar — e descartá-lo jogaria fora um argumento NÃO-CONSTANTE sem avaliá-lo. |
Passe uma constante, ou avalie a expressão numa variável local antes. |
| Código | Significado |
|---|---|
EQ3001 |
Uma app Photon sem programa. |
EQ3002 |
Uma app Photon com mais de um programa. |
EQ3003 |
A razão de uma capacidade precisa ser constante. |
A superfície de factories gerada e os modelos de formulário.
| Código | Significado |
|---|---|
EQ3101 |
Um componente elege mais de um construtor de factory ([UiFactory]). |
EQ3102 |
Dois componentes dividem o mesmo nome. |
EQ3103 |
Uma propriedade de form model tem tipo que nenhuma caixa de texto comporta. |
EQ3104 |
Um atributo de validação sem regra em que virar. |
EQ3105 |
Um [Compare] nomeia uma propriedade que este formulário não tem. |
🌐 English · Português
🏁 Comece aqui
📱 Write-once
- Componentes write-once
- Superfície declarativa
- Motor Photon
- Design System
- Capacidades
- Armazenamento
- Formulários
- Editor de código
- Markdown
- Mermaid
- Renderização de Email
🏗️ Arquitetura
⚙️ Compilação
- Compilador
- Avaliação em tempo de compilação
- Recursos C# suportados
- Resolução de tipos externos
- Fluxo de build
- Diagnósticos
⚡ Runtime
🔌 Servidor
🎨 Ecossistema
🚀 Desenvolvimento