Changeset 3105
- Timestamp:
- 11/26/08 09:11:34 (12 months ago)
- Location:
- trunk/ProjectFortress
- Files:
-
- 12 modified
-
astgen/Fortress.ast (modified) (1 diff)
-
src/com/sun/fortress/compiler/typechecker/InferenceVarInserter.java (modified) (1 diff)
-
src/com/sun/fortress/compiler/typechecker/TypeChecker.java (modified) (3 diffs)
-
src/com/sun/fortress/compiler/typechecker/TypeEnv.java (modified) (2 diffs)
-
src/com/sun/fortress/interpreter/evaluator/EvalType.java (modified) (1 diff)
-
src/com/sun/fortress/interpreter/evaluator/EvaluatorBase.java (modified) (1 diff)
-
src/com/sun/fortress/interpreter/rewrite/DesugarerVisitor.java (modified) (1 diff)
-
src/com/sun/fortress/nodes_util/ErrorMsgMaker.java (modified) (1 diff)
-
src/com/sun/fortress/nodes_util/NodeComparator.java (modified) (1 diff)
-
src/com/sun/fortress/nodes_util/NodeFactory.java (modified) (1 diff)
-
src/com/sun/fortress/syntax_abstractions/phases/Transform.java (modified) (1 diff)
-
src/com/sun/fortress/tools/FortressAstToConcrete.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ProjectFortress/astgen/Fortress.ast
r3104 r3105 666 666 * e.g.) x: String... 667 667 */ 668 VarargsParam( Type type);668 VarargsParam(Option<Type> varargsType = Option.<Type>none()); 669 669 /** 670 670 * expression -
trunk/ProjectFortress/src/com/sun/fortress/compiler/typechecker/InferenceVarInserter.java
r3095 r3105 33 33 import com.sun.fortress.nodes.StaticParam; 34 34 import com.sun.fortress.nodes.Type; 35 import com.sun.fortress.nodes.VarargsParam;36 35 import com.sun.fortress.nodes.WhereClause; 37 36 import com.sun.fortress.nodes_util.NodeFactory; -
trunk/ProjectFortress/src/com/sun/fortress/compiler/typechecker/TypeChecker.java
r3102 r3105 255 255 int to_add = arg_size - typeCount; 256 256 while( to_add > 0 ) { 257 arg0.add(((VarargsParam)arg1).getType());257 arg0.add(((VarargsParam)arg1).getVarargsType().unwrap()); 258 258 to_add--; 259 259 } … … 620 620 621 621 @Override 622 public Type forVarargsParam(VarargsParam that) { return that.get Type(); }622 public Type forVarargsParam(VarargsParam that) { return that.getVarargsType().unwrap(); } 623 623 }); 624 624 … … 2389 2389 if(p instanceof VarargsParam){ 2390 2390 VarargsParam v = (VarargsParam) p; 2391 dlist.add(v.get Type());2391 dlist.add(v.getVarargsType().unwrap()); 2392 2392 varargs=true; 2393 2393 } -
trunk/ProjectFortress/src/com/sun/fortress/compiler/typechecker/TypeEnv.java
r3099 r3105 141 141 VarargsParam _param = (VarargsParam) param; 142 142 143 Type result = Types.makeVarargsParamType(_param.get Type());143 Type result = Types.makeVarargsParamType(_param.getVarargsType().unwrap()); 144 144 return some(result); 145 145 } … … 185 185 } else { // We have a varargs param. 186 186 VarargsParam _param = (VarargsParam) param; 187 varargsType = some(_param.get Type());187 varargsType = some(_param.getVarargsType().unwrap()); 188 188 } 189 189 } -
trunk/ProjectFortress/src/com/sun/fortress/interpreter/evaluator/EvalType.java
r3081 r3105 175 175 } 176 176 else { // in_p instanceof VarargsParam 177 ptype = FTypeRest.make(e.getFType(((VarargsParam)in_p).get Type()));177 ptype = FTypeRest.make(e.getFType(((VarargsParam)in_p).getVarargsType().unwrap())); 178 178 } 179 179 Parameter fp = new Parameter(pname, ptype, NodeUtil.isMutable(in_p)); -
trunk/ProjectFortress/src/com/sun/fortress/interpreter/evaluator/EvaluatorBase.java
r3095 r3105 238 238 } 239 239 } else { // p instanceof VarargsParam 240 Type ty = ((VarargsParam) p).get Type();240 Type ty = ((VarargsParam) p).getVarargsType().unwrap(); 241 241 if (DUMP_INFERENCE) 242 242 System.err.println("Unifying "+at+" and vararg type "+ty); -
trunk/ProjectFortress/src/com/sun/fortress/interpreter/rewrite/DesugarerVisitor.java
r3099 r3105 110 110 import com.sun.fortress.nodes.FnRef; 111 111 import com.sun.fortress.nodes.VarType; 112 import com.sun.fortress.nodes.VarargsParam;113 112 import com.sun.fortress.nodes.WhereConstraint; 114 113 import com.sun.fortress.nodes.While; -
trunk/ProjectFortress/src/com/sun/fortress/nodes_util/ErrorMsgMaker.java
r3096 r3105 335 335 sb.append(NodeUtil.nameString(node.getName())); 336 336 sb.append(":"); 337 sb.append(node.get Type().accept(this));337 sb.append(node.getVarargsType().unwrap().accept(this)); 338 338 sb.append("..."); 339 339 -
trunk/ProjectFortress/src/com/sun/fortress/nodes_util/NodeComparator.java
r3095 r3105 215 215 } 216 216 if ((left instanceof VarargsParam) && (right instanceof VarargsParam)) { 217 x = compare (((VarargsParam)left).getType(), ((VarargsParam)right).getType());217 x = compareOptionalType(((VarargsParam)left).getVarargsType(), ((VarargsParam)right).getVarargsType()); 218 218 } 219 219 if (x != 0) return x; -
trunk/ProjectFortress/src/com/sun/fortress/nodes_util/NodeFactory.java
r3102 r3105 953 953 954 954 public static VarargsParam makeVarargsParam(Id name, Type type) { 955 return new VarargsParam(name.getSpan(), Collections.<Modifier>emptyList(), name, type); 955 return new VarargsParam(name.getSpan(), Collections.<Modifier>emptyList(), 956 name, Option.<Type>some(type)); 956 957 } 957 958 958 959 public static VarargsParam makeVarargsParam(VarargsParam param, List<Modifier> mods) { 959 return new VarargsParam(param.getSpan(), mods, param.getName(), param.get Type());960 return new VarargsParam(param.getSpan(), mods, param.getName(), param.getVarargsType()); 960 961 } 961 962 962 963 public static VarargsParam makeVarargsParam(Span span, List<Modifier> mods, 963 Id name, Type type) {964 return new VarargsParam(span, mods, name, type);964 Id name, Type type) { 965 return new VarargsParam(span, mods, name, Option.<Type>some(type)); 965 966 } 966 967 -
trunk/ProjectFortress/src/com/sun/fortress/syntax_abstractions/phases/Transform.java
r3095 r3105 317 317 return new NormalParam(that.getSpan(), mods_result, generatedId, type_result, defaultExpr_result); 318 318 } 319 public Node forVarargsParamOnly(VarargsParam that, List<Modifier> mods_result, Id name_result, Typetype_result) {319 public Node forVarargsParamOnly(VarargsParam that, List<Modifier> mods_result, Id name_result, Option<Type> type_result) { 320 320 Debug.debug( Debug.Type.SYNTAX, 2, "Varargs param id hash code " + name_result.generateHashCode() ); 321 321 Id old = (Id) name_result.accept(transformer); -
trunk/ProjectFortress/src/com/sun/fortress/tools/FortressAstToConcrete.java
r3101 r3105 705 705 List<String> mods_result, 706 706 String name_result, 707 Stringtype_result) {707 Option<String> type_result) { 708 708 StringBuilder s = new StringBuilder(); 709 709 … … 712 712 } 713 713 s.append( name_result ); 714 s.append( handleType(type_result ) );714 s.append( handleType(type_result.unwrap()) ); 715 715 s.append( "..." ); 716 716

