DefaultDict in twinBASIC crashes compiler

I'm trying to make a defaultdict in twinBASIC - this is one where if a key does not exist in a dictionary then it is populated by a default value according to some type. This is what I've tried:

Private Class DefaultDict(Of T)
    Implements Scripting.Dictionary Via dict
    Private dict As Dictionary
    Private defaultValue As T

    Public Property Get Item(ByVal key As Variant) As Variant Implements Scripting.Dictionary.Item
        If Not dict.Exists(key) Then
            dict(key) = defaultValue
        End If
        Return dict(key)
    End Property
End Class

Called like:

Dim dict As New DefaultDict(Of Long)
dict("foo") += 1 'foo key defaults to 0
Debug.Print dict("foo") 'should be 1

However this just crashes the compiler. What's the proper approach here?



Comments

Popular posts from this blog

Spring Elasticsearch Operations

Object oriented programming concepts (OOPs)

Network Error and Timeout on Authorize.net JS