mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-04 19:10:09 +01:00
Better generated global variables
Use the more generic type rather than a literal type. Before, a type-checker would infer an int defined this way as `Literal[0]` vs the more correctly generic `int` for example.
This commit is contained in:
@@ -236,22 +236,16 @@ class PiWrapperGenerator(generators.WrapperGeneratorBase, FixWxPrefix):
|
|||||||
if globalVar.ignored or piIgnored(globalVar):
|
if globalVar.ignored or piIgnored(globalVar):
|
||||||
return
|
return
|
||||||
name = globalVar.pyName or globalVar.name
|
name = globalVar.pyName or globalVar.name
|
||||||
|
valTyp = 'Any'
|
||||||
if guessTypeInt(globalVar):
|
if guessTypeInt(globalVar):
|
||||||
valTyp = '0'
|
valTyp = 'int'
|
||||||
elif guessTypeFloat(globalVar):
|
elif guessTypeFloat(globalVar):
|
||||||
valTyp = '0.0'
|
valTyp = 'float'
|
||||||
elif guessTypeStr(globalVar):
|
elif guessTypeStr(globalVar):
|
||||||
valTyp = '""'
|
valTyp = 'str'
|
||||||
else:
|
elif globalVar.type:
|
||||||
valTyp = globalVar.type
|
valTyp = self.cleanType(globalVar.type) or valTyp
|
||||||
valTyp = valTyp.replace('const ', '')
|
stream.write(f'{name}: {valTyp}\n')
|
||||||
valTyp = valTyp.replace('*', '')
|
|
||||||
valTyp = valTyp.replace('&', '')
|
|
||||||
valTyp = valTyp.replace(' ', '')
|
|
||||||
valTyp = self.fixWxPrefix(valTyp)
|
|
||||||
valTyp += '()'
|
|
||||||
|
|
||||||
stream.write('%s = %s\n' % (name, valTyp))
|
|
||||||
|
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
def generateDefine(self, define, stream):
|
def generateDefine(self, define, stream):
|
||||||
@@ -259,10 +253,11 @@ class PiWrapperGenerator(generators.WrapperGeneratorBase, FixWxPrefix):
|
|||||||
if define.ignored or piIgnored(define):
|
if define.ignored or piIgnored(define):
|
||||||
return
|
return
|
||||||
# we're assuming that all #defines that are not ignored are integer or string values
|
# we're assuming that all #defines that are not ignored are integer or string values
|
||||||
|
name = define.pyName or define.name
|
||||||
if '"' in define.value:
|
if '"' in define.value:
|
||||||
stream.write('%s = ""\n' % (define.pyName or define.name))
|
stream.write(f'{name}: str\n')
|
||||||
else:
|
else:
|
||||||
stream.write('%s = 0\n' % (define.pyName or define.name))
|
stream.write(f'{name}: int\n')
|
||||||
|
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
def generateTypedef(self, typedef, stream, indent=''):
|
def generateTypedef(self, typedef, stream, indent=''):
|
||||||
|
|||||||
Reference in New Issue
Block a user