Changeset 783
- Timestamp:
- 09/20/07 23:36:52 (1 year ago)
- Files:
-
- trunk/descent.core/src/descent/core/compiler/IProblem.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/BinExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ExpStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/ForeachStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/Problem.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/ProblemMessages.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/ProblemMessages.properties (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateDeclaration.java (modified) (1 diff)
- trunk/descent.core/template/problem/problems.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/descent.core/src/descent/core/compiler/IProblem.java
r777 r783 367 367 int OutCannotBeFinal = 157; 368 368 int ScopeCannotBeRefOrOut = 158; 369 int IncompatibleTypeForOperator = 159; 369 370 370 371 } trunk/descent.core/src/descent/internal/compiler/parser/BinExp.java
r782 r783 9 9 import static descent.internal.compiler.parser.Constfold.Equal; 10 10 11 import java.awt.image.ImageProducer; 11 12 import java.math.BigInteger; 12 13 13 14 import org.eclipse.core.runtime.Assert; 14 15 16 import descent.core.compiler.IProblem; 15 17 import descent.internal.compiler.parser.Constfold.BinExp_fp; 16 18 … … 127 129 128 130 public void incompatibleTypes(SemanticContext context) { 129 error("incompatible types for ((%s) %s (%s)): '%s' and '%s'", e1 130 .toChars(context), op.toString(), e2.toChars(context), e1.type 131 .toChars(context), e2.type.toChars(context)); 131 context.acceptProblem(Problem.newSemanticTypeError(IProblem.IncompatibleTypeForOperator, 0, e1.start, e2.start + e2.length - e1.start, new String[] { e1.type.toChars(context), e2.type.toChars(context), op.toString() })); 132 132 } 133 133 trunk/descent.core/src/descent/internal/compiler/parser/ExpStatement.java
r775 r783 91 91 exp.checkSideEffect(0, context); 92 92 exp = exp.optimize(0, context); 93 sourceExp.setBinding(exp); 93 94 } 94 95 95 sourceExp.setBinding(exp);96 96 return this; 97 97 } trunk/descent.core/src/descent/internal/compiler/parser/ForeachStatement.java
r768 r783 414 414 415 415 // Resolve any forward referenced goto's 416 for (int j = 0; j < gotos.size(); j++) { 417 CompoundStatement cs = (CompoundStatement) gotos.get(j); 418 GotoStatement gs = (GotoStatement) cs.statements.get(0); 419 420 if (gs.label.statement == null) { // 'Promote' it to this scope, and replace with a return 421 cases.add(gs); 422 s[0] = new ReturnStatement(loc, new IntegerExp(loc, cases 423 .size() + 1)); 424 cs.statements.set(0, s[0]); 416 if (gotos != null) { 417 for (int j = 0; j < gotos.size(); j++) { 418 CompoundStatement cs = (CompoundStatement) gotos.get(j); 419 GotoStatement gs = (GotoStatement) cs.statements.get(0); 420 421 if (gs.label.statement == null) { // 'Promote' it to this scope, and replace with a return 422 cases.add(gs); 423 s[0] = new ReturnStatement(loc, new IntegerExp(loc, cases 424 .size() + 1)); 425 cs.statements.set(0, s[0]); 426 } 425 427 } 426 428 } trunk/descent.core/src/descent/internal/compiler/parser/Problem.java
r777 r783 412 412 case ScopeCannotBeRefOrOut: 413 413 return String.format(ProblemMessages.ScopeCannotBeRefOrOut); 414 case IncompatibleTypeForOperator: 415 return String.format(ProblemMessages.IncompatibleTypeForOperator, arguments[0], arguments[1], arguments[2]); 414 416 default: 415 417 return ""; trunk/descent.core/src/descent/internal/compiler/parser/ProblemMessages.java
r777 r783 169 169 public static String OutCannotBeFinal; 170 170 public static String ScopeCannotBeRefOrOut; 171 public static String IncompatibleTypeForOperator; 171 172 172 173 static { trunk/descent.core/src/descent/internal/compiler/parser/ProblemMessages.properties
r777 r783 157 157 OutCannotBeFinal=<<TODO>> 158 158 ScopeCannotBeRefOrOut=<<TODO>> 159 IncompatibleTypeForOperator=Types %1$s and %2$s are incompatible for %3$s trunk/descent.core/src/descent/internal/compiler/parser/TemplateDeclaration.java
r781 r783 388 388 if (parameters != null) { 389 389 p = new TemplateParameters(); 390 p. ensureCapacity(parameters.size());390 p.setDim(parameters.size()); 391 391 for (int i = 0; i < p.size(); i++) { 392 392 TemplateParameter tp = parameters.get(i); trunk/descent.core/template/problem/problems.txt
r777 r783 473 473 formatString=<<TODO>> 474 474 numArgs=0 475 IncompatibleTypeForOperator 476 formatString=Types %1$s and %2$s are incompatible for %3$s 477 numArgs=3 475 478 476 477 478 479 479 480 481 482 483 484
