From 74eab9f6cced9581618bfc34b89847836ad7c175 Mon Sep 17 00:00:00 2001
From: Dimitar Dobrev <dpldobrev@protonmail.com>
Date: Wed, 20 Nov 2019 23:48:35 +0200
Subject: [PATCH] Fix the moving of free functions to classes to match by
 module too

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
---
 src/Generator/Passes/MoveFunctionToClassPass.cs | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/Generator/Passes/MoveFunctionToClassPass.cs b/src/Generator/Passes/MoveFunctionToClassPass.cs
index 5e5d295a..6abfd339 100644
--- a/src/Generator/Passes/MoveFunctionToClassPass.cs
+++ b/src/Generator/Passes/MoveFunctionToClassPass.cs
@@ -65,12 +65,12 @@ namespace CppSharp.Passes
             }
             else
             {
-                var unit = function.Namespace as TranslationUnit;
-                @class = unit == null
-                    ? ASTContext.FindClass(
-                        function.Namespace.Name, ignoreCase: true).FirstOrDefault()
-                    : ASTContext.FindCompleteClass(
-                        unit.FileNameWithoutExtension.ToLowerInvariant(), true);
+                string name = (function.Namespace as TranslationUnit)?.FileNameWithoutExtension ??
+                    function.Namespace.Name;
+                @class = ASTContext.FindClass(
+                    name, ignoreCase: true).FirstOrDefault(
+                        c => c.TranslationUnit.Module == function.TranslationUnit.Module &&
+                            !c.IsIncomplete);
             }
 
             return @class;