Я недавно перевёл свой модуль для математики в нормальный вид, то есть с разделом описания и реализации и заметил что в разделе реализации её показывает 2 раза:
Очень вероятно что только у меня так глючит, так что проверьте кто то у себя.
Я недавно перевёл свой модуль для математики в нормальный вид, то есть с разделом описания и реализации и заметил что в разделе реализации её показывает 2 раза:
Очень вероятно что только у меня так глючит, так что проверьте кто то у себя.
() : Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.FormatException: Слишком много байт в типе, который должен быть в 7-разрядной кодировке Int32.
в System.IO.BinaryReader.Read7BitEncodedInt()
в System.IO.BinaryReader.ReadString()
в PascalABCCompiler.PCU.PCUReader.ReadGenericParams(common_namespace_node cur_nn)
в PascalABCCompiler.PCU.PCUReader.ReadGenericFunctionInformation(common_function_node func)
в PascalABCCompiler.PCU.PCUReader.CreateInterfaceNamespaceFunction(String name, Int32 offset)
в PascalABCCompiler.PCU.PCUReader.CreateInterfaceInClassMember(Int32 offset, String name)
в PascalABCCompiler.TreeRealization.BasePCUReader.RestoreSymbols(SymbolInfo si, wrapped_definition_node wdn, String name)
в PascalABCCompiler.TreeRealization.BasePCUReader.RestoreSymbols(SymbolInfoList sil, String name, Int32 index)
в SymbolTable.ClassScope.FindOnlyInType(String name, Scope CurrentScope)
в PascalABCCompiler.PCU.wrapped_common_type_node.find_in_type(String name, Scope CurrentScope, Boolean no_search_in_extension_methods)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.find_operator(String name, expression_node left, expression_node right, location loc, Boolean no_search_in_extension_methods)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(bin_expr _bin_expr)
в PascalABCCompiler.TreeConverter.returner.visit(expression expr)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(bin_expr _bin_expr)
в PascalABCCompiler.TreeConverter.returner.visit(expression expr)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(var_def_statement _var_def_statement)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(var_statement node)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(statement_list _statement_list)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit_program_code(statement_list program_code)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(block _block)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit_class_member_realizations(class_body_list _class_body)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(class_body_list _class_body)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(class_definition _class_definition)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(type_declaration _type_declaration)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(type_declarations _type_declarations)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(declarations _subprogram_definitions)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(interface_node _interface_node)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(unit_module _unit_module)
в PascalABCCompiler.TreeConverter.SyntaxTreeToSemanticTreeConverter.CompileInterface(compilation_unit SyntaxUnit, unit_node_list UsedUnits, List`1 ErrorsList, List`1 WarningsList, SyntaxError parser_error, Hashtable bad_nodes, using_namespace_list namespaces, Dictionary`2 docs, Boolean debug, Boolean debugging)
в PascalABCCompiler.Compiler.CompileUnit(unit_node_list Units, unit_or_namespace SyntaxUsesUnit)
в PascalABCCompiler.Compiler.Compile()'
У меня несколько имён были изменены или удалены, но вместо того чтоб показывать где неизвестное имя оно выдавало внутреннюю ошибку компилятора, при этом если удалить все psu
то покажет 1 место где не хватает имени и при следующей компиляции снова сломается. Вот исходники (40,3 КБ).
P.S. После того как исправил все от имена компилятор продолжил вылетать из за:
() : Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.OutOfMemoryException: Выдано исключение типа "System.OutOfMemoryException".
в System.Text.StringBuilder..ctor(String value, Int32 startIndex, Int32 length, Int32 capacity)
в System.Text.StringBuilderCache.Acquire(Int32 capacity)
в System.IO.BinaryReader.ReadString()
в PascalABCCompiler.PCU.PCUReader.ReadGenericParams(common_namespace_node cur_nn)
в PascalABCCompiler.PCU.PCUReader.ReadGenericFunctionInformation(common_function_node func)
в PascalABCCompiler.PCU.PCUReader.CreateInterfaceNamespaceFunction(String name, Int32 offset)
в PascalABCCompiler.PCU.PCUReader.CreateInterfaceInClassMember(Int32 offset, String name)
в PascalABCCompiler.TreeRealization.BasePCUReader.RestoreSymbols(SymbolInfo si, wrapped_definition_node wdn, String name)
в PascalABCCompiler.TreeRealization.BasePCUReader.RestoreSymbols(SymbolInfoList sil, String name, Int32 index)
в SymbolTable.ClassScope.FindOnlyInType(String name, Scope CurrentScope)
в PascalABCCompiler.PCU.wrapped_common_type_node.find_in_type(String name, Scope CurrentScope, Boolean no_search_in_extension_methods)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.find_operator(String name, expression_node left, expression_node right, location loc, Boolean no_search_in_extension_methods)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(bin_expr _bin_expr)
в PascalABCCompiler.TreeConverter.returner.visit(expression expr)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(bin_expr _bin_expr)
в PascalABCCompiler.TreeConverter.returner.visit(expression expr)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(var_def_statement _var_def_statement)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(var_statement node)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(statement_list _statement_list)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit_program_code(statement_list program_code)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(block _block)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit_class_member_realizations(class_body_list _class_body)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(class_body_list _class_body)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(class_definition _class_definition)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(type_declaration _type_declaration)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(type_declarations _type_declarations)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(declarations _subprogram_definitions)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(interface_node _interface_node)
в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(unit_module _unit_module)
в PascalABCCompiler.TreeConverter.SyntaxTreeToSemanticTreeConverter.CompileInterface(compilation_unit SyntaxUnit, unit_node_list UsedUnits, List`1 ErrorsList, List`1 WarningsList, SyntaxError parser_error, Hashtable bad_nodes, using_namespace_list namespaces, Dictionary`2 docs, Boolean debug, Boolean debugging)
в PascalABCCompiler.Compiler.CompileUnit(unit_node_list Units, unit_or_namespace SyntaxUsesUnit)
в PascalABCCompiler.Compiler.CompileUnit(unit_node_list Units, unit_or_namespace SyntaxUsesUnit)
в PascalABCCompiler.Compiler.Compile()'
И опять же помогает удаление всех psu
файлов… Есть какое то временное решение?
P.P.S временным решением оказалось удалять 1 из файлов psu
и компилировать дальше только находясь на файле основной программы, а если попробовать откомпилировать от модуля(после пкм на основном файле и сделать активным) то снова вылазит эта ошибка и надо удалять psu
.
Столкнулся с такой проблемой: при объявлении перечисления (enum), его имена становятся глобальными константами, то есть использовать эти имена больше нигде нельзя. Вот пример перечисления из моей библиотеки цветовых пространств:
Type ColorSpace=(RGB, LAB, XYZ, CMYK);
В С++ так же, если не использовать enum class
это атавизмы из древности. придется терпеть.
баг пофиксили. обновление будет на неделе. временное решение: {$savepcu false}
нет.
А исправить это никак нельзя?
Долго не исправляете, дайте какое то временное решение пожалуйста.
System.InvalidOperationException: cannot perform Undo/Redo while undo group is open
в ICSharpCode.TextEditor.Undo.UndoStack.Undo()
в ICSharpCode.TextEditor.TextEditorControl.Undo()
в VisualPascalABC.Form1.ExecUndo()
в System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
в System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
в System.Windows.Forms.ToolStripMenuItem.ProcessCmdKey(Message& m, Keys keyData)
в System.Windows.Forms.ToolStripManager.ProcessShortcut(Message& m, Keys shortcut)
в System.Windows.Forms.Form.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.ContainerControl.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Form.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.ContainerControl.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
в System.Windows.Forms.Control.PreProcessMessage(Message& msg)
в System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
в System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
После этого страница файла полностью сломалась, курсора нет, редактировать ничего не даёт.
Это известная ошибка редактора - сделать ничего не можем, иногда возникает
Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.Exception: Invalid constant value in IClassConstantDefinitionNode'
Начало возникать после добавления класса TSeg
в модуле RData
. Я попробовал убрать - без него снова работает нормально.
GA.rar (54,9 КБ)
И желательно ещё временное решение подкинуть…
Нет, так не годится. Пожалуйста, пример из одного или двух файлов
type
t1 = class
private const c1 = 0;
public procedure p1;
begin
var p: procedure := ()->begin writeln(c1) end;
end;
end;
begin end.
test.pas(8) : В данной версии компилятора не поддерживается замыкание данного типа символов
А когда будет? И есть ли где то список всех ваших заглушек, я сомневаюсь что можно удержать их все в голове…
begin
var b:byte := 137;
writeln(b shl 7 shr 7);
end.
Выписывает 137 а не 1, потому что shl и shr меняет тип на integer, так задумано или это ошибка?
Так задумано. Все операции с целыми расширяют тип до integer
begin
Write(:);
end.
Постарайтесь в следующий раз давать описание проблемы, и если это 100% не фича - писать в issue на гитхабе, вот так: Там разработчикам будет удобнее увидеть ошибку.
Пишем System
, ставим точку - появляются подсказки по неймспейсу. Ставим нижнее подчёркивание - подсказки пропали.
Но хоть у имён и может быть нижнее подчёркивание - мне кажется что это фича такая, поэтому пишу сюда.
А точнее не просто может а есть, вот класс - System.__ComObject;
.