From 45352cc2870a9008025bc4f75d0054bcde3d3b08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D0=B5=D0=B2=20=D0=98?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD?= Date: Wed, 3 Oct 2018 20:02:29 +0200 Subject: [PATCH] fix #1317 --- TestSuite/errors/err0288.pas | 9 +++++++++ TreeConverter/TreeRealization/generics.cs | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 TestSuite/errors/err0288.pas diff --git a/TestSuite/errors/err0288.pas b/TestSuite/errors/err0288.pas new file mode 100644 index 000000000..24ec91f9f --- /dev/null +++ b/TestSuite/errors/err0288.pas @@ -0,0 +1,9 @@ +uses System; + +function F1(): Nullable>; +begin +end; + +begin + +end. \ No newline at end of file diff --git a/TreeConverter/TreeRealization/generics.cs b/TreeConverter/TreeRealization/generics.cs index 284bfbff5..b46a66307 100644 --- a/TreeConverter/TreeRealization/generics.cs +++ b/TreeConverter/TreeRealization/generics.cs @@ -149,7 +149,7 @@ namespace PascalABCCompiler.TreeRealization { return new SimpleSemanticError(null, "PARAMETER_{0}_MUST_BE_REFERENCE_TYPE", tn.PrintableName); } - if (gpe.is_value && !tn.is_value && !tn.is_generic_parameter) + if (gpe.is_value && (!tn.is_value || tn.BaseFullName != null && tn.BaseFullName.StartsWith("System.Nullable")) && !tn.is_generic_parameter) { return new SimpleSemanticError(null, "PARAMETER_{0}_MUST_BE_VALUE_TYPE", tn.PrintableName); }