Changeset 3105

Show
Ignore:
Timestamp:
11/26/08 09:11:34 (12 months ago)
Author:
sukyoungryu
Message:

[ast refactoring] Working on Param classes.

Location:
trunk/ProjectFortress
Files:
12 modified

Legend:

Unmodified
Added
Removed
  • trunk/ProjectFortress/astgen/Fortress.ast

    r3104 r3105  
    666666                 * e.g.) x: String... 
    667667                 */ 
    668                 VarargsParam(Type type); 
     668                VarargsParam(Option<Type> varargsType = Option.<Type>none()); 
    669669            /** 
    670670             * expression 
  • trunk/ProjectFortress/src/com/sun/fortress/compiler/typechecker/InferenceVarInserter.java

    r3095 r3105  
    3333import com.sun.fortress.nodes.StaticParam; 
    3434import com.sun.fortress.nodes.Type; 
    35 import com.sun.fortress.nodes.VarargsParam; 
    3635import com.sun.fortress.nodes.WhereClause; 
    3736import com.sun.fortress.nodes_util.NodeFactory; 
  • trunk/ProjectFortress/src/com/sun/fortress/compiler/typechecker/TypeChecker.java

    r3102 r3105  
    255255                                                        int to_add = arg_size - typeCount; 
    256256                                                        while( to_add > 0 ) { 
    257                                                                 arg0.add(((VarargsParam)arg1).getType()); 
     257                                                            arg0.add(((VarargsParam)arg1).getVarargsType().unwrap()); 
    258258                                                                to_add--; 
    259259                                                        } 
     
    620620 
    621621                                                                        @Override 
    622                                                                         public Type forVarargsParam(VarargsParam that) { return that.getType(); } 
     622                                                                        public Type forVarargsParam(VarargsParam that) { return that.getVarargsType().unwrap(); } 
    623623                                                                }); 
    624624 
     
    23892389                        if(p instanceof VarargsParam){ 
    23902390                                VarargsParam v = (VarargsParam) p; 
    2391                                 dlist.add(v.getType()); 
     2391                                dlist.add(v.getVarargsType().unwrap()); 
    23922392                                varargs=true; 
    23932393                        } 
  • trunk/ProjectFortress/src/com/sun/fortress/compiler/typechecker/TypeEnv.java

    r3099 r3105  
    141141            VarargsParam _param = (VarargsParam) param; 
    142142 
    143             Type result = Types.makeVarargsParamType(_param.getType()); 
     143            Type result = Types.makeVarargsParamType(_param.getVarargsType().unwrap()); 
    144144            return some(result); 
    145145        } 
     
    185185            } else { // We have a varargs param. 
    186186                VarargsParam _param = (VarargsParam) param; 
    187                 varargsType = some(_param.getType()); 
     187                varargsType = some(_param.getVarargsType().unwrap()); 
    188188            } 
    189189        } 
  • trunk/ProjectFortress/src/com/sun/fortress/interpreter/evaluator/EvalType.java

    r3081 r3105  
    175175            } 
    176176            else { // in_p instanceof VarargsParam 
    177                 ptype = FTypeRest.make(e.getFType(((VarargsParam)in_p).getType())); 
     177                ptype = FTypeRest.make(e.getFType(((VarargsParam)in_p).getVarargsType().unwrap())); 
    178178            } 
    179179            Parameter fp = new Parameter(pname, ptype, NodeUtil.isMutable(in_p)); 
  • trunk/ProjectFortress/src/com/sun/fortress/interpreter/evaluator/EvaluatorBase.java

    r3095 r3105  
    238238                    } 
    239239                } else { // p instanceof VarargsParam 
    240                     Type ty = ((VarargsParam) p).getType(); 
     240                    Type ty = ((VarargsParam) p).getVarargsType().unwrap(); 
    241241                    if (DUMP_INFERENCE) 
    242242                        System.err.println("Unifying "+at+" and vararg type "+ty); 
  • trunk/ProjectFortress/src/com/sun/fortress/interpreter/rewrite/DesugarerVisitor.java

    r3099 r3105  
    110110import com.sun.fortress.nodes.FnRef; 
    111111import com.sun.fortress.nodes.VarType; 
    112 import com.sun.fortress.nodes.VarargsParam; 
    113112import com.sun.fortress.nodes.WhereConstraint; 
    114113import com.sun.fortress.nodes.While; 
  • trunk/ProjectFortress/src/com/sun/fortress/nodes_util/ErrorMsgMaker.java

    r3096 r3105  
    335335        sb.append(NodeUtil.nameString(node.getName())); 
    336336        sb.append(":"); 
    337         sb.append(node.getType().accept(this)); 
     337        sb.append(node.getVarargsType().unwrap().accept(this)); 
    338338        sb.append("..."); 
    339339 
  • trunk/ProjectFortress/src/com/sun/fortress/nodes_util/NodeComparator.java

    r3095 r3105  
    215215        } 
    216216        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()); 
    218218        } 
    219219        if (x != 0) return x; 
  • trunk/ProjectFortress/src/com/sun/fortress/nodes_util/NodeFactory.java

    r3102 r3105  
    953953 
    954954    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)); 
    956957    } 
    957958 
    958959    public static VarargsParam makeVarargsParam(VarargsParam param, List<Modifier> mods) { 
    959         return new VarargsParam(param.getSpan(), mods, param.getName(), param.getType()); 
     960        return new VarargsParam(param.getSpan(), mods, param.getName(), param.getVarargsType()); 
    960961    } 
    961962 
    962963    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)); 
    965966    } 
    966967 
  • trunk/ProjectFortress/src/com/sun/fortress/syntax_abstractions/phases/Transform.java

    r3095 r3105  
    317317                    return new NormalParam(that.getSpan(), mods_result, generatedId, type_result, defaultExpr_result); 
    318318                } 
    319                 public Node forVarargsParamOnly(VarargsParam that, List<Modifier> mods_result, Id name_result, Type type_result) { 
     319                public Node forVarargsParamOnly(VarargsParam that, List<Modifier> mods_result, Id name_result, Option<Type> type_result) { 
    320320                    Debug.debug( Debug.Type.SYNTAX, 2, "Varargs param id hash code " + name_result.generateHashCode() ); 
    321321                    Id old = (Id) name_result.accept(transformer); 
  • trunk/ProjectFortress/src/com/sun/fortress/tools/FortressAstToConcrete.java

    r3101 r3105  
    705705                                                List<String> mods_result, 
    706706                                                String name_result, 
    707                                                 String type_result) { 
     707                                                Option<String> type_result) { 
    708708        StringBuilder s = new StringBuilder(); 
    709709 
     
    712712        } 
    713713        s.append( name_result ); 
    714         s.append( handleType(type_result) ); 
     714        s.append( handleType(type_result.unwrap()) ); 
    715715        s.append( "..." ); 
    716716