Browse Source

Ensure consuming works from C# language version 8 (#954)

Marko Lahma 3 years ago
parent
commit
2548f0681b
2 changed files with 7 additions and 3 deletions
  1. 5 1
      Jint.Tests/Jint.Tests.csproj
  2. 2 2
      Jint/Runtime/Interop/TypeResolver.cs

+ 5 - 1
Jint.Tests/Jint.Tests.csproj

@@ -5,7 +5,11 @@
     <AssemblyOriginatorKeyFile>..\Jint\Jint.snk</AssemblyOriginatorKeyFile>
     <AssemblyOriginatorKeyFile>..\Jint\Jint.snk</AssemblyOriginatorKeyFile>
     <SignAssembly>true</SignAssembly>
     <SignAssembly>true</SignAssembly>
     <IsPackable>false</IsPackable>
     <IsPackable>false</IsPackable>
-    <LangVersion>latest</LangVersion>
+    <!--
+      Unity currently supports only C# 8 so ensure we can use the features Jint introduces
+      https://docs.unity3d.com/Manual/CSharpCompiler.html
+    -->
+    <LangVersion>8</LangVersion>
     <NoWarn>612</NoWarn>
     <NoWarn>612</NoWarn>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>

+ 2 - 2
Jint/Runtime/Interop/TypeResolver.cs

@@ -19,13 +19,13 @@ namespace Jint.Runtime.Interop
         /// <summary>
         /// <summary>
         /// Registers a filter that determines whether given member is wrapped to interop or returned as undefined.
         /// Registers a filter that determines whether given member is wrapped to interop or returned as undefined.
         /// </summary>
         /// </summary>
-        public Predicate<MemberInfo> MemberFilter { get; init; } = _ => true;
+        public Predicate<MemberInfo> MemberFilter { get; set; } = _ => true;
 
 
         /// <summary>
         /// <summary>
         /// Sets member name comparison strategy when finding CLR objects members.
         /// Sets member name comparison strategy when finding CLR objects members.
         /// By default member's first character casing is ignored and rest of the name is compared with strict equality.
         /// By default member's first character casing is ignored and rest of the name is compared with strict equality.
         /// </summary>
         /// </summary>
-        public StringComparer MemberNameComparer { get; init; } = DefaultMemberNameComparer.Instance;
+        public StringComparer MemberNameComparer { get; set; } = DefaultMemberNameComparer.Instance;
 
 
         internal ReflectionAccessor GetAccessor(Engine engine, Type type, string member, Func<ReflectionAccessor> accessorFactory = null)
         internal ReflectionAccessor GetAccessor(Engine engine, Type type, string member, Func<ReflectionAccessor> accessorFactory = null)
         {
         {