|
@@ -347,7 +347,7 @@ Function _Invoke:Object(reflectionWrapper(buf:Byte Ptr Ptr), retType:TTypeId, ar
|
|
End If
|
|
End If
|
|
End Function
|
|
End Function
|
|
|
|
|
|
-
|
|
|
|
|
|
+Public
|
|
|
|
|
|
Function TypeTagForId$(id:TTypeId)
|
|
Function TypeTagForId$(id:TTypeId)
|
|
' TODO: extern type tags (#, *#)
|
|
' TODO: extern type tags (#, *#)
|
|
@@ -541,6 +541,39 @@ Function ModifiersForTag:EModifiers(modifierString:String)
|
|
Return modifiers
|
|
Return modifiers
|
|
End Function
|
|
End Function
|
|
|
|
|
|
|
|
+Function TypeListsIdentical:Int(a1:TTypeId[], a2:TTypeId[])
|
|
|
|
+ If a1.Length <> a2.Length Then Return False
|
|
|
|
+ For Local i:Int = 0 Until a1.Length
|
|
|
|
+ If a1[i] <> a2[i] Then Return False
|
|
|
|
+ Next
|
|
|
|
+ Return True
|
|
|
|
+End Function
|
|
|
|
+
|
|
|
|
+Function ArgTypesIdentical:Int(f1:TFunction, f2:TFunction)
|
|
|
|
+ Return TypeListsIdentical(f1.ArgTypes(), f2.ArgTypes())
|
|
|
|
+End Function
|
|
|
|
+
|
|
|
|
+Function ArgTypesIdentical:Int(m1:TMethod, m2:TMethod)
|
|
|
|
+ Return TypeListsIdentical(m1.ArgTypes(), m2.ArgTypes())
|
|
|
|
+End Function
|
|
|
|
+
|
|
|
|
+Function NamesAndArgTypesIdentical:Int(f1:TFunction, f2:TFunction)
|
|
|
|
+ Return f1.Name().ToLower() = f2.Name().ToLower() And ArgTypesIdentical(f1, f2)
|
|
|
|
+End Function
|
|
|
|
+
|
|
|
|
+Function NamesAndArgTypesIdentical:Int(m1:TMethod, m2:TMethod)
|
|
|
|
+ Return m1.Name().ToLower() = m2.Name().ToLower() And ArgTypesIdentical(m1, m2)
|
|
|
|
+End Function
|
|
|
|
+
|
|
|
|
+Function SignaturesIdentical:Int(f1:TFunction, f2:TFunction)
|
|
|
|
+ Return NamesAndArgTypesIdentical(f1, f2) And f1.ReturnType() = f2.ReturnType()
|
|
|
|
+End Function
|
|
|
|
+
|
|
|
|
+Function SignaturesIdentical:Int(m1:TMethod, m2:TMethod)
|
|
|
|
+ Return NamesAndArgTypesIdentical(m1, m2) And m1.ReturnType() = m2.ReturnType()
|
|
|
|
+End Function
|
|
|
|
+
|
|
|
|
+Private
|
|
|
|
|
|
Function ExtractMetaMap:TStringMap( meta:String )
|
|
Function ExtractMetaMap:TStringMap( meta:String )
|
|
If Not meta Then
|
|
If Not meta Then
|
|
@@ -582,38 +615,6 @@ Function ExtractMetaMap:TStringMap( meta:String )
|
|
Return map
|
|
Return map
|
|
End Function
|
|
End Function
|
|
|
|
|
|
-Function TypeListsIdentical:Int(a1:TTypeId[], a2:TTypeId[])
|
|
|
|
- If a1.Length <> a2.Length Then Return False
|
|
|
|
- For Local i:Int = 0 Until a1.Length
|
|
|
|
- If a1[i] <> a2[i] Then Return False
|
|
|
|
- Next
|
|
|
|
- Return True
|
|
|
|
-End Function
|
|
|
|
-
|
|
|
|
-Function ArgTypesIdentical:Int(f1:TFunction, f2:TFunction)
|
|
|
|
- Return TypeListsIdentical(f1.ArgTypes(), f2.ArgTypes())
|
|
|
|
-End Function
|
|
|
|
-
|
|
|
|
-Function ArgTypesIdentical:Int(m1:TMethod, m2:TMethod)
|
|
|
|
- Return TypeListsIdentical(m1.ArgTypes(), m2.ArgTypes())
|
|
|
|
-End Function
|
|
|
|
-
|
|
|
|
-Function NamesAndArgTypesIdentical:Int(f1:TFunction, f2:TFunction)
|
|
|
|
- Return f1.Name().ToLower() = f2.Name().ToLower() And ArgTypesIdentical(f1, f2)
|
|
|
|
-End Function
|
|
|
|
-
|
|
|
|
-Function NamesAndArgTypesIdentical:Int(m1:TMethod, m2:TMethod)
|
|
|
|
- Return m1.Name().ToLower() = m2.Name().ToLower() And ArgTypesIdentical(m1, m2)
|
|
|
|
-End Function
|
|
|
|
-
|
|
|
|
-Function SignaturesIdentical:Int(f1:TFunction, f2:TFunction)
|
|
|
|
- Return NamesAndArgTypesIdentical(f1, f2) And f1.ReturnType() = f2.ReturnType()
|
|
|
|
-End Function
|
|
|
|
-
|
|
|
|
-Function SignaturesIdentical:Int(m1:TMethod, m2:TMethod)
|
|
|
|
- Return NamesAndArgTypesIdentical(m1, m2) And m1.ReturnType() = m2.ReturnType()
|
|
|
|
-End Function
|
|
|
|
-
|
|
|
|
Function AddFunctionsToList(tid:TTypeId, list:TList, initialLastLink:TLink, funcNameLower:String = "")
|
|
Function AddFunctionsToList(tid:TTypeId, list:TList, initialLastLink:TLink, funcNameLower:String = "")
|
|
Local insertPos:TLink = initialLastLink.NextLink()
|
|
Local insertPos:TLink = initialLastLink.NextLink()
|
|
If Not insertPos Then insertPos = list._head
|
|
If Not insertPos Then insertPos = list._head
|