Skip to content

Recursion error #321

@Descolada

Description

@Descolada
#Requires AutoHotkey v2

F1::{
    SendMode "Event"
    Loop 
        Send("a"), Send("{BS}")
}

Esc::ExitApp

; removing this class solves the error
class SomeClass {
    ; making this non-static solves the error
    static SomeName {
        get => 1
    }
}

Run the script in debugger mode, press F1 and let it run for a while (in my setup, 5-10 seconds): causes a function recursion error. I tested the same code with other debuggers (AutoHotKey Debug by Helsmy, AutoHotkey Plus Plus by Mark Wiemer) which don't cause that error. I'm running Windows 10 + AHK v2.0.10, but replicated the same error in Windows 11 as well.
Apparently under some circumstances class static properties with a getter defined lead to the problem. For example, the following class definition causes the same issue:

class SomeClass {
    static __New() {
        this.DefineProp("SomeName", {get:(this) => 1})
    }
}

I previously posted a stack trace from Visual Studio + your extension attached to it in an AHK forums post which could perhaps give some insight.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions