Skip to content

Commit 2604aa5

Browse files
committed
changed VB.NET target framework to v3.5 and fixed some compilation issues and tests from the change.
1 parent 2282ab5 commit 2604aa5

File tree

5 files changed

+22
-17
lines changed

5 files changed

+22
-17
lines changed

Driver/Linq/Translators/PredicateTranslator.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,11 @@ private IMongoQuery BuildEqualsQuery(MethodCallExpression methodCallExpression)
463463
return null;
464464
}
465465

466+
if (variableExpression.Type == typeof(Type) && constantExpression.Type == typeof(Type))
467+
{
468+
return BuildTypeComparisonQuery(variableExpression, ExpressionType.Equal, constantExpression);
469+
}
470+
466471
return BuildComparisonQuery(variableExpression, ExpressionType.Equal, constantExpression);
467472
}
468473

@@ -1135,13 +1140,13 @@ private string GetTrimCharsPattern(Expression trimCharsExpression)
11351140
return "\\s*";
11361141
}
11371142

1138-
var constantExpresion = trimCharsExpression as ConstantExpression;
1139-
if (constantExpresion == null || constantExpresion.Type != typeof(char[]))
1143+
var constantExpression = trimCharsExpression as ConstantExpression;
1144+
if (constantExpression == null || !constantExpression.Type.IsArray || constantExpression.Type.GetElementType() != typeof(char))
11401145
{
11411146
return null;
11421147
}
11431148

1144-
var trimChars = (char[])constantExpresion.Value;
1149+
var trimChars = (char[])constantExpression.Value;
11451150
if (trimChars.Length == 0)
11461151
{
11471152
return "\\s*";

DriverUnitTestsVB/DriverUnitTestsVB.vbproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<AssemblyName>MongoDB.DriverUnitTestsVB</AssemblyName>
1414
<FileAlignment>512</FileAlignment>
1515
<MyType>Windows</MyType>
16-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
16+
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
1717
</PropertyGroup>
1818
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
1919
<DebugSymbols>true</DebugSymbols>

DriverUnitTestsVB/Linq/SelectOfTypeHierarchicalTests.vb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ Namespace MongoDB.DriverUnitTests.Linq
254254
Public Sub TestWhereBTypeEqualsB()
255255
If _server.BuildInfo.Version >= New Version(2, 0) Then
256256
Dim query = From b In _collection.AsQueryable(Of B)()
257-
Where b.GetType() = GetType(B)
257+
Where b.GetType().Equals(GetType(B))
258258
Select b
259259

260260
Dim translatedQuery = MongoQueryTranslator.Translate(query)
@@ -263,7 +263,7 @@ Namespace MongoDB.DriverUnitTests.Linq
263263
Assert.AreSame(GetType(B), translatedQuery.DocumentType)
264264

265265
Dim selectQuery = DirectCast(translatedQuery, SelectQuery)
266-
Assert.AreEqual("(B b) => (b.GetType() == typeof(B))", ExpressionFormatter.ToString(selectQuery.Where))
266+
Assert.AreEqual("(B b) => b.GetType().Equals(typeof(B))", ExpressionFormatter.ToString(selectQuery.Where))
267267
Assert.AreEqual(Nothing, selectQuery.OfType)
268268
' OfType ignored because <T> was the same as <TDocument>
269269
Assert.IsNull(selectQuery.OrderBy)
@@ -279,7 +279,7 @@ Namespace MongoDB.DriverUnitTests.Linq
279279
<Test()> _
280280
Public Sub TestWhereBTypeEqualsC()
281281
Dim query = From b In _collection.AsQueryable(Of B)()
282-
Where b.GetType() = GetType(C)
282+
Where b.GetType().Equals(GetType(C))
283283
Select b
284284

285285
Dim translatedQuery = MongoQueryTranslator.Translate(query)
@@ -288,7 +288,7 @@ Namespace MongoDB.DriverUnitTests.Linq
288288
Assert.AreSame(GetType(B), translatedQuery.DocumentType)
289289

290290
Dim selectQuery = DirectCast(translatedQuery, SelectQuery)
291-
Assert.AreEqual("(B b) => (b.GetType() == typeof(C))", ExpressionFormatter.ToString(selectQuery.Where))
291+
Assert.AreEqual("(B b) => b.GetType().Equals(typeof(C))", ExpressionFormatter.ToString(selectQuery.Where))
292292
Assert.AreEqual(Nothing, selectQuery.OfType)
293293
Assert.IsNull(selectQuery.OrderBy)
294294
Assert.IsNull(selectQuery.Projection)
@@ -302,7 +302,7 @@ Namespace MongoDB.DriverUnitTests.Linq
302302
<Test()> _
303303
Public Sub TestWhereBTypeEqualsD()
304304
Dim query = From b In _collection.AsQueryable(Of B)()
305-
Where b.GetType() = GetType(D)
305+
Where b.GetType().Equals(GetType(D))
306306
Select b
307307

308308
Dim translatedQuery = MongoQueryTranslator.Translate(query)
@@ -311,7 +311,7 @@ Namespace MongoDB.DriverUnitTests.Linq
311311
Assert.AreSame(GetType(B), translatedQuery.DocumentType)
312312

313313
Dim selectQuery = DirectCast(translatedQuery, SelectQuery)
314-
Assert.AreEqual("(B b) => (b.GetType() == typeof(D))", ExpressionFormatter.ToString(selectQuery.Where))
314+
Assert.AreEqual("(B b) => b.GetType().Equals(typeof(D))", ExpressionFormatter.ToString(selectQuery.Where))
315315
Assert.AreEqual(Nothing, selectQuery.OfType)
316316
Assert.IsNull(selectQuery.OrderBy)
317317
Assert.IsNull(selectQuery.Projection)

DriverUnitTestsVB/Linq/SelectOfTypeTests.vb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ Namespace MongoDB.DriverUnitTests.Linq
257257
<Test()> _
258258
Public Sub TestWhereBTypeEqualsB()
259259
Dim query = From b In _collection.AsQueryable(Of B)()
260-
Where b.GetType() = GetType(B)
260+
Where b.GetType().Equals(GetType(B))
261261
Select b
262262

263263
Dim translatedQuery = MongoQueryTranslator.Translate(query)
@@ -266,7 +266,7 @@ Namespace MongoDB.DriverUnitTests.Linq
266266
Assert.AreSame(GetType(B), translatedQuery.DocumentType)
267267

268268
Dim selectQuery = DirectCast(translatedQuery, SelectQuery)
269-
Assert.AreEqual("(B b) => (b.GetType() == typeof(B))", ExpressionFormatter.ToString(selectQuery.Where))
269+
Assert.AreEqual("(B b) => b.GetType().Equals(typeof(B))", ExpressionFormatter.ToString(selectQuery.Where))
270270
Assert.AreEqual(Nothing, selectQuery.OfType)
271271
' OfType ignored because <T> was the same as <TDocument>
272272
Assert.IsNull(selectQuery.OrderBy)
@@ -281,7 +281,7 @@ Namespace MongoDB.DriverUnitTests.Linq
281281
<Test()> _
282282
Public Sub TestWhereBTypeEqualsC()
283283
Dim query = From b In _collection.AsQueryable(Of B)()
284-
Where b.GetType() = GetType(C)
284+
Where b.GetType().Equals(GetType(C))
285285
Select b
286286

287287
Dim translatedQuery = MongoQueryTranslator.Translate(query)
@@ -290,7 +290,7 @@ Namespace MongoDB.DriverUnitTests.Linq
290290
Assert.AreSame(GetType(B), translatedQuery.DocumentType)
291291

292292
Dim selectQuery = DirectCast(translatedQuery, SelectQuery)
293-
Assert.AreEqual("(B b) => (b.GetType() == typeof(C))", ExpressionFormatter.ToString(selectQuery.Where))
293+
Assert.AreEqual("(B b) => b.GetType().Equals(typeof(C))", ExpressionFormatter.ToString(selectQuery.Where))
294294
Assert.AreEqual(Nothing, selectQuery.OfType)
295295
Assert.IsNull(selectQuery.OrderBy)
296296
Assert.IsNull(selectQuery.Projection)
@@ -304,7 +304,7 @@ Namespace MongoDB.DriverUnitTests.Linq
304304
<Test()> _
305305
Public Sub TestWhereBTypeEqualsD()
306306
Dim query = From b In _collection.AsQueryable(Of B)()
307-
Where b.GetType() = GetType(D)
307+
Where b.GetType().Equals(GetType(D))
308308
Select b
309309

310310
Dim translatedQuery = MongoQueryTranslator.Translate(query)
@@ -313,7 +313,7 @@ Namespace MongoDB.DriverUnitTests.Linq
313313
Assert.AreSame(GetType(B), translatedQuery.DocumentType)
314314

315315
Dim selectQuery = DirectCast(translatedQuery, SelectQuery)
316-
Assert.AreEqual("(B b) => (b.GetType() == typeof(D))", ExpressionFormatter.ToString(selectQuery.Where))
316+
Assert.AreEqual("(B b) => b.GetType().Equals(typeof(D))", ExpressionFormatter.ToString(selectQuery.Where))
317317
Assert.AreEqual(Nothing, selectQuery.OfType)
318318
Assert.IsNull(selectQuery.OrderBy)
319319
Assert.IsNull(selectQuery.Projection)

DriverUnitTestsVB/Linq/SelectQueryTests.vb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ Namespace MongoDB.DriverUnitTests.Linq
9191
Public Z As Integer
9292
' use field instead of property to test fields also
9393
Public Overrides Function Equals(ByVal obj As Object) As Boolean
94-
If obj Is Nothing OrElse [GetType]() <> obj.[GetType]() Then
94+
If obj Is Nothing OrElse Not obj.GetType().Equals(GetType(D)) Then
9595
Return False
9696
End If
9797
Return Z = DirectCast(obj, D).Z

0 commit comments

Comments
 (0)