Changeset 1138
- Timestamp:
- 04/29/08 20:55:47 (6 months ago)
- Files:
-
- trunk/descent.core/src/descent/internal/codeassist/SelectionEngine.java (modified) (10 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateDeclaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/core/builder/JavaBuilder.java (modified) (1 diff)
- trunk/descent.ui/src/descent/internal/ui/text/java/JavaParameterListValidator.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/descent.core/src/descent/internal/codeassist/SelectionEngine.java
r1132 r1138 162 162 module.moduleName = sourceUnit.getFullyQualifiedName(); 163 163 164 context = CompilationUnitResolver.resolve(module, javaProject,165 owner);166 167 164 long time2 = System.currentTimeMillis(); 168 165 module.accept(this); … … 180 177 } 181 178 } 179 180 private void doSemantic() { 181 if (context == null) { 182 try { 183 context = CompilationUnitResolver.resolve(module, javaProject, 184 owner); 185 } catch (JavaModelException e) { 186 Util.log(e); 187 } 188 } 189 } 182 190 183 191 private char[] extractToken(Token token, int offset) { … … 229 237 public boolean visit(Module node) { 230 238 // Don't visit template instances in the module scope 231 for (Dsymbol symbol : node.members) { 232 Dsymbol dsymbol = symbol; 239 int length = node.members.size(); 240 for (int i = 0; i < length; i++) { 241 Dsymbol dsymbol = node.members.get(i); 233 242 if (null == dsymbol.isTemplateInstance()) { 234 243 dsymbol.accept(this); … … 313 322 return false; 314 323 } 324 325 doSemantic(); 315 326 316 327 if (node.resolvedSymbol != null) { … … 366 377 public boolean visit(Import node) { 367 378 if (isInRange(node.id)) { 379 doSemantic(); 380 368 381 Module mod = node.mod; 369 382 if (mod != null) { … … 392 405 @Override 393 406 public boolean visit(Argument node) { 394 if (node.var != null && isInRange(node.ident)) { 395 if (node.var instanceof VarDeclaration) { 396 add((VarDeclaration) node.var); 397 } else if (node.var instanceof AliasDeclaration) { 398 add((AliasDeclaration) node.var); 399 } else if (node.var instanceof TypedefDeclaration) { 400 add((TypedefDeclaration) node.var); 407 if (isInRange(node.ident)) { 408 doSemantic(); 409 if (node.var != null) { 410 if (node.var instanceof VarDeclaration) { 411 add((VarDeclaration) node.var); 412 } else if (node.var instanceof AliasDeclaration) { 413 add((AliasDeclaration) node.var); 414 } else if (node.var instanceof TypedefDeclaration) { 415 add((TypedefDeclaration) node.var); 416 } 401 417 } 402 418 return false; … … 407 423 @Override 408 424 public boolean visit(NewExp node) { 409 if (isInRange(node.sourceNewtype) && node.member != null) { 410 CtorDeclaration ctor = node.member; 411 if (ctor.getJavaElement() != null) { 412 addJavaElement(ctor.getJavaElement()); 413 } else { 414 addBinarySearch(ctor); 425 if (isInRange(node.sourceNewtype)) { 426 doSemantic(); 427 428 if (node.member != null) { 429 CtorDeclaration ctor = node.member; 430 if (ctor.getJavaElement() != null) { 431 addJavaElement(ctor.getJavaElement()); 432 } else { 433 addBinarySearch(ctor); 434 } 415 435 } 416 436 return false; … … 471 491 472 492 private void add(VarDeclaration node) { 493 doSemantic(); 494 473 495 if (node.getJavaElement() != null) { 474 496 addJavaElement(node.getJavaElement()); … … 481 503 482 504 private void add(AliasDeclaration node) { 505 doSemantic(); 506 483 507 if (node.getJavaElement() != null) { 484 508 addJavaElement(node.getJavaElement()); … … 491 515 492 516 private void add(TypedefDeclaration node) { 517 doSemantic(); 518 493 519 if (node.getJavaElement() != null) { 494 520 addJavaElement(node.getJavaElement()); trunk/descent.core/src/descent/internal/compiler/parser/TemplateDeclaration.java
r1137 r1138 854 854 buf.writestring(ident.toChars()); 855 855 buf.writeByte('('); 856 for (int i = 0; i < parameters.size(); i++) { 857 TemplateParameter tp = parameters.get(i); 858 if (i != 0) { 859 buf.writeByte(','); 860 } 861 tp.toCBuffer(buf, hgs, context); 856 if (parameters != null) { 857 for (int i = 0; i < parameters.size(); i++) { 858 TemplateParameter tp = parameters.get(i); 859 if (i != 0) { 860 buf.writeByte(','); 861 } 862 tp.toCBuffer(buf, hgs, context); 863 } 862 864 } 863 865 buf.writeByte(')'); trunk/descent.core/src/descent/internal/core/builder/JavaBuilder.java
r1126 r1138 77 77 monitor.beginTask("", 100 * resources.length); 78 78 for(IResource resource : resources) { 79 if (monitor.isCanceled()) { 80 return; 81 } 82 79 83 build(resource, new SubProgressMonitor(monitor, 100)); 80 84 } trunk/descent.ui/src/descent/internal/ui/text/java/JavaParameterListValidator.java
r1132 r1138 241 241 if (position < line.getOffset() || position >= document.getLength()) 242 242 return false; 243 244 boolean isSetter = false; 245 int pos = fPosition; 246 loop: 247 while(pos >= 0) { 248 char c = document.getChar(pos); 249 switch(c) { 250 case '(': 251 break loop; 252 case '=': 253 isSetter = true; 254 break loop; 255 } 256 pos--; 257 } 258 259 if (isSetter) { 260 return Character.isJavaIdentifierPart(document.getChar(position)); 261 } 243 262 244 263 return getCharCount(document, fPosition, position, "(", ")", false) >= 0; //$NON-NLS-1$ //$NON-NLS-2$
