Changeset 1154
- Timestamp:
- 05/03/08 00:08:26 (2 months ago)
- Files:
-
- trunk/descent.core/src/descent/internal/codeassist/CompletionEngine.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/lookup/ModuleBuilder.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/lookup/SemanticRest.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ASTDmdNode.java (modified) (14 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/AddrExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/AggregateDeclaration.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/AliasDeclaration.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/AndAndExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/AnonDeclaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/ArrayExp.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ArrayInitializer.java (modified) (7 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ArrayLiteralExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/AssertExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/AssignExp.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/AssocArrayLiteralExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/BaseClass.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/BinExp.java (modified) (11 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/BreakStatement.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CallExp.java (modified) (9 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CaseStatement.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CastExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/CatAssignExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CatExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/Catch.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ClassDeclaration.java (modified) (10 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CmpExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CompileDeclaration.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CompileExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CompileStatement.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CompoundStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/CondExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/Constfold.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ContinueStatement.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/CtorDeclaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/DebugSymbol.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/Declaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/DeclarationExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/DefaultStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/DelegateExp.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/DeleteDeclaration.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/DeleteExp.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/DotIdExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/DotTemplateInstanceExp.java (modified) (5 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/DotVarExp.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/Dsymbol.java (modified) (5 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/DsymbolExp.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/DtorDeclaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/EnumDeclaration.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/EqualExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/Expression.java (modified) (14 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/FileExp.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ForeachRangeStatement.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ForeachStatement.java (modified) (17 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/FuncDeclaration.java (modified) (27 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/GotoCaseStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/GotoDefaultStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/GotoStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/IdentifierExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/IftypeCondition.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/Import.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/InExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/IndexExp.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/Initializer.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/IntegerExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/InterfaceDeclaration.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/InvariantDeclaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/IsExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/LabelStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/MinExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/ModExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/Module.java (modified) (8 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/NewDeclaration.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/NewExp.java (modified) (11 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/OrOrExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/Package.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/PragmaDeclaration.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/PragmaStatement.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/PtrExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/ReturnStatement.java (modified) (6 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ScopeDsymbol.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/SemanticContext.java (modified) (6 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/SemanticMixin.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/ShlExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/SliceExp.java (modified) (5 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/StaticAssert.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/StaticIfCondition.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/StringExp.java (modified) (12 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/StructDeclaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/StructInitializer.java (modified) (5 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/StructLiteralExp.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/SuperExp.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/SwitchStatement.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/SymOffExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/SynchronizedStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateAliasParameter.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateDeclaration.java (modified) (7 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateInstance.java (modified) (16 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateMixin.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateTupleParameter.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateTypeParameter.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateValueParameter.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ThisExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ThrowStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TraitsExp.java (modified) (12 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TryCatchStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TupleExp.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/Type.java (modified) (6 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeAArray.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeClass.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeDArray.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeEnum.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeFunction.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeIdentifier.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeInstance.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TypePointer.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeQualified.java (modified) (7 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeReference.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeSArray.java (modified) (9 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeSlice.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeStruct.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeTuple.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeTypedef.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeTypeof.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypedefDeclaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/UnrolledLoopStatement.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/VarDeclaration.java (modified) (10 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/VarExp.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/VersionCondition.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/VersionSymbol.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/VoidInitializer.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/WithStatement.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/descent.core/src/descent/internal/codeassist/CompletionEngine.java
r1149 r1154 2215 2215 proposal.setReplaceRange(this.startPosition - this.offset, this.endPosition - this.offset); 2216 2216 proposal.isAlias = isAliased; 2217 2217 2218 CompletionEngine.this.requestor.accept(proposal); 2218 2219 trunk/descent.core/src/descent/internal/compiler/lookup/ModuleBuilder.java
r1141 r1154 87 87 88 88 /* 89 * Wether to make surface Module semantic. 90 */ 91 public boolean LAZY_MODULES = LAZY & true; 92 93 /* 89 94 * Wether to make surface ClassDeclaration semantic lazy. 90 95 */ … … 130 135 * Currently doesn't work. 131 136 */ 132 p rivate final static boolean LAZY_VARS = LAZY & true;137 public boolean LAZY_VARS = LAZY & true; 133 138 134 139 /* … … 174 179 this.config = config; 175 180 this.encoder = encoder; 181 182 switch(config.semanticAnalysisLevel) { 183 case 0: // None 184 LAZY_MODULES = LAZY & true; 185 LAZY_VARS = LAZY & true; 186 break; 187 case 1: // Some 188 case 2: // All 189 LAZY_MODULES = false; 190 LAZY_VARS = false; 191 break; 192 } 176 193 } 177 194 … … 186 203 module.moduleName = unit.getFullyQualifiedName(); 187 204 188 try { 189 IPackageDeclaration[] packageDeclarations = unit.getPackageDeclarations(); 190 if (packageDeclarations.length == 1) { 191 String elementName = packageDeclarations[0].getElementName(); 192 Identifiers packages = new Identifiers(); 193 IdentifierExp name = splitName(elementName, packages); 194 module.md = new ModuleDeclaration(packages, name); 195 } 196 197 State state = new State(); 198 199 module.members = new Dsymbols(); 200 fill(module, module.members, unit.getChildren(), state); 201 202 state.surface = false; 203 } catch (JavaModelException e) { 204 e.printStackTrace(); 205 Util.log(e); 206 return null; 205 if (LAZY_MODULES) { 206 module.setJavaElement(unit); 207 module.rest = new SemanticRest(new Runnable() { 208 public void run() { 209 try { 210 IPackageDeclaration[] packageDeclarations = unit.getPackageDeclarations(); 211 if (packageDeclarations.length == 1) { 212 String elementName = packageDeclarations[0].getElementName(); 213 Identifiers packages = new Identifiers(); 214 IdentifierExp name = splitName(elementName, packages); 215 module.md = new ModuleDeclaration(packages, name); 216 } 217 218 State state = new State(); 219 220 module.members = new Dsymbols(); 221 fill(module, module.members, unit.getChildren(), state); 222 223 state.surface = false; 224 } catch (JavaModelException e) { 225 Util.log(e); 226 } 227 } 228 }); 229 module.rest.skipScopeCheck = true; 230 } else { 231 try { 232 IPackageDeclaration[] packageDeclarations = unit.getPackageDeclarations(); 233 if (packageDeclarations.length == 1) { 234 String elementName = packageDeclarations[0].getElementName(); 235 Identifiers packages = new Identifiers(); 236 IdentifierExp name = splitName(elementName, packages); 237 module.md = new ModuleDeclaration(packages, name); 238 } 239 240 State state = new State(); 241 242 module.members = new Dsymbols(); 243 fill(module, module.members, unit.getChildren(), state); 244 245 state.surface = false; 246 } catch (JavaModelException e) { 247 Util.log(e); 248 return null; 249 } 207 250 } 208 251 trunk/descent.core/src/descent/internal/compiler/lookup/SemanticRest.java
r1124 r1154 12 12 private boolean structureKnown; 13 13 private final Runnable runnable; 14 15 public boolean skipScopeCheck; 14 16 15 17 public SemanticRest(Runnable runnable) { … … 42 44 43 45 public void consume(Dsymbol symbol) { 44 if (sc == null ) {46 if (sc == null && !skipScopeCheck) { 45 47 return; 46 48 } trunk/descent.core/src/descent/internal/compiler/parser/ASTDmdNode.java
r1141 r1154 482 482 } 483 483 } else { 484 context.acceptProblem(Problem.newSemanticTypeError( 485 IProblem.DivisionByZero, d)); 484 if (context.acceptsProblems()) { 485 context.acceptProblem(Problem.newSemanticTypeError( 486 IProblem.DivisionByZero, d)); 487 } 486 488 break; 487 489 } … … 558 560 559 561 else if (e.op == TOKdotexp) { 560 context.acceptProblem(Problem.newSemanticTypeError( 561 IProblem.SymbolHasNoValue, e, 562 new String[] { e.toChars(context) })); 562 if (context.acceptsProblems()) { 563 context.acceptProblem(Problem.newSemanticTypeError( 564 IProblem.SymbolHasNoValue, e, 565 new String[] { e.toChars(context) })); 566 } 563 567 } 564 568 } … … 618 622 if (d.prot() == PROTprivate && d.getModule() != sc.module 619 623 || d.prot() == PROTpackage && !hasPackageAccess(sc, d)) { 620 context.acceptProblem(Problem.newSemanticTypeError(IProblem.SymbolIsNotAccessible, this, new String[] { d.kind(), d 621 .getModule().toChars(context), d.toChars(context), 622 sc.module.toChars(context) })); 624 if (context.acceptsProblems()) { 625 context.acceptProblem(Problem.newSemanticTypeError(IProblem.SymbolIsNotAccessible, this, new String[] { d.kind(), d 626 .getModule().toChars(context), d.toChars(context), 627 sc.module.toChars(context) })); 628 } 623 629 } 624 630 } else if (e.type.ty == Tclass) { // Do access check … … 759 765 760 766 if (nargs > nparams && tf.varargs == 0) { 761 context.acceptProblem(Problem.newSemanticTypeError( 762 IProblem.ExpectedNumberArguments, this, new String[] { String.valueOf(nparams), String.valueOf(nargs) })); 767 if (context.acceptsProblems()) { 768 context.acceptProblem(Problem.newSemanticTypeError( 769 IProblem.ExpectedNumberArguments, this, new String[] { String.valueOf(nparams), String.valueOf(nargs) })); 770 } 763 771 } 764 772 … … 786 794 } 787 795 if (!gotoL2) { 788 context.acceptProblem(Problem.newSemanticTypeError( 789 IProblem.ExpectedNumberArguments, this, new String[] { String.valueOf(nparams), String.valueOf(nargs) })); 796 if (context.acceptsProblems()) { 797 context.acceptProblem(Problem.newSemanticTypeError( 798 IProblem.ExpectedNumberArguments, this, new String[] { String.valueOf(nparams), String.valueOf(nargs) })); 799 } 790 800 } 791 801 break; … … 870 880 default: 871 881 if (arg == null) { 872 context.acceptProblem(Problem.newSemanticTypeError(IProblem.NotEnoughArguments, this)); 882 if (context.acceptsProblems()) { 883 context.acceptProblem(Problem.newSemanticTypeError(IProblem.NotEnoughArguments, this)); 884 } 873 885 return; 874 886 } … … 897 909 if (arg.op == TOKarray 898 910 && arg.type.toBasetype(context).ty == Tbit) { 899 context.acceptProblem(Problem.newSemanticTypeError( 900 IProblem.CannotHaveOutOrInoutArgumentOfBitInArray, this)); 911 if (context.acceptsProblems()) { 912 context.acceptProblem(Problem.newSemanticTypeError( 913 IProblem.CannotHaveOutOrInoutArgumentOfBitInArray, this)); 914 } 901 915 } 902 916 } … … 1035 1049 1036 1050 if (arg.type == null) { 1037 context.acceptProblem(Problem.newSemanticTypeWarning( 1038 IProblem.SymbolNotAnExpression, 0, arg.start, 1039 arg.length, new String[] { arg.toChars(context) })); 1051 if (context.acceptsProblems()) { 1052 context.acceptProblem(Problem.newSemanticTypeWarning( 1053 IProblem.SymbolNotAnExpression, 0, arg.start, 1054 arg.length, new String[] { arg.toChars(context) })); 1055 } 1040 1056 arg = new IntegerExp(arg.loc, 0, Type.tint32); 1041 1057 } … … 1392 1408 f = d.isFuncDeclaration(); 1393 1409 if (null == f) { 1394 context.acceptProblem(Problem.newSemanticTypeError( 1395 IProblem.SymbolIsAliasedToAFunction, a, new String[] { a.toChars(context) })); 1410 if (context.acceptsProblems()) { 1411 context.acceptProblem(Problem.newSemanticTypeError( 1412 IProblem.SymbolIsAliasedToAFunction, a, new String[] { a.toChars(context) })); 1413 } 1396 1414 break; // BUG: should print error message? 1397 1415 } … … 1525 1543 e = v.value(); 1526 1544 if (null == e) { 1527 context.acceptProblem(Problem.newSemanticTypeError( 1528 IProblem.VariableIsUsedBeforeInitialization, v, new String[] { v.toChars(context) })); 1545 if (context.acceptsProblems()) { 1546 context.acceptProblem(Problem.newSemanticTypeError( 1547 IProblem.VariableIsUsedBeforeInitialization, v, new String[] { v.toChars(context) })); 1548 } 1529 1549 } 1530 1550 else if (e != EXP_CANT_INTERPRET) … … 1620 1640 for (Scope sc1 = sc; sc1 != null; sc1 = sc1.enclosing) { 1621 1641 if (sc1.scopesym == ti1) { 1622 context.acceptProblem(Problem.newSemanticTypeError( 1623 IProblem.RecursiveTemplateExpansionForTemplateArgument, t1, new String[] { t1.toChars(context) })); 1642 if (context.acceptsProblems()) { 1643 context.acceptProblem(Problem.newSemanticTypeError( 1644 IProblem.RecursiveTemplateExpansionForTemplateArgument, t1, new String[] { t1.toChars(context) })); 1645 } 1624 1646 return true; // fake a match 1625 1647 } … … 1827 1849 for (Modifier modifier : modifiers) { 1828 1850 if (modifier.tok == tok) { 1829 context.acceptProblem(Problem.newSemanticTypeError( 1830 problemId, modifier)); 1851 if (context.acceptsProblems()) { 1852 context.acceptProblem(Problem.newSemanticTypeError( 1853 problemId, modifier)); 1854 } 1831 1855 reported = true; 1832 1856 } … … 1837 1861 for (Modifier modifier : extraModifiers) { 1838 1862 if (modifier.tok == tok) { 1839 context.acceptProblem(Problem.newSemanticTypeError( 1840 problemId, modifier)); 1863 if (context.acceptsProblems()) { 1864 context.acceptProblem(Problem.newSemanticTypeError( 1865 problemId, modifier)); 1866 } 1841 1867 reported = true; 1842 1868 } … … 1845 1871 1846 1872 if (!reported) { 1847 context.acceptProblem(Problem.newSemanticTypeErrorLoc( 1848 problemId, this)); 1873 if (context.acceptsProblems()) { 1874 context.acceptProblem(Problem.newSemanticTypeErrorLoc( 1875 problemId, this)); 1876 } 1849 1877 } 1850 1878 } trunk/descent.core/src/descent/internal/compiler/parser/AddrExp.java
r1116 r1154 139 139 if (index.compareTo(0) < 0 || index.compareTo(dim) >= 0) { 140 140 // PERHAPS test this error 141 context.acceptProblem(Problem.newSemanticTypeError( 142 IProblem.ArrayIndexOutOfBounds, 143 this, 144 new String[] { 145 String.valueOf(index), 146 String.valueOf(dim), 147 })); 141 if (context.acceptsProblems()) { 142 context.acceptProblem(Problem.newSemanticTypeError( 143 IProblem.ArrayIndexOutOfBounds, 144 this, 145 new String[] { 146 String.valueOf(index), 147 String.valueOf(dim), 148 })); 149 } 148 150 } 149 151 e = new SymOffExp(loc, ve.var, index.multiply(ts.next … … 163 165 e1 = e1.toLvalue(sc, null, context); 164 166 if (e1.type == null) { 165 context.acceptProblem(Problem.newSemanticTypeError( 166 IProblem.CannotTakeAddressOf, e1, new String[] { e1.toChars(context) })); 167 if (context.acceptsProblems()) { 168 context.acceptProblem(Problem.newSemanticTypeError( 169 IProblem.CannotTakeAddressOf, e1, new String[] { e1.toChars(context) })); 170 } 167 171 type = Type.tint32; 168 172 return this; trunk/descent.core/src/descent/internal/compiler/parser/AggregateDeclaration.java
r1126 r1154 90 90 } 91 91 if (!result) { 92 context.acceptProblem(Problem.newSemanticTypeError(IProblem.MemberIsNotAccessible, reference, new String[] { smember.toChars(context) })); 92 if (context.acceptsProblems()) { 93 context.acceptProblem(Problem.newSemanticTypeError(IProblem.MemberIsNotAccessible, reference, new String[] { smember.toChars(context) })); 94 } 93 95 } 94 96 } … … 250 252 public void semantic2(Scope sc, SemanticContext context) { 251 253 if (scope != null) { 252 context.acceptProblem(Problem.newSemanticTypeError(IProblem.SymbolHasForwardReferences, this, new String[] { toChars(context) })); 254 if (context.acceptsProblems()) { 255 context.acceptProblem(Problem.newSemanticTypeError(IProblem.SymbolHasForwardReferences, this, new String[] { toChars(context) })); 256 } 253 257 } 254 258 if (members != null) { … … 281 285 282 286 if (null == members) { 283 context.acceptProblem(Problem.newSemanticTypeError( 284 IProblem.UnknownSize, this)); 287 if (context.acceptsProblems()) { 288 context.acceptProblem(Problem.newSemanticTypeError( 289 IProblem.UnknownSize, this)); 290 } 285 291 } 286 292 if (sizeok != 1) { trunk/descent.core/src/descent/internal/compiler/parser/AliasDeclaration.java
r1141 r1154 178 178 return; 179 179 } else { 180 context.acceptProblem(Problem.newSemanticTypeError(IProblem.CannotAliasAnExpression, sourceType, new String[] { e[0].toChars(context) })); 180 if (context.acceptsProblems()) { 181 context.acceptProblem(Problem.newSemanticTypeError(IProblem.CannotAliasAnExpression, sourceType, new String[] { e[0].toChars(context) })); 182 } 181 183 t[0] = e[0].type; 182 184 } … … 205 207 VarDeclaration v = s.isVarDeclaration(); 206 208 if (v != null && v.linkage == LINK.LINKdefault) { 207 context.acceptProblem(Problem.newSemanticTypeError( 208 IProblem.ForwardReferenceOfSymbol, tempType, new String[] { tempType.toString() })); 209 context 210 .acceptProblem(Problem.newSemanticTypeError( 211 IProblem.ForwardReferenceOfSymbol, v.ident, new String[] { new String( 212 v.ident.ident) })); 209 if (context.acceptsProblems()) { 210 context.acceptProblem(Problem.newSemanticTypeError( 211 IProblem.ForwardReferenceOfSymbol, tempType, new String[] { tempType.toString() })); 212 context 213 .acceptProblem(Problem.newSemanticTypeError( 214 IProblem.ForwardReferenceOfSymbol, v.ident, new String[] { new String( 215 v.ident.ident) })); 216 } 213 217 s = null; 214 218 } else { … … 276 280 Assert.isTrue(this != aliassym); 277 281 if (inSemantic != 0) { 278 context.acceptProblem(Problem.newSemanticTypeError( 279 IProblem.CircularDefinition, ident, new String[] { toChars(context) })); 282 if (context.acceptsProblems()) { 283 context.acceptProblem(Problem.newSemanticTypeError( 284 IProblem.CircularDefinition, ident, new String[] { toChars(context) })); 285 } 280 286 } 281 287 Dsymbol s = aliassym != null ? aliassym.toAlias(context) : this; trunk/descent.core/src/descent/internal/compiler/parser/AndAndExp.java
r964 r1154 55 55 } 56 56 if (e2.op == TOK.TOKtype || e2.op == TOK.TOKimport) { 57 context.acceptProblem(Problem.newSemanticTypeWarning( 58 IProblem.SymbolNotAnExpression, 0, e2.start, e2.length, 59 new String[] { e2.toChars(context) })); 57 if (context.acceptsProblems()) { 58 context.acceptProblem(Problem.newSemanticTypeWarning( 59 IProblem.SymbolNotAnExpression, 0, e2.start, e2.length, 60 new String[] { e2.toChars(context) })); 61 } 60 62 } 61 63 … … 123 125 if (result > 0 && e2.type.toBasetype(context).ty == Tvoid 124 126 && context.global.errors <= 0) { 125 context.acceptProblem(Problem.newSemanticTypeError( 126 IProblem.SymbolHasNoValue, this, 127 new String[] { "void" })); 127 if (context.acceptsProblems()) { 128 context.acceptProblem(Problem.newSemanticTypeError( 129 IProblem.SymbolHasNoValue, this, 130 new String[] { "void" })); 131 } 128 132 } 129 133 if (e1.isConst()) { trunk/descent.core/src/descent/internal/compiler/parser/AnonDeclaration.java
