| English | Português (Brasil) |
Diagnósticos do sistema de tipos utilizam o intervalo E4000-E4999.
Gatilho:
Counter: word;
Saída esperada do compilador:
E4001 demo.nsp:1:10
Unknown type: word.
nes_color, byte, boolean, sprite ou metasprite.nes_colornes_color são limitados ao intervalo de paleta do NES
$00..$3F em declarações, atribuições e em todas as APIs de paleta.Gatilho:
BackgroundColor := $80;
Saída esperada do compilador:
E4002 demo.nsp:1:20
Value $80 is not valid for type nes_color.
Allowed range: $00..$3F.
$00 até $3F.bytebyte ocupa um byte e não pode representar valores acima de $FF.Gatilho:
Counter := $100;
Saída esperada do compilador:
E4003 demo.nsp:1:12
Value $100 is not valid for type byte.
Allowed range: $00..$FF.
$00 até $FF.byte. Operandos de comparação
devem seguir as regras de tipos do operador de comparação, e operadores booleanos
exigem operandos boolean. Alvos e quantidades de incremento/decremento, além de variáveis
de controle e limites de for, devem ter o tipo byte. Argumentos de procedimentos
devem corresponder exatamente aos tipos de parâmetros byte ou boolean correspondentes.Gatilho:
Counter := Active;
Saída esperada do compilador:
E4004 demo.nsp:1:12
Cannot assign a value of type boolean to variable Counter of type byte.
The source and target types must match.
true ou false para um literal booleano e use aritmética apenas com valores
de byte. Compare tipos correspondentes e use not, and e or apenas com valores boolean.byte e boolean. Embora nes_color, sprite e metasprite continuem tipos globais
válidos, eles ainda não podem ser usados para um parâmetro.Gatilho:
procedure SetColor(Color: nes_color);
begin
end;
Saída esperada do compilador:
E4005 demo.nsp:1:27
Type nes_color is not supported for procedure parameters.
byte ou boolean, ou
mantenha um valor nes_color no estado global.byte em tempo de compilação. Valores booleanos não podem selecionar uma porta ou botão.nes.controller_down(true, nes.button_a) ou um argumento booleano de botão.E4006 identifica o argumento e seu tipo real.$01 ou $02 como controle e exatamente uma constante
nes.button_* como botão.byte em tempo de compilação,
enquanto argumentos de cor exigem nes_color. Nenhuma conversão implícita é realizada.byte como cor de paleta.E4007 identifica o argumento, tipo real e tipo exigido.byte para índices e um valor nes_color
atribuído para cores.spritesprite é um índice de OAM de hardware fortemente tipado e deve
selecionar uma das 64 entradas do NES.tests/fixtures/diagnostics/invalid_sprite_value.nsp, ou declarar
ou atribuir um valor sprite acima de $3F.E4008 identifica o literal inválido e o intervalo
suportado $00..$3F.$00 até $3F.metaspritemetasprite é uma identidade de instância estática opaca. Um
número hexadecimal não é uma instância de metasprite ou quadro simbólico.tests/fixtures/diagnostics/invalid_metasprite_value.nsp, que
atribui um literal hexadecimal a uma variável metasprite.E4009 rejeita o literal sem convertê-lo para uma
identidade de instância.nes.metasprite_create(imported.frame) à variável.byte, boolean ou um record declarado
como tipo de elemento.array[$00..$03] of nes_color.byte, boolean ou um record declarado como tipo
do elemento.byte.boolean.byte.Values[$08] quando Values foi declarado como
array[$00..$07] of byte.Counter[$00] := $01 ou Counter := Values.$00 e superior não maior que $FF.array[$01..$04] of byte.array[$00..$03] of byte.GameState = (Title, Playing, Title).State < Playing para uma variável enum.= ou <>, ou modele uma ordenação necessária com
byte.Missing a uma variável GameState.tests/fixtures/diagnostics/duplicate_record_field.nsp.tests/fixtures/diagnostics/unknown_record_field.nsp.tests/fixtures/diagnostics/field_access_on_non_record.nsp.byte, boolean
e tipos de enumeração declarados. Arrays e records aninhados não são campos
nesta milestone.tests/fixtures/diagnostics/unsupported_record_field_type.nsp.tests/fixtures/diagnostics/recursive_record_definition.nsp.$FF e sofrer truncamento no endereçamento indexado do 6502.tests/fixtures/diagnostics/invalid_record_usage.nsp.byte ou boolean; arrays, records, enums e handles específicos do NES não são retornos suportados.tests/fixtures/diagnostics/unsupported_function_return_type.nsp.byte ou boolean e mantenha agregados ou estado de hardware em variáveis declaradas explicitamente.