Пока Вы последовательность определили, проблем не возникает, потому что определение последовательности путем присваивания, в силу того, что она не хранится - это лишь описание. Но как только происходит обращение к первому элементу последовательности, начинается выполнение кода. Вот тут-то все и начинается…
Где именно? Это ошибка и должно быть исправлено.
P.S. Нашёл.
type
ver_t = record Major, Minor: integer; end;
LibInfo = class
public const version: ver_t = (Major = 1, Minor = 0);
end;
begin end.
Константа класса может иметь значение только примитивного типа
Зачем это ограничение? Синтаксически эту конструкцию явно принимает.
begin
System.Linq.Enumerable.Aggregate(Seq(0),(a,b)->a);
end.
Ошибка состоит в том что даёт вызывать так экстеншн-метод, или в том что анализатор кода не показывает первый параметр?
Дамы и Господа! Случилась такая ошибка при запуске PascalABC, светлым умам заранее благодарен! 2omd093dopsj|690x387
Что это? Не кликается…
И в любом случае, приложите больше данных, к примеру код.
Его выделять надо так:
```
Код
```
Знак ` находится за Ё в англ раскладке.
Нельзя вызвать методы begin/end, компилятор ругается. Для примера OpenTK.Graphics.OpenGL.GL.End(); - фигвам. Обойти это как-то можно?
Да, ключевые слова надо экранировать:
OpenTK.Graphics.OpenGL.GL.&End
Недавно запуск pabcnetcclear.exe
с такой строкой в качестве аргументов:
$'"{fname}.pas" "" "Debug=0"'
Перестал работать. Пишет:
Error in argument Debug=0
Command line cannot contain any arguments after filename 'C:\1Сергей\Мои программы\SAC\src\Test.pas' and outdirname ''
Так а куда правильно Debug=0
засовывать чтоб откомпилировать .pas файл в режиме без дебага?
P.S. @Admin ввобще вы мне тут сказали использовать такой аргумент, но мне кажется что он и до того как компилятор стал на него ругаться - не работал. Просто раньше игнорировался.
Мы переписали pabcnetcclear.exe Запустите его без аргументов - он скажет вам параметры командной строки.
И - можно открывать тред по консольным компиляторам - что хотелось бы, потому что они писались только с расчетом простейшего использования в оболочке
Я немного туплю с утра пораньше… Какая тут логика? Вы имеете в виду создать отдельную тему с предложениями как улучшить, чтоб консольные компиляторы были юзабельны не только из IDE?
@Admin, пожалуйста, дофиксите наконец #1981, вы ведь в #1957 уже придумали как исправлять такое. Очень мешает.
type
t1 = class
public static procedure p1;
begin
end;
end;
begin
try
var ad := System.AppDomain.CreateDomain('domain 2');
ad.DoCallBack(t1.p1);
except
on e: Exception do writeln(e);
end;
end.
Этот код падает с TypeLoadException
. И вроде ведь несколько месяцев назад работало.
Посмотрел как выглядит t1
в .exe
и написал такой же тип в C# - всё работает без ошибок:
using System;
namespace Test1
{
public class t1
{
public void Init()
{
}
public static void p1()
{
}
public t1()
{
this.Init();
}
}
static class Program
{
public static void Main(string[] args)
{
try {
var ad = AppDomain.CreateDomain("domain 2");
ad.DoCallBack(t1.p1);
} catch (Exception e) {
Console.WriteLine(e);
}
Console.ReadLine();
}
}
}
у меня не падает
А разве это ошибка? Там действительно два преобразования типов
У меня тоже не падает.
Странно, теперь и у меня не падает… А IDE перезагрузить я тогда не пробовал.