diff --git a/.gitmodules b/.gitmodules
index bb3487860..d402d02ac 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,7 +1,3 @@
-[submodule "lib/mono.linq.expressions"]
- path = lib/mono.linq.expressions
- url = https://github.com/jbevain/mono.linq.expressions.git
- branch = master
[submodule "external/cecil"]
path = external/cecil
url = https://github.com/mono/cecil.git
diff --git a/Java.Interop.sln b/Java.Interop.sln
index 734f5790b..af5a60c20 100644
--- a/Java.Interop.sln
+++ b/Java.Interop.sln
@@ -5,8 +5,6 @@ VisualStudioVersion = 16.0.29424.173
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{C8F58966-94BF-407F-914A-8654F8B8AE3B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Linq.Expressions", "lib\mono.linq.expressions\Mono.Linq.Expressions.csproj", "{0C001D50-4176-45AE-BDC8-BA626508B0CC}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Android.Tools.JniMarshalMethodGenerator", "tools\jnimarshalmethod-gen\Xamarin.Android.Tools.JniMarshalMethodGenerator.csproj", "{D1295A8F-4F42-461D-A046-564476C10002}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "logcat-parse", "tools\logcat-parse\logcat-parse.csproj", "{7387E151-48E3-4885-B2CA-A74434A34045}"
@@ -98,10 +96,6 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0C001D50-4176-45AE-BDC8-BA626508B0CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0C001D50-4176-45AE-BDC8-BA626508B0CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0C001D50-4176-45AE-BDC8-BA626508B0CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0C001D50-4176-45AE-BDC8-BA626508B0CC}.Release|Any CPU.Build.0 = Release|Any CPU
{D1295A8F-4F42-461D-A046-564476C10002}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D1295A8F-4F42-461D-A046-564476C10002}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1295A8F-4F42-461D-A046-564476C10002}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -243,7 +237,6 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {0C001D50-4176-45AE-BDC8-BA626508B0CC} = {C8F58966-94BF-407F-914A-8654F8B8AE3B}
{D1295A8F-4F42-461D-A046-564476C10002} = {C8F58966-94BF-407F-914A-8654F8B8AE3B}
{7387E151-48E3-4885-B2CA-A74434A34045} = {C8F58966-94BF-407F-914A-8654F8B8AE3B}
{38C762AB-8FD1-44DE-9855-26AAE7129DC3} = {C8F58966-94BF-407F-914A-8654F8B8AE3B}
diff --git a/lib/mono.linq.expressions b/lib/mono.linq.expressions
deleted file mode 160000
index 7973f862d..000000000
--- a/lib/mono.linq.expressions
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7973f862ddfea552457c7b2bc457fb87c481a791
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj b/src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj
index 6aa6aa87e..f0c557f43 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj
@@ -22,9 +22,5 @@
{94BD81F7-B06F-4295-9636-F8A3B6BDC762}
Java.Interop
-
- {0C001D50-4176-45AE-BDC8-BA626508B0CC}
- Mono.Linq.Expressions
-
\ No newline at end of file
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaClass.cs b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaClass.cs
index 5d97b974b..cd20c7c03 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaClass.cs
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaClass.cs
@@ -9,8 +9,6 @@
using Java.Interop;
-using Mono.Linq.Expressions;
-
namespace Java.Interop.Dynamic {
public class DynamicJavaClass : IDynamicMetaObjectProvider, IDisposable
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaInstance.cs b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaInstance.cs
index 2057d4b06..96b1eff5f 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaInstance.cs
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaInstance.cs
@@ -9,8 +9,6 @@
using Java.Interop;
-using Mono.Linq.Expressions;
-
namespace Java.Interop.Dynamic {
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaClassInfo.cs b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaClassInfo.cs
index 722d85e5e..e5b669e7e 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaClassInfo.cs
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaClassInfo.cs
@@ -9,8 +9,6 @@
using System.Threading;
using System.Text;
-using Mono.Linq.Expressions;
-
using Java.Interop;
namespace Java.Interop.Dynamic {
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaConstructorInfo.cs b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaConstructorInfo.cs
index 9b62c0534..658311d23 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaConstructorInfo.cs
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaConstructorInfo.cs
@@ -9,8 +9,6 @@
using System.Threading;
using System.Text;
-using Mono.Linq.Expressions;
-
using Java.Interop;
namespace Java.Interop.Dynamic {
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaFieldInfo.cs b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaFieldInfo.cs
index d1a9fd030..ff81d0080 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaFieldInfo.cs
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaFieldInfo.cs
@@ -9,8 +9,6 @@
using System.Threading;
using System.Text;
-using Mono.Linq.Expressions;
-
using Java.Interop;
namespace Java.Interop.Dynamic {
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaInstanceProxy.cs b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaInstanceProxy.cs
index f68b4935e..6af9b57c4 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaInstanceProxy.cs
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaInstanceProxy.cs
@@ -9,8 +9,6 @@
using System.Threading;
using System.Text;
-using Mono.Linq.Expressions;
-
using Java.Interop;
namespace Java.Interop.Dynamic {
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaMethodBase.cs b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaMethodBase.cs
index d7610dafd..d738864f4 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaMethodBase.cs
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaMethodBase.cs
@@ -9,8 +9,6 @@
using System.Threading;
using System.Text;
-using Mono.Linq.Expressions;
-
using Java.Interop;
namespace Java.Interop.Dynamic {
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaMethodInfo.cs b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaMethodInfo.cs
index 89d7cc0c2..eb9e19d1b 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaMethodInfo.cs
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaMethodInfo.cs
@@ -9,8 +9,6 @@
using System.Threading;
using System.Text;
-using Mono.Linq.Expressions;
-
using Java.Interop;
namespace Java.Interop.Dynamic {
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JniMetaObject.cs b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JniMetaObject.cs
index fde99e523..2eb3b396f 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JniMetaObject.cs
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic/JniMetaObject.cs
@@ -9,8 +9,6 @@
using System.Threading;
using System.Text;
-using Mono.Linq.Expressions;
-
using Java.Interop;
namespace Java.Interop.Dynamic {
diff --git a/tests/Java.Interop-Tests/Java.Interop-Tests.csproj b/tests/Java.Interop-Tests/Java.Interop-Tests.csproj
index d803a2f97..321619116 100644
--- a/tests/Java.Interop-Tests/Java.Interop-Tests.csproj
+++ b/tests/Java.Interop-Tests/Java.Interop-Tests.csproj
@@ -20,6 +20,7 @@
+
@@ -31,7 +32,6 @@
-
diff --git a/tests/Java.Interop.Dynamic-Tests/Java.Interop.Dynamic-Tests.csproj b/tests/Java.Interop.Dynamic-Tests/Java.Interop.Dynamic-Tests.csproj
index b38dc167e..e4f1bb01c 100644
--- a/tests/Java.Interop.Dynamic-Tests/Java.Interop.Dynamic-Tests.csproj
+++ b/tests/Java.Interop.Dynamic-Tests/Java.Interop.Dynamic-Tests.csproj
@@ -31,7 +31,6 @@
-
diff --git a/tests/Java.Interop.Dynamic-Tests/Java.Interop/DynamicJavaClassTests.cs b/tests/Java.Interop.Dynamic-Tests/Java.Interop/DynamicJavaClassTests.cs
index f887f7dcc..b3ed85508 100644
--- a/tests/Java.Interop.Dynamic-Tests/Java.Interop/DynamicJavaClassTests.cs
+++ b/tests/Java.Interop.Dynamic-Tests/Java.Interop/DynamicJavaClassTests.cs
@@ -7,8 +7,6 @@
using Java.Interop;
using Java.Interop.Dynamic;
-using Mono.Linq.Expressions;
-
using NUnit.Framework;
namespace Java.Interop.DynamicTests {
diff --git a/tests/Java.Interop.Dynamic-Tests/Java.Interop/DynamicJavaInstanceTests.cs b/tests/Java.Interop.Dynamic-Tests/Java.Interop/DynamicJavaInstanceTests.cs
index 4ef9525f4..345163e69 100644
--- a/tests/Java.Interop.Dynamic-Tests/Java.Interop/DynamicJavaInstanceTests.cs
+++ b/tests/Java.Interop.Dynamic-Tests/Java.Interop/DynamicJavaInstanceTests.cs
@@ -7,8 +7,6 @@
using Java.Interop;
using Java.Interop.Dynamic;
-using Mono.Linq.Expressions;
-
using NUnit.Framework;
namespace Java.Interop.DynamicTests {
diff --git a/tests/Java.Interop.Export-Tests/Java.Interop.Export-Tests.csproj b/tests/Java.Interop.Export-Tests/Java.Interop.Export-Tests.csproj
index 8fd1cf0a8..873b6c703 100644
--- a/tests/Java.Interop.Export-Tests/Java.Interop.Export-Tests.csproj
+++ b/tests/Java.Interop.Export-Tests/Java.Interop.Export-Tests.csproj
@@ -16,6 +16,7 @@
+
@@ -27,7 +28,6 @@
-