From 3f06c7ec4eebcbe12f15ce4d3b250e4db4189901 Mon Sep 17 00:00:00 2001 From: Stephen Weeks Date: Wed, 6 Jan 2010 10:40:30 -0700 Subject: [PATCH] Add &warn --- src/builtins/control.pir | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/builtins/control.pir b/src/builtins/control.pir index 4a7132dcf81..4142b9b0352 100644 --- a/src/builtins/control.pir +++ b/src/builtins/control.pir @@ -20,7 +20,7 @@ src/builtins/control.pir - control flow related functions .local string message .local pmc p6ex .local pmc ex - + message = join '', list if message > '' goto have_message message = "Died\n" @@ -36,6 +36,27 @@ src/builtins/control.pir - control flow related functions .return () .end +.sub '&warn' + .param pmc list :slurpy + .local string message + .local pmc p6ex + .local pmc ex + + message = join '', list + if message > '' goto have_message + message = "Warning\n" + have_message: + p6ex = new ['Perl6Exception'] + ex = root_new ['parrot';'Exception'] + ex = message + ex['severity'] = .EXCEPT_WARNING + ex['type'] = .CONTROL_ERROR + setattribute p6ex, '$!exception', ex + set_global '$!', p6ex + throw ex + .return () +.end + =item fail =cut