Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions python/deps/untypy/untypy/util/typedfunction.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ def __init__(self, inner: Callable, ctx: CreationContext):
self.checkers()
except UntypyNameError:
pass
except NameError:
pass

# The self.fast_sig flags tells wether the signature supports fast matching of arguments.
# We identified (2022-05-05) that self.wrap_arguments is a performence bottleneck.
Expand Down
2 changes: 2 additions & 0 deletions python/fileTests
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,8 @@ checkWithOutputAux yes 0 test-data/testUnion.py
checkWithOutputAux yes 0 test-data/testUnion2.py
checkWithOutputAux yes 0 test-data/testUnion3.py
checkWithOutputAux yes 1 test-data/testLiteral1.py
checkWithOutputAux yes 0 test-data/testForwardTypeInRecord.py
checkWithOutputAux yes 0 test-data/testForwardTypeInRecord2.py

function is_min_version()
{
Expand Down
Empty file.
1 change: 1 addition & 0 deletions python/test-data/testForwardTypeInRecord.out
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3 Tests, alle erfolgreich 😀
32 changes: 32 additions & 0 deletions python/test-data/testForwardTypeInRecord.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
from wypp import *

type RiverSection = Union[Creek, Confluence]

@record
class Creek:
origin: str
name: str

@record
class Confluence:
location: str
mainStem: RiverSection
tributary: RiverSection

kinzig1 = Creek('Loßburg', 'Kinzig')
gutach1 = Creek('Schönwald', 'Gutach')
kinzig2 = Confluence('Hausach', kinzig1, gutach1)
schutter1 = Creek('Schweighausen', 'Schutter')
heidengraben1 = Creek('Lahr', 'Heidengraben')
schutter2 = Confluence('Lahr', schutter1, heidengraben1)
kinzig3 = Confluence('Kehl', kinzig2, schutter2)

def riverName(section: RiverSection) -> str:
if isinstance(section, Creek): # es handelt sich um einen Bach
return section.name
else: # es handelt sich um einen Zusammenfluss
return riverName(section.mainStem)

check(riverName(kinzig1), 'Kinzig')
check(riverName(kinzig2), 'Kinzig')
check(riverName(kinzig3), 'Kinzig')
Empty file.
1 change: 1 addition & 0 deletions python/test-data/testForwardTypeInRecord2.out
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3 Tests, alle erfolgreich 😀
32 changes: 32 additions & 0 deletions python/test-data/testForwardTypeInRecord2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
from wypp import *

type RiverSection = Union[Creek, Confluence]

@record
class Creek:
origin: str
name: str

@record(mutable=True)
class Confluence:
location: str
mainStem: RiverSection
tributary: RiverSection

kinzig1 = Creek('Loßburg', 'Kinzig')
gutach1 = Creek('Schönwald', 'Gutach')
kinzig2 = Confluence('Hausach', kinzig1, gutach1)
schutter1 = Creek('Schweighausen', 'Schutter')
heidengraben1 = Creek('Lahr', 'Heidengraben')
schutter2 = Confluence('Lahr', schutter1, heidengraben1)
kinzig3 = Confluence('Kehl', kinzig2, schutter2)

def riverName(section: RiverSection) -> str:
if isinstance(section, Creek): # es handelt sich um einen Bach
return section.name
else: # es handelt sich um einen Zusammenfluss
return riverName(section.mainStem)

check(riverName(kinzig1), 'Kinzig')
check(riverName(kinzig2), 'Kinzig')
check(riverName(kinzig3), 'Kinzig')
Loading