aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/interp/i-analy.boot10
2 files changed, 14 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index cc5e60bc..9a81c214 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-18 Gabriel Dos Reis <gdr@cse.tamu.edu>
+
+ * interp/i-analy.boot (bottomUpDefaultEval): A declared variable
+ with no definition may be a symbolic variable with a specified type.
+
2009-05-18 Gabriel Dos Reis <gdr@cs.tamu.edu>
* algebra/curve.spad.pamphlet: Use literal symbols.
diff --git a/src/interp/i-analy.boot b/src/interp/i-analy.boot
index 35c0ae0f..22dd4389 100644
--- a/src/interp/i-analy.boot
+++ b/src/interp/i-analy.boot
@@ -1,6 +1,6 @@
-- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd.
-- All rights reserved.
--- Copyright (C) 2007-2008, Gabriel Dos Reis.
+-- Copyright (C) 2007-2009, Gabriel Dos Reis.
-- All rights reserved.
--
-- Redistribution and use in source and binary forms, with or without
@@ -429,6 +429,14 @@ bottomUpDefaultEval(t,id,defaultMode,target,isSub) ==
(val := coerceInteractive(objNewWrap(id,['Variable,id]),m)) =>
putValue(t,val)
[m]
+
+ -- Hmm, assume it is a symbolic variable with a user-supplied type.
+ m' := ["Expression",m]
+ val := coerceInteractive(objNewWrap(id,$Symbol),m') =>
+ putValue(t,val)
+ putMode(t, m')
+ [m']
+
-- give up
throwKeyedMsg('"S2IB0004",[id,m])