logo       

Nice/src/bossa/syntax EnumDefinition.java,1.14,1.15 LocatedString.java,1.18: msg#00066

Subject: Nice/src/bossa/syntax EnumDefinition.java,1.14,1.15 LocatedString.java,1.18,1.19 analyse.nice,1.112,1.113 assign.nice,1.3,1.4 call.nice,1.3,1.4 constant.nice,1.1,1.2 increment.nice,1.2,1.3 locals.nice,1.1,1.2 new.nice,1.3,1.4 overloadedsymbol.nice,1.4,1.5 pattern.nice,1.6,1.7 super.nice,1.2,1.3 tools.nice,1.52,1.53 typecheck.nice,1.116,1.117
Update of /cvsroot/nice/Nice/src/bossa/syntax
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7665/F:/nice/src/bossa/syntax

Modified Files:
        EnumDefinition.java LocatedString.java analyse.nice 
        assign.nice call.nice constant.nice increment.nice locals.nice 
        new.nice overloadedsymbol.nice pattern.nice super.nice 
        tools.nice typecheck.nice 
Log Message:
Cleanup of nullness issues.

Index: analyse.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/analyse.nice,v
retrieving revision 1.112
retrieving revision 1.113
diff -C2 -d -r1.112 -r1.113
*** analyse.nice        7 Oct 2004 22:03:44 -0000       1.112
--- analyse.nice        13 Oct 2004 23:22:22 -0000      1.113
***************
*** 534,538 ****
              {
              CallExp res = new CallExp(function: 
createOverloadedSymbolExp(symbols, notNull(e.ident)),
!                       arguments: new Arguments([new 
Arguments.Argument(Node.thisExp)]));
                res.setLocation(e.location());
                return res;
--- 534,538 ----
              {
              CallExp res = new CallExp(function: 
createOverloadedSymbolExp(symbols, notNull(e.ident)),
!                       arguments: Arguments.singleArgument(Node.thisExp));
                res.setLocation(e.location());
                return res;

Index: pattern.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/pattern.nice,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** pattern.nice        9 Oct 2004 09:28:41 -0000       1.6
--- pattern.nice        13 Oct 2004 23:22:22 -0000      1.7
***************
*** 603,612 ****
  
        if (name[0] == '-')
!         return createPattern(ConstantExp.makeNumber(new LocatedString(name,
!                loc)));
  
        if (name[0] == '+')
!         return createPattern(ConstantExp.makeNumber(new LocatedString(
!               name.substring(1), loc)));
  
        if (name[0] == '\"')
--- 603,610 ----
  
        if (name[0] == '-')
!         return createPattern(ConstantExp.makeNumber(new LocatedString(name)));
  
        if (name[0] == '+')
!         return createPattern(ConstantExp.makeNumber(new 
LocatedString(name.substring(1))));
  
        if (name[0] == '\"')
***************
*** 618,630 ****
          let prefix = name.substring(0, (name[1] == '=') ? 2 : 1);
          return createPattern(prefix, null, ConstantExp.makeNumber(
!               new LocatedString(name.substring(prefix.length()), loc)), null, 
loc);
          }
  
        if (name[0] == '=')
!         return resolveGlobalConstants(new VariablePattern(new 
LocatedString(name.substring(1), loc), loc));
      }
  
    if (name.equals("_"))
!     return createPattern(new LocatedString("_", loc));
  
    if (name.equals("NONNULL"))
--- 616,628 ----
          let prefix = name.substring(0, (name[1] == '=') ? 2 : 1);
          return createPattern(prefix, null, ConstantExp.makeNumber(
!               new LocatedString(name.substring(prefix.length()))), null, loc);
          }
  
        if (name[0] == '=')
!         return resolveGlobalConstants(new VariablePattern(new 
LocatedString(name.substring(1)), loc));
      }
  
    if (name.equals("_"))
!     return createPattern(new LocatedString("_"));
  
    if (name.equals("NONNULL"))

Index: LocatedString.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/LocatedString.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** LocatedString.java  29 May 2003 14:17:18 -0000      1.18
--- LocatedString.java  13 Oct 2004 23:22:22 -0000      1.19
***************
*** 29,32 ****
--- 29,37 ----
    }
  
+   public LocatedString(String content)
+   {
+     this(content, Location.nowhere(), false);
+   }
+ 
    /**
     * @param content the underlying raw string

Index: typecheck.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/typecheck.nice,v
retrieving revision 1.116
retrieving revision 1.117
diff -C2 -d -r1.116 -r1.117
*** typecheck.nice      7 Oct 2004 22:03:44 -0000       1.116
--- typecheck.nice      13 Oct 2004 23:22:22 -0000      1.117
***************
*** 1058,1062 ****
      try {
      Typing.enter();
!     type.getConstraint().enter();
      Typing.leq(type.getMonotype(), PrimitiveType.sureTC);
      Typing.implies();
--- 1058,1062 ----
      try {
      Typing.enter();
!     notNull(type.getConstraint()).enter();
      Typing.leq(type.getMonotype(), PrimitiveType.sureTC);
      Typing.implies();

Index: constant.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/constant.nice,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** constant.nice       2 Sep 2004 15:46:32 -0000       1.1
--- constant.nice       13 Oct 2004 23:22:22 -0000      1.2
***************
*** 59,63 ****
  }
  
! let LocatedString voidName = new LocatedString("void", 
bossa.util.Location.nowhere());
  
  /**
--- 59,63 ----
  }
  
! let LocatedString voidName = new LocatedString("void");
  
  /**
***************
*** 88,92 ****
  }
  
! let LocatedString stringClassName =  new LocatedString("java.lang.String", 
Location.nowhere());
  
  // cf. JLS 3.10.6
--- 88,92 ----
  }
  
! let LocatedString stringClassName =  new LocatedString("java.lang.String");
  
  // cf. JLS 3.10.6
***************
*** 198,204 ****
    }
  
!   TypeConstructor getTC()
    {
!     return nice.tools.typing.Types.rawType(representedType).head();
    }
  
--- 198,204 ----
    }
  
!   ?TypeConstructor getTC()
    {
!     return notNull(nice.tools.typing.Types.rawType(representedType)).head();
    }
  

Index: tools.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/tools.nice,v
retrieving revision 1.52
retrieving revision 1.53
diff -C2 -d -r1.52 -r1.53
*** tools.nice  7 Oct 2004 22:03:44 -0000       1.52
--- tools.nice  13 Oct 2004 23:22:22 -0000      1.53
***************
*** 76,80 ****
        MethodDeclaration.enterLocalContext();
  
!       type.getConstraint.enter(true);
      }
  
--- 76,80 ----
        MethodDeclaration.enterLocalContext();
  
!       notNull(type.getConstraint).enter(true);
      }
  
***************
*** 192,195 ****
--- 192,197 ----
  LocatedString name(VarSymbol) = native VarSymbol.name;
  Arguments.Argument[] arguments(Arguments) = native Arguments.arguments;
+ Arguments Argument(List<Arguments.Argument>) = native new Arguments(List);
+ Arguments Argument(Arguments.Argument[]) = native new 
Arguments(Arguments.Argument[]);
  mlsub.typing.Polytype getType(Expression) = 
    native mlsub.typing.Polytype Expression.getType();
***************
*** 212,217 ****
  ?mlsub.typing.TypeConstructor getRuntimeTC(Pattern) = native 
mlsub.typing.TypeConstructor Pattern.getRuntimeTC();
  boolean matchesValue(Pattern, ConstantExp) = native boolean 
Pattern.matchesValue(ConstantExp);
! public ?LocatedString getName(Pattern) = native LocatedString 
Pattern.getName();
! 
  // Retypings needed since java types are not strict.
  
--- 214,230 ----
  ?mlsub.typing.TypeConstructor getRuntimeTC(Pattern) = native 
mlsub.typing.TypeConstructor Pattern.getRuntimeTC();
  boolean matchesValue(Pattern, ConstantExp) = native boolean 
Pattern.matchesValue(ConstantExp);
! ?LocatedString getName(Pattern) = native LocatedString Pattern.getName();
! ?mlsub.typing.lowlevel.Kind getKind(mlsub.typing.lowlevel.Element) = native 
mlsub.typing.lowlevel.Kind mlsub.typing.lowlevel.Element.getKind();
! ?gnu.expr.Declaration getDeclaration(Expression) = native 
gnu.expr.Declaration Expression.getDeclaration();
! ?FieldAccess getFieldAccessMethod(Expression) = native FieldAccess 
Expression.getFieldAccessMethod();
! ?FieldAccess getField(Expression) = native FieldAccess Expression.getField();
! ?mlsub.typing.Monotype Types_getTypeParameter(mlsub.typing.Polytype, int) = 
native mlsub.typing.Monotype 
nice.tools.typing.Types.getTypeParameter(mlsub.typing.Polytype, int);
! ?mlsub.typing.Monotype Types_getTypeParameter(mlsub.typing.Monotype, int) = 
native mlsub.typing.Monotype 
nice.tools.typing.Types.getTypeParameter(mlsub.typing.Monotype, int);
! mlsub.typing.Monotype[?] Types_parameters(mlsub.typing.Polytype) = native 
mlsub.typing.Monotype[] 
nice.tools.typing.Types.parameters(mlsub.typing.Polytype);
! ?mlsub.typing.TypeConstructor head(mlsub.typing.Monotype) = native 
mlsub.typing.TypeConstructor mlsub.typing.Monotype.head();
! ?ClassDefinition ClassDefinition_get(mlsub.typing.TypeConstructor) = native 
ClassDefinition ClassDefinition.get(mlsub.typing.TypeConstructor);
! ?gnu.bytecode.ClassType getSuperclass(gnu.bytecode.ClassType) = native 
gnu.bytecode.ClassType gnu.bytecode.ClassType.getSuperclass();
! int[?] getUsedArguments(Arguments, VarSymbol) = native int[] 
Arguments.getUsedArguments(VarSymbol);
! ?mlsub.typing.Constraint getConstraint(mlsub.typing.Polytype) = native 
mlsub.typing.Constraint mlsub.typing.Polytype.getConstraint();
  // Retypings needed since java types are not strict.
  

Index: locals.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/locals.nice,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** locals.nice 8 Aug 2004 21:51:54 -0000       1.1
--- locals.nice 13 Oct 2004 23:22:22 -0000      1.2
***************
*** 126,136 ****
    }
  
!   display()
!   {
!     if (left.constant)
!       return "let "+ super;
!     else
!       return "var " + super;
!   }
  }
  
--- 126,130 ----
    }
  
!   display() = (left.constant ? "let " : "var ") + super;
  }
  

Index: new.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/new.nice,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** new.nice    13 Aug 2004 21:04:41 -0000      1.3
--- new.nice    13 Oct 2004 23:22:22 -0000      1.4
***************
*** 56,64 ****
  
      // Make sure that the constructors have been created.
!     ClassDefinition definition = ClassDefinition.get(tc);
      if (definition != null)
        definition.resolve();
      
!     LinkedList<VarSymbol> constructors = TypeConstructors.getConstructors(tc);
      if (constructors == null)
        {
--- 56,64 ----
  
      // Make sure that the constructors have been created.
!     let definition = ClassDefinition.get(tc);
      if (definition != null)
        definition.resolve();
      
!     ?LinkedList<VarSymbol> constructors = 
TypeConstructors.getConstructors(tc);
      if (constructors == null)
        {
***************
*** 75,79 ****
      constructors = constructors.clone();
  
!     function = createOverloadedSymbolExp(constructors, new LocatedString("new 
" + tc, this.location()));
    }
    
--- 75,79 ----
      constructors = constructors.clone();
  
!     function = createOverloadedSymbolExp(notNull(constructors), new 
LocatedString("new " + tc, this.location()));
    }
    
***************
*** 85,89 ****
    }
  
!   toString() = "new " + ti.toString() + arguments;
  }
  
--- 85,89 ----
    }
  
!   toString() = "new " + ti + arguments;
  }
  

Index: EnumDefinition.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/EnumDefinition.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** EnumDefinition.java 2 Sep 2004 15:46:32 -0000       1.14
--- EnumDefinition.java 13 Oct 2004 23:22:22 -0000      1.15
***************
*** 60,64 ****
  
          Statement body = 
bossa.syntax.dispatch.createReturnStmt(bossa.syntax.dispatch.createLiteralArrayExp(exps),
 true);
!         LocatedString mName = new LocatedString("family", 
bossa.util.Location.nowhere());
          Definition mBodyDef = new MethodBodyDefinition(impl, mName, null,
                                new LinkedList(), body);
--- 60,64 ----
  
          Statement body = 
bossa.syntax.dispatch.createReturnStmt(bossa.syntax.dispatch.createLiteralArrayExp(exps),
 true);
!         LocatedString mName = new LocatedString("family");
          Definition mBodyDef = new MethodBodyDefinition(impl, mName, null,
                                new LinkedList(), body);

Index: assign.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/assign.nice,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** assign.nice 2 Sep 2004 19:12:09 -0000       1.3
--- assign.nice 13 Oct 2004 23:22:22 -0000      1.4
***************
*** 39,43 ****
  {
    // Rewrite "get(e, i, ...) = v" into "set(e, i, ... , v)"
!   if (to instanceof CallExp && "get".equals(notNull(to.function).toString()))
      {
        List<Arguments.Argument> args = new ArrayList(to.arguments.arguments);
--- 39,43 ----
  {
    // Rewrite "get(e, i, ...) = v" into "set(e, i, ... , v)"
!   if (to instanceof CallExp && "get".equals(to.function.toString()))
      {
        List<Arguments.Argument> args = new ArrayList(to.arguments.arguments);
***************
*** 45,50 ****
  
        return createCallExp(
!       new IdentExp(new LocatedString("set", notNull(to.function).location())),
!         new Arguments(args.toArray()));
      }  
  
--- 45,50 ----
  
        return createCallExp(
!       new IdentExp(new LocatedString("set", to.function.location())),
!         new Arguments(args));
      }  
  

Index: super.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/super.nice,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** super.nice  7 Aug 2004 14:20:29 -0000       1.2
--- super.nice  13 Oct 2004 23:22:22 -0000      1.3
***************
*** 122,126 ****
          mlsub.typing.Monotype[] m = monotype.domain();
          List<mlsub.typing.AtomicConstraint> newAtoms = new ArrayList();
!         mlsub.typing.AtomicConstraint[?] oldAtoms = 
type.getConstraint().atoms();
         
          if (oldAtoms != null)
--- 122,126 ----
          mlsub.typing.Monotype[] m = monotype.domain();
          List<mlsub.typing.AtomicConstraint> newAtoms = new ArrayList();
!         mlsub.typing.AtomicConstraint[?] oldAtoms = 
notNull(type.getConstraint()).atoms();
         
          if (oldAtoms != null)
***************
*** 149,153 ****
          }
  
!         constraint = new 
mlsub.typing.Constraint(type.getConstraint().binders(), 
                        new 
mlsub.typing.AtomicConstraint[newAtoms.size()].fillWith(newAtoms));
  
--- 149,153 ----
          }
  
!         constraint = new 
mlsub.typing.Constraint(notNull(type.getConstraint()).binders(), 
                        new 
mlsub.typing.AtomicConstraint[newAtoms.size()].fillWith(newAtoms));
  
***************
*** 170,174 ****
        // the base method), a call to super is emited.
        {
!         let NiceClass nc = 
cast(ClassDefinition.get(notNull(currentMethod).firstArgument()).implementation);
          code = nc.callSuperMethod(notNull(superMethod));
        }
--- 170,174 ----
        // the base method), a call to super is emited.
        {
!         let NiceClass nc = 
cast(notNull(ClassDefinition.get(notNull(currentMethod).firstArgument())).implementation);
          code = nc.callSuperMethod(notNull(superMethod));
        }

Index: overloadedsymbol.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/overloadedsymbol.nice,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** overloadedsymbol.nice       13 Aug 2004 21:04:41 -0000      1.4
--- overloadedsymbol.nice       13 Oct 2004 23:22:22 -0000      1.5
***************
*** 574,578 ****
  }
  
! private Domain domain(mlsub.typing.Polytype t, int[] usedArguments)
  {
    // remove nullness marker
--- 574,578 ----
  }
  
! private Domain domain(mlsub.typing.Polytype t, int[?] usedArguments)
  {
    // remove nullness marker

Index: increment.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/increment.nice,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** increment.nice      13 Aug 2004 21:04:41 -0000      1.2
--- increment.nice      13 Oct 2004 23:22:22 -0000      1.3
***************
*** 42,63 ****
  
      // variable is not a local variable, so it must be a field
!     ?CallExp call = null;
!     if (variable instanceof CallExp)
!       call = cast(variable);
!     
!     if (call == null)
        Internal.error(this, "\"var\" is assignable and not a local, " +
                     "so it should be a call to a FieldAccessMethod");
  
!     let access = notNull(call).function.getFieldAccessMethod();
      if (access == null)
        Internal.error(this, "\"var\" is assignable and not a local, " +
                     "so it should be a call to a FieldAccessMethod");
  
!     if (access.isFinal())
        User.error(this, "Field " + access + " is final");
  
!     return NiceUtils.doInline(new 
nice.tools.code.IncrementProc(access.fieldDecl, returnOld, increment),
!               notNull(call).arguments.getExp(0).generateCode());
    }
  
--- 42,61 ----
  
      // variable is not a local variable, so it must be a field
!     if (! (variable instanceof CallExp))
        Internal.error(this, "\"var\" is assignable and not a local, " +
                     "so it should be a call to a FieldAccessMethod");
  
!     CallExp call = cast(variable);
! 
!     let access = call.function.getFieldAccessMethod();
      if (access == null)
        Internal.error(this, "\"var\" is assignable and not a local, " +
                     "so it should be a call to a FieldAccessMethod");
  
!     if (notNull(access).isFinal())
        User.error(this, "Field " + access + " is final");
  
!     return NiceUtils.doInline(new 
nice.tools.code.IncrementProc(notNull(access).fieldDecl, returnOld, increment),
!               call.arguments.getExp(0).generateCode());
    }
  

Index: call.nice
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/call.nice,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** call.nice   11 Aug 2004 12:34:30 -0000      1.3
--- call.nice   13 Oct 2004 23:22:22 -0000      1.4
***************
*** 156,160 ****
      gnu.expr.Expression res;
      if (function.isFieldAccess())
!       res = 
function.getFieldAccessMethod().compileAccess(this.compileParams());
      else
        res = new gnu.expr.ApplyExp(function.generateCodeInCallPosition(), 
this.compileParams());
--- 156,160 ----
      gnu.expr.Expression res;
      if (function.isFieldAccess())
!       res = 
notNull(function.getFieldAccessMethod()).compileAccess(this.compileParams());
      else
        res = new gnu.expr.ApplyExp(function.generateCodeInCallPosition(), 
this.compileParams());
***************
*** 198,202 ****
        Internal.error(this, "Assignment to a call that is not a field access");
  
!     FieldAccess access = function.getFieldAccessMethod();
  
      if (access.isFinal())
--- 198,202 ----
        Internal.error(this, "Assignment to a call that is not a field access");
  
!     FieldAccess access = notNull(function.getFieldAccessMethod());
  
      if (access.isFinal())



-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
science.linguis...    culture.sf.lite...    video.mplayer.c...    yellowdog.gener...    ietf.rfc822/199...    emacs.help/2002...    redhat.release....    kernel.speakup/...    java.openejb.de...    debian.devel.gt...    xfree86.newbie/...    bug-tracking.ma...    pam/2003-05/msg...    games.devel.ope...    user-groups.lin...    music.pancham/2...    network.mq.deve...    web.html.genera...    arklinux.bugs/2...    linux.ecasound/...    qnx.openqnx.dev...    org.user-groups...    file-systems.sf...    trustix.contrib...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe