@@ -979,7 +979,7 @@ BEGIN NAMESPACE XSharpModel
979979 RETURN myusings :ToList()
980980
981981
982- PRIVATE _lastFound := NULL AS XSourceTypeSymbol
982+ PRIVATE _lastFound := NULL AS IXTypeSymbol
983983 PRIVATE _lastName := NULL AS STRING
984984
985985 METHOD GetTypesLike ( startWith AS STRING, usings AS IList<STRING>) AS IList<XSourceTypeSymbol>
@@ -1015,11 +1015,11 @@ BEGIN NAMESPACE XSharpModel
10151015 endif
10161016 RETURN result
10171017
1018- METHOD Lookup (typeName AS STRING) AS XSourceTypeSymbol
1018+ METHOD Lookup (typeName AS STRING) AS IXTypeSymbol
10191019 VAR usings := List< STRING> {}
10201020 RETURN SELF :Lookup (typeName, usings)
10211021
1022- METHOD Lookup (typeName AS STRING, usings AS IList<STRING>) AS XSourceTypeSymbol
1022+ METHOD Lookup (typeName AS STRING, usings AS IList<STRING>) AS IXTypeSymbol
10231023 // lookup Type definition in this project and X# projects referenced by this project
10241024 SELF :LogTypeMessage (i"Lookup {typeName}" )
10251025 VAR originalName := typeName
@@ -1051,6 +1051,17 @@ BEGIN NAMESPACE XSharpModel
10511051 var elements := originalName :Split(< char> {'.' })
10521052 var first := SELF :Lookup (elements.First (), usings)
10531053 if first != NULL
1054+ if elements.Length > 1
1055+ var mem := elements[1 ]
1056+ foreach var m in first.Members
1057+ if String.Equals (m.Name, mem, StringComparison.OrdinalIgnoreCase)
1058+ m.Resolve ()
1059+ _lastFound := m.ResolvedType
1060+ return _lastFound
1061+ endif
1062+ next
1063+ endif
1064+
10541065 typeName := first :FullName + "." + typeName
10551066 return SELF :Lookup (typeName, usings)
10561067 endif
@@ -1301,11 +1312,13 @@ BEGIN NAMESPACE XSharpModel
13011312 sb :AppendLine("END CLASS" )
13021313 VAR walker := SourceWalker{oFile , FALSE }
13031314 walker :Parse(sb :ToString())
1304- foreach var entity in walker :EntityList
1305- if entity is XSourceMemberSymbol var sms
1306- entities :Add(sms)
1307- endif
1308- next
1315+ if (walker :EntityList != null)
1316+ foreach var entity in walker :EntityList
1317+ if entity is XSourceMemberSymbol var sms
1318+ entities :Add(sms)
1319+ endif
1320+ next
1321+ endif
13091322 if entities :Count == list :Count
13101323 FOR var i := 0 to entities :Count -1
13111324 var entity := (XSourceMemberSymbol) entities[i]
0 commit comments