//!Операция as не может быть применена к обобщённому параметру T, не имеющему спецификатора "class" type A = class public static procedure Test(x: T) := Print(x as T); end; begin A&.Test(2); // выводит мусор end.