src/main/groovy/groovy/grape/GrapeIvy.groovy (11 lines): - line 234: // TODO: accept ranges and decode them? except '1.0.0'..<'2.0.0' won't work in groovy - line 260: @Override // TODO deprecate - line 294: // TODO: check artifact type, jar vs library, etc. - line 387: // TODO: remove in a future release (replaced by GroovyRunnerRegistry) - line 404: // TODO: log a warning - line 411: System.err.println(it.trim()) // TODO: implement this or delete it - line 526: // TODO: consider transitive uninstall as an option - line 527: Pattern ivyFilePattern = ~/ivy-(.*)\.xml/ // TODO: get pattern from ivy conf - line 533: // TODO: handle other types? e.g. 'dlls' - line 584: Pattern ivyFilePattern = ~/ivy-(.*)\.xml/ // TODO: get pattern from ivy conf - line 657: // TODO: check artifact type, jar vs library, etc. src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java (9 lines): - line 927: resultType = originType; // TODO: Find accessible type in hierarchy of resultType? - line 1441: // TODO: need errors for write-only too! - line 2690: if (!isPrimitiveVoid(targetType) && !checkCompatibleAssignmentTypes(targetType, returnType, null, false)) // TODO: ext.handleIncompatibleReturnType - line 2891: if (signatures.size() == 1) { // TODO: handle multiple signatures - line 3286: context.putIfAbsent(key, gt); // TODO: merge - line 3904: // TODO: Check additional delegation metadata like type (see checkClosureWithDelegatesTo). - line 4439: // TODO: locate method target parameter - line 5321: if (!selfTypes.isEmpty()) { // TODO: reduce to the most-specific type(s) - line 5447: valueTypes.add(valueType); // TODO: skip null value src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java (8 lines): - line 187: protected static final ClassNode Collection_TYPE = COLLECTION_TYPE; // TODO: deprecate? - line 188: protected static final ClassNode Deprecated_TYPE = DEPRECATED_TYPE; // TODO: deprecate? - line 650: if (isNullConstant(rightExpression)) { // TODO: left is @NonNull - line 730: // TODO: in case of the array we could maybe make a partial check - line 896: if (isGroovyObjectType(superOrInterface) && isBeingCompiled(type) && !type.isInterface()) {//TODO: !POJO !Trait - line 1568: // TODO: figure out capture of super - line 1850: if (gt.isWildcard()) { // TODO: What if a bound itself resolves to a wildcard? - line 1938: // TODO: This method should really return some kind of meta ClassNode subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/ShowCommand.groovy (7 lines): - line 39: io.out.println('No variables defined') // TODO: i18n - line 41: io.out.println('Variables:') // TODO: i18n - line 47: // TODO: Would be nice to show the argument types it will accept... - line 61: io.out.println('No classes have been loaded') // TODO: i18n - line 63: io.out.println('Classes:') // TODO: i18n - line 73: io.out.println('No custom imports have been defined') // TODO: i18n - line 75: io.out.println('Custom imports:') // TODO: i18n subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/PurgeCommand.groovy (7 lines): - line 37: io.out.println('No variables defined') // TODO: i18n - line 43: io.out.println('Custom variables purged') // TODO: i18n - line 50: io.out.println('No classes have been loaded') // TODO: i18n - line 56: io.out.println('Loaded classes purged') // TODO: i18n - line 63: io.out.println('No custom imports have been defined') // TODO: i18n - line 69: io.out.println('Custom imports purged') // TODO: i18n - line 78: io.out.println('Preferences purged') // TODO: i18n subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/HelpCommand.groovy (7 lines): - line 68: fail("No such command: $name") // TODO: i18n - line 72: io.out.println("usage: @|bold ${command.name}|@ $command.usage") // TODO: i18n - line 98: io.out.println('For information about @|green Groovy|@, visit:') // TODO: i18n - line 99: io.out.println(' @|cyan http://groovy-lang.org|@ ') // FIXME: parsing freaks out if end tok is at the last char... - line 103: io.out.println('Available commands:') // TODO: i18n - line 114: // TODO: Wrap description if needed - line 123: io.out.println('For help on a specific command type:') // TODO: i18n src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java (6 lines): - line 387: // TODO: Put this lineSeparator property somewhere everyone can use it. - line 1164: // TODO: Expose this for stream based scenarios? - line 1846: // TODO: Deprecate in favor of leftShift(CharSequence,Object): StringBuilder? - line 2992: // TODO: Expose this for stream based stripping? - line 3060: // TODO IllegalArgumentException for marginChar.length() > 1 ? Or support String as marker? - line 3064: // TODO: Expose this for other usage scenarios, e.g. stream based stripping? subprojects/groovy-console/src/main/groovy/groovy/console/ui/Console.groovy (6 lines): - line 419: @SuppressWarnings("removal") // TODO a future Groovy version will remove this method - line 496: // TODO: would this be a good place to assign the console id? - line 551: // TODO the text should not be swallowed (options: postpone output, open new window, log file, terminal, ...) - line 835: // TODO The call to installInterceptor() conveys that the interceptors are installed for the new window, - line 1369: // TODO should systemErrorInterceptor receive the console id, too? - line 1500: //TODO when @BoundProperty is live, this should be handled via listeners src/main/java/groovy/lang/MetaClassImpl.java (6 lines): - line 1589: //TODO: that is just a quick prototype, not the real thing! - line 1885: // check for propertyMissing provided through a category; TODO:should this have lower precedence? - line 1920: // TODO: one day we could try return the previously registered Closure listener for easy removal - line 2280: //TODO: maybe implement the case localDistance==distance - line 3184: // TODO && method.compatibleModifiers(method.getModifiers(), aMethod.getModifiers()) - line 3411: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/java/groovy/lang/GroovyShell.java (5 lines): - line 69: //TODO return new GroovyShell(CompilerCustomizationBuilder.withConfig(new CompilerConfiguration(), spec)); - line 130: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action - line 135: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action - line 284: //TODO: This logic mostly duplicates InvokerHelper.createScript. They should probably be unified. - line 515: @SuppressWarnings("removal") // TODO a future Groovy version should skip security checks src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java (4 lines): - line 734: // TODO: implement - line 767: // TODO: implement int operations for this - line 836: // TODO: implement int operations for this - line 843: // TODO: implement int operations for this src/main/java/groovy/lang/GroovyClassLoader.java (4 lines): - line 75: * TODO: multi-threaded compiling of the same class but with different roots for - line 172: // TODO Should we use CompilerConfiguration.DEFAULT_SOURCE_ENCODING instead? - line 178: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action - line 653: @SuppressWarnings("removal") // TODO a future Groovy version should remove the security check subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/AliasCommand.groovy (4 lines): - line 52: fail("Command 'alias' requires at least 2 arguments") // TODO: i18n - line 70: fail("Can not rebind non-user aliased command: ${command.name}") // TODO: i18n - line 80: // TODO: Should this be here... or should this be in the Shell's impl? - line 127: // FIXME: Should go back through shell.execute() to allow aliases to groovy snips too subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/SaveCommand.groovy (4 lines): - line 49: fail("Command '$COMMAND_NAME' requires a single file argument") // TODO: i18n - line 53: io.out.println('Buffer is empty') // TODO: i18n - line 58: // TODO: Support special '-' file to simply dump text to io.out - line 64: io.out.println("Saving current buffer to file: \"$file\"") // TODO: i18n src/main/java/org/codehaus/groovy/ast/ClassNode.java (4 lines): - line 154: // TODO: initialize for primary nodes only! - line 162: // TODO: initialize for primary nodes only! - line 1134: // TODO: this won't strictly be true when using list expansion in argument calls - line 1160: int nArgs = args.size(); // TODO: this isn't strictly accurate when using spread argument expansion subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/ImportCommand.groovy (4 lines): - line 96: fail('Command \'import\' requires one or more arguments') // TODO: i18n - line 109: def msg = "Invalid import definition: '${importSpec}'" // TODO: i18n - line 143: def msg = "Invalid import definition: '${importSpec}'; conflicts with existing class: $sn" // TODO: i18n - line 155: def msg = "Invalid import definition: '${importSpec}'; reason: $e.message" // TODO: i18n src/main/java/groovy/ui/GroovyMain.java (4 lines): - line 140: // TODO: pass printstream(s) down through process - line 488: // TODO: Shouldn't these extensions be kept elsewhere? What about CompilerConfiguration? - line 532: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action - line 554: //TODO: These are the arguments for -p and -i. Why are we searching using Groovy script extensions? src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java (4 lines): - line 452: // TODO: read ConstantValue from field attributes - line 481: * TODO: Remove after JDK9 is the minimum JDK supported - line 602: @SuppressWarnings("removal") // TODO a future Groovy version should skip the permission check - line 703: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/java/org/codehaus/groovy/classgen/Verifier.java (4 lines): - line 720: throw newVariableError(ve.getName(), ve.getLineNumber() > 0 ? ve : node); // TODO: context for default argument - line 1067: // TODO: Copy annotations, etc.? - line 1299: // TODO: add generics to collections - line 1535: // TODO: ClassNode nmrCorrected = correctToGenericsSpec(..., nmr)? subprojects/groovy-docgenerator/src/main/groovy/org/apache/groovy/docgenerator/DocGenerator.groovy (3 lines): - line 242: CONFIG.locale = Locale.default // TODO allow locale to be passed in - line 253: } catch (MissingPropertyException e) { // TODO is it still needed? - line 537: // TODO don't hardcode like this src/main/java/org/codehaus/groovy/transform/NamedVariantASTTransformation.java (3 lines): - line 192: // TODO: Check attribute type is assignable to declared param type? - line 261: // TODO account for default params giving multiple signatures - line 310: Expression value = propX(varX(mapParam), name); // TODO: "map.get(name)" src/main/java/org/codehaus/groovy/ast/GenericsType.java (3 lines): - line 65: this.type = Objects.requireNonNull(type); // TODO: ensure type is not primitive - line 434: // TODO: the check for isWildcard should be replaced with a more complete check - line 445: * TODO: In order to distinguish GenericsType with same name, we should add a property to keep the declaring class. subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy (3 lines): - line 739: Class[] auxTypes = null // TODO extract generic types like List or Map - line 778: if (List.class.isAssignableFrom(cls)) { // TODO support other Collections in future - line 798: Class[] auxTypes = null // TODO extract generic types like List or Map subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/OptionAccessor.groovy (3 lines): - line 68: if (savedTypeOptions[optionName]?.cliOption?.arity?.min == 0) { // TODO is this not a bug? - line 69: return (T) parseResult.hasMatchedOption(optionName) // TODO should defaultValue not simply convert the type regardless of the matched value? - line 99: // TODO we could just declare normal methods to map commons-cli CommandLine methods to picocli ParseResult methods src/main/groovy/groovy/cli/internal/OptionAccessor.groovy (3 lines): - line 68: if (savedTypeOptions[optionName]?.cliOption?.arity?.min == 0) { // TODO is this not a bug? - line 69: return (T) parseResult.hasMatchedOption(optionName) // TODO should defaultValue not simply convert the type regardless of the matched value? - line 99: // TODO we could just declare normal methods to map commons-cli CommandLine methods to picocli ParseResult methods src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java (3 lines): - line 113: // TODO: move the findMethodRefMethod and checking to StaticTypeCheckingVisitor - line 164: if (isConstructorReference) { // TODO: move this check to the parser - line 300: // TODO: if StaticTypesMarker.DIRECT_METHOD_CALL_TARGET or src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java (3 lines): - line 427: // TODO Get the magic number `318767104` via `TypeReference.newXXX()` - line 1176: if (adapter == getGroovyObjectProperty && propertyName != null && !pexp.isSpreadSafe()) { // TODO: spread safe should be handled by each - line 1191: return !controller.isStaticContext(); // TODO: not @POJO src/main/java/groovy/lang/GroovyCodeSource.java (3 lines): - line 152: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action - line 174: // TODO: GROOVY-6561: GroovyMain got the name this way: script.substring(script.lastIndexOf('/') + 1) - line 239: @SuppressWarnings("removal") // TODO a future Groovy version should remove the security check src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java (3 lines): - line 607: // TODO: find "best" match or find all matches and deal with ambiguity - line 608: // TODO: handle getAt with more than one parameter - line 697: // TODO: performance would be better if we created a StringBuilder src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java (3 lines): - line 352: // TODO: handle local variables - line 389: || "String".equals(variable.getOriginType().getName()))) { // TODO: String requires constant initializer - line 713: //TODO: change that to get the correct scope src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java (3 lines): - line 84: // TODO: remove optimization of this.foo -> this.@foo - line 475: * so pop has to be called later, TODO: @Deprecate - line 511: * so pop has to be called later, TODO: @Deprecate src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java (3 lines): - line 155: // TODO also check for phase after sourceUnit.getPhase()? but will be ignored anyway? - line 156: // TODO we should only copy those annotations with FIELD_TARGET but haven't visited annotations - line 180: // TODO: make EmptyExpression work src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java (3 lines): - line 393: // TODO: source offsets - line 399: // TODO: shared instances - line 1299: classNode.addAnnotation(new AnnotationNode(ClassHelper.makeWithoutCaching(RECORD_TYPE_NAME))); // TODO: makeAnnotationNode(RecordType.class) src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java (3 lines): - line 406: // TODO: LHS has not been visited -- it could be a variable in a closure and type chooser is not aware. - line 495: // TODO: if RHS is already a VariableSlotLoader, then skip creating a new one - line 779: operandStack.box(); // TODO: support instanceof primitives src/main/java/groovy/util/GroovyScriptEngine.java (3 lines): - line 96: //TODO: more finals? - line 139: //TODO: maybe do something here? - line 352: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java (2 lines): - line 4290: boolean inString = false; //TODO: Cater for comments? - line 4429: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action subprojects/groovy-xml/src/main/java/groovy/xml/XmlUtil.java (2 lines): - line 514: // TODO: replace with stream-based version - line 558: // TODO: support older parser attribute values as well src/main/java/groovy/grape/Grape.java (2 lines): - line 123: // TODO: META-INF/services resolver? - line 155: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/java/org/codehaus/groovy/control/CompilationUnit.java (2 lines): - line 95: protected CompileUnit ast; // TODO: Switch to private and access through getAST(). - line 359: // TODO: Can this be moved into org.codehaus.groovy.transform.sc.transformers.VariableExpressionTransformer? src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java (2 lines): - line 587: // TODO: this is very similar to StaticTypesCheckingSupport#extractGenericsConnections, using ClassNode instead of GenericsType - line 964: cn = gt.getUpperBounds()[0]; // TODO: if length > 1 then union type? src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java (2 lines): - line 49: // TODO make @CS lookup smarter so that we don't need both these maps - line 116: // TODO consider moving initcode to and remaking field final subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/InteractiveShellRunner.groovy (2 lines): - line 174: // FIXME: Need to handle completer removal when things like aliases are rebound - line 201: // FIXME: This is a bit of a hack, I'm too lazy to rewrite a more efficient src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java (2 lines): - line 266: throw new RuntimeException("= character not at end of base64 value"); // TODO: change this exception type - line 283: throw new RuntimeException("bad character in base64 value"); // TODO: change this exception type src/main/java/groovy/util/Node.java (2 lines): - line 298: // TODO Is protected static a bit of a smell? - line 299: // TODO perhaps set nodeClass to be Class src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java (2 lines): - line 230: true, // TODO: replace with a proper test whether a return value is required or not - line 466: ClassNode inferredType = e.getNodeMetaData(StaticTypesMarker.INFERRED_RETURN_TYPE); //TODO:findType(e); src/main/java/org/codehaus/groovy/transform/stc/TypeCheckingContext.java (2 lines): - line 128: // TODO: Should these be fields of StaticTypeCheckingVisitor? - line 174: // TODO: replace with general node stack and filters src/main/java/org/codehaus/groovy/vmplugin/v8/IndyGuardsFiltersAndSignatures.java (2 lines): - line 147: //TODO: we should consider calling this one directly for MetaClassImpl, - line 170: //TODO: remove this method if possible by switchpoint usage subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/RegisterCommand.groovy (2 lines): - line 42: fail("Command '$COMMAND_NAME' requires at least 1 arguments") // TODO: i18n - line 64: fail("Can not rebind command: ${command.name}") // TODO: i18n subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java (2 lines): - line 1059: // TODO: defaultexcludes, excludes(file)?, includes(file)?, includeDestClasses, tempdir - line 1443: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/NoChildren.java (2 lines): - line 70: // TODO Auto-generated method stub - line 172: // TODO consider creating an element for this src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java (2 lines): - line 79: // TODO: return Collections.unmodifiableList(expressions); - line 85: // TODO: return getExpressions().iterator(); src/main/java/org/codehaus/groovy/control/ResolveVisitor.java (2 lines): - line 1200: // TODO: get normal resolving to set declaring class - line 1433: if (upperBound == null) continue; // TODO: error subprojects/groovy-xml/src/main/java/groovy/xml/NamespaceBuilderSupport.java (2 lines): - line 81: // TODO a better way to do this? - line 90: // TODO a better way to do this? subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ASTMatcher.groovy (2 lines): - line 164: // TODO currently matches exactly all args, consider allowing - line 1003: * TODO: experimental! src/main/java/groovy/lang/GroovySystem.java (2 lines): - line 32: // TODO: make this initialization able to set useReflection true - line 33: // TODO: have some way of specifying another MetaClass Registry implementation subprojects/groovy-console/src/main/groovy/groovy/console/ui/view/MacOSXMenuBar.groovy (2 lines): - line 122: // TODO Desktop handlers are supposed to work cross platform, should we do version check at a higher layer - line 123: // TODO there is also an open files handler, should we also be using that? subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/TableLayoutFactory.groovy (2 lines): - line 46: //TODO we could make the value arg the parent - line 63: //TODO we could make the value arg the TR src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java (2 lines): - line 140: // TODO: Make this a method to be called from TupleConstructor xform, add check for 'defaults'? - line 186: // TODO: Do we need to lock down things like: $ownClass? subprojects/groovy-servlet/src/main/java/groovy/servlet/AbstractHttpServlet.java (2 lines): - line 298: * TODO : Enable auto ".groovy" extension replacing here! - line 391: int flags = 0; // TODO : Parse pattern compile flags (literal names). src/main/java/org/apache/groovy/internal/metaclass/MetaClassConstant.java (2 lines): - line 35: //TODO Joche: replace with real implementation - line 46: // TODO Jochen: replace with new MetaMethod subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/InspectCommand.groovy (2 lines): - line 71: io.out.println('Subject is null, false or empty; nothing to inspect') // TODO: i18n - line 95: io.out.println("Launching object browser to inspect: $subject") // TODO: i18n subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/LoadCommand.groovy (2 lines): - line 49: fail("Command '$COMMAND_NAME' requires at least one argument") // TODO: i18n - line 64: fail("File not found: \"$file\"") // TODO: i18n src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java (2 lines): - line 99: operandStack.push(ClassHelper.OBJECT_TYPE); // TODO: maybe use more specialized type here - line 178: operandStack.push(ClassHelper.OBJECT_TYPE); // TODO: maybe use more special type StringBuilder here subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/GenerateStubsTask.java (2 lines): - line 60: // TODO support config.getScriptExtensions()? - line 77: // TODO support config.getScriptExtensions()? subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/ClosureTriggerBinding.java (2 lines): - line 134: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action - line 140: // TODO when JDK9+ is minimum, use canAccess and remove suppression subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/PropertyBinding.java (2 lines): - line 63: // TODO should use a low priority logger - line 80: // TODO should use a low priority logger src/main/java/org/apache/groovy/internal/util/ReevaluatingReference.java (2 lines): - line 42: //TODO Jochen: move the findSpecial to a central place together with others to easy security configuration - line 52: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/java/org/codehaus/groovy/classgen/AnnotationVisitor.java (2 lines): - line 138: // TODO: https://github.com/spockframework/spock/issues/1549 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - line 264: // TODO: Track @Deprecated usage and give a warning? src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java (2 lines): - line 250: //TODO: optimize: add guard based on type Closure - line 914: //TODO: if we would know exactly which paths require the exceptions src/testFixtures/groovy/org/codehaus/groovy/classgen/TestSupport.java (2 lines): - line 61: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action - line 151: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/antlr/GroovyParser.g4 (2 lines): - line 182: // TODO check whether the following modifiers accompany annotations or not. Because the legacy codes(e.g. benchmark/bench/heapsort.groovy) allow to declare the special instance/class fields without annotations, we leave it as it is for the time being - line 536: // TODO verify the potential performance issue because rule expression contains sub-rule assignments(https://github.com/antlr/grammars-v4/issues/215) src/main/groovy/org/codehaus/groovy/classgen/genArrayAccess.groovy (1 line): - line 21: // TODO this generator template has drifted apart from the now modified generated classes src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java (1 line): - line 616: // TODO: set sender class subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java (1 line): - line 114: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/groovy/groovy/util/FileTreeBuilder.groovy (1 line): - line 113: // TODO: Avoid using bytes and prefer streaming copy subprojects/groovy-xml/src/main/java/groovy/xml/FactorySupport.java (1 line): - line 30: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action subprojects/groovy-xml/src/main/java/groovy/xml/XmlParser.java (1 line): - line 454: // TODO store this on root node? reset bodyText? src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java (1 line): - line 205: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateEngine.java (1 line): - line 131: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/HistoryCommand.groovy (1 line): - line 109: // FIXME: This won't work as desired because the history shifts when we run recall and could internally shift more from alias redirection src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java (1 line): - line 221: //TODO: The case of a NoClassDefFoundError needs a bit more research; src/main/java/org/codehaus/groovy/transform/sc/transformers/VariableExpressionTransformer.java (1 line): - line 59: // TODO: handle the owner and delegate cases better for nested scenarios and potentially remove the need for the implicit this case src/main/java/org/codehaus/groovy/transform/trait/TraitReceiverTransformer.java (1 line): - line 168: // TODO: unary expressions (field++, field+=, ...) src/main/java/org/codehaus/groovy/transform/trait/Traits.java (1 line): - line 76: // TODO decide if we should support VOLATILE src/main/groovy/org/codehaus/groovy/tools/GrapeMain.groovy (1 line): - line 318: // TODO make version optional? support classifier? src/main/java/org/codehaus/groovy/reflection/ParameterTypes.java (1 line): - line 142: // TODO: if isVargsMethod, coerce array items src/main/java/org/codehaus/groovy/classgen/InnerClassVisitorHelper.java (1 line): - line 82: return isStatic ? ClassHelper.CLASS_Type : cn; // TODO: Set class type parameter? src/main/java/groovy/lang/ExpandoMetaClass.java (1 line): - line 687: // TODO This is the only area where this MetaClass needs to do some interception because Groovy's current src/main/java/org/codehaus/groovy/ast/expr/UnaryPlusExpression.java (1 line): - line 43: return getExpression().getType(); // TODO: promote byte, char and short to int src/main/java/org/codehaus/groovy/ast/expr/MethodCallExpression.java (1 line): - line 70: // TODO: set correct type here src/main/java/org/codehaus/groovy/reflection/ClassInfo.java (1 line): - line 451: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/groovy/groovy/cli/internal/CliBuilderInternal.groovy (1 line): - line 29: * TODO: prune this right back to have only the functionality needed by Groovy commandline tools src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java (1 line): - line 420: // TODO GROOVY-5011 handle case of @Override on a property src/main/java/org/codehaus/groovy/tools/shell/util/MessageSource.java (1 line): - line 106: // FIXME: For now just save the first error, should really roll a new message with all of the details subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java (1 line): - line 157: // TODO check that we reset everything here src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java (1 line): - line 519: // TODO consider removing fixVar once Spock 1.2 is released - replace with informational exception? subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/Attribute.java (1 line): - line 88: // TODO Auto-generated method stub src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteArray.java (1 line): - line 79: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/java/org/codehaus/groovy/classgen/BytecodeInstruction.java (1 line): - line 28: // TODO: convert to @FunctionalInterface src/main/java/org/codehaus/groovy/transform/sc/transformers/BooleanExpressionTransformer.java (1 line): - line 80: // TODO: apply reverse to operation src/main/java/org/codehaus/groovy/ast/decompiled/TypeSignatureParser.java (1 line): - line 131: // TODO: self-referential type parameter src/main/java/org/codehaus/groovy/control/ProcessingUnit.java (1 line): - line 103: @SuppressWarnings("removal") // TODO a future Groovy version should create the loader not as a privileged action subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/completion/antlr4/GroovySyntaxCompleter.groovy (1 line): - line 358: // TODO this whole section needs a rework for antlr4 subprojects/groovy-xml/src/main/java/groovy/xml/dom/DOMCategory.java (1 line): - line 237: // TODO We should probably use DefaultGroovyMethodsSupport.subListBorders(), subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/Groovysh.groovy (1 line): - line 252: // TODO antlr4 parser errors pop out here - can we rework to be like antlr2? subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/RootLoaderRef.java (1 line): - line 91: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/java/org/codehaus/groovy/vmplugin/v8/TypeTransformers.java (1 line): - line 150: // TODO: have to think about how to optimize this! subprojects/groovy-swing/src/main/java/groovy/swing/model/PropertyModel.java (1 line): - line 45: //TODO After 1.1 we should introspect the meta property and set editable to false if the property is read only subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/Parser.groovy (1 line): - line 106: // FIXME: Seems like failedWithUnexpectedEOF() is not always set as expected, as in: subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/DisplayCommand.groovy (1 line): - line 39: io.out.println('Buffer is empty') // TODO: i18n src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java (1 line): - line 179: // TODO use pList and fList src/main/java/org/codehaus/groovy/classgen/asm/sc/AbstractFunctionalInterfaceWriter.java (1 line): - line 146: // TODO: deep copy if type args set src/main/java/org/codehaus/groovy/reflection/CachedClass.java (1 line): - line 55: @SuppressWarnings("removal") // TODO: perform the action as not privileged src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java (1 line): - line 137: String name = enumClass.getNameWithoutPackage(); // TODO: substring after the $ src/main/java/groovy/lang/MetaMethod.java (1 line): - line 286: //TODO: test if this is OK with new MOP, should be changed! subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/EditCommand.groovy (1 line): - line 58: fail("Unable to determine which editor to use; check \$EDITOR") // TODO: i18n src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java (1 line): - line 334: //FIXME the warning message will NPE with what I have :( subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/ClearCommand.groovy (1 line): - line 41: io.out.println('Buffer cleared') // TODO: i18n subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ComboBoxFactory.groovy (1 line): - line 29: //TODO expand to allow the value arg to be items src/main/java/org/codehaus/groovy/syntax/ASTHelper.java (1 line): - line 48: // TODO should this really be static??? subprojects/groovy-templates/src/main/groovy/groovy/text/GStringTemplateEngine.java (1 line): - line 216: @SuppressWarnings("removal") // TODO a future Groovy version should create the loader not as a privileged action src/main/java/org/codehaus/groovy/reflection/stdclasses/CachedSAMClass.java (1 line): - line 109: @SuppressWarnings("removal") // TODO: a future Groovy version should remove the security check src/main/groovy/org/codehaus/groovy/transform/TimedInterruptibleASTTransformation.groovy (1 line): - line 138: // TODO not sure this try offers value - testing Groovy annotation type handing - throw GroovyBugError or remove? src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java (1 line): - line 82: targetClass = ClassHelper.OBJECT_TYPE; // TODO: ClassHelper.make((Class)groovy.lang.Category.class.getMethod("value").getDefaultValue()); subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/BaseGenerator.java (1 line): - line 130: // TODO: what about constructor method nodes - does it find a constructor node in the super class? subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/NodeChildren.java (1 line): - line 159: // TODO Auto-generated method stub subprojects/groovy-groovydoc/src/main/java/org/apache/groovy/antlr/GroovydocVisitor.java (1 line): - line 263: // TODO: not sure why but groovy.ui.view.BasicContentPane#buildOutputArea classDoc is null src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java (1 line): - line 82: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/FormattedTextFactory.groovy (1 line): - line 28: //TODO expand value arg to take format src/main/java/groovy/util/ResourceException.java (1 line): - line 30: // TODO Auto-generated constructor stub src/main/java/org/codehaus/groovy/control/SourceUnit.java (1 line): - line 245: @SuppressWarnings("removal") // TODO a future Groovy version should get the property not as a privileged action src/main/java/org/codehaus/groovy/reflection/AccessPermissionChecker.java (1 line): - line 29: @SuppressWarnings("removal") // TODO future Groovy versions should deprecate then remove this class src/main/java/org/codehaus/groovy/classgen/asm/WriterController.java (1 line): - line 111: // TODO: replace with a real fast path unary expression helper when available src/main/java/org/codehaus/groovy/ast/expr/ConstantExpression.java (1 line): - line 68: //TODO: more cases here subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/StructuredSyntaxResources.java (1 line): - line 45: @SuppressWarnings("removal") // TODO a future Groovy version should skip clipboard security check src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java (1 line): - line 40: //TODO: get the type's of the expressions to specify the src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java (1 line): - line 394: //TODO: replace with normal String, p not needed src/main/java/org/codehaus/groovy/control/InstanceOfVerifier.java (1 line): - line 48: // TODO: Cannot perform instanceof check against parameterized type Class. Use the form Class instead since further generic type information will be erased at runtime subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovydoc.java (1 line): - line 475: htmlTool.renderToOutput(output, destDir.getCanonicalPath()); // TODO push destDir through APIs? subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/TextEditor.java (1 line): - line 512: @SuppressWarnings("deprecation") // TODO switch modelToView => modelToView2D once minimum JDK version for Groovy >= 9 subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/Main.groovy (1 line): - line 179: // FIXME: We need to configure JLine to catch CTRL-C for us... Use gshell-io's InputPipe src/main/java/groovy/ui/GroovySocketServer.java (1 line): - line 160: //FIXME: Groovy has other mechanisms specifically for watching to see if source code changes. src/resources/groovy/grape/defaultGrapeConfig.xml (1 line): - line 31: src/main/java/groovy/lang/MutableMetaClass.java (1 line): - line 77: // TODO: Add methods like addMetaConstructor, addMetaAttribute, addMetaAnnotation etc. src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java (1 line): - line 39: //TODO: get the type's of the expressions to specify the src/main/java/groovy/util/CharsetToolkit.java (1 line): - line 182: // TODO the buffer is not read up to the end, but up to length - 6 src/main/java/org/codehaus/groovy/runtime/FormatHelper.java (1 line): - line 203: // TODO: For GROOVY-2599 do we need something like below but it breaks other things subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/CommandAlias.groovy (1 line): - line 50: // TODO: Use interface with createCompleters() src/main/java/org/codehaus/groovy/classgen/asm/StatementWriter.java (1 line): - line 602: if (!statement.isReturningNullOrVoid()) { // TODO: move to Verifier subprojects/groovy-templates/src/main/groovy/groovy/text/StreamingTemplateEngine.java (1 line): - line 627: @SuppressWarnings("removal") // TODO a future Groovy version should create the loader not as a privileged action src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java (1 line): - line 534: // TODO GROOVY-9585: add line below once gradle build issues fixed src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java (1 line): - line 598: // TODO: package-private and types are peers src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java (1 line): - line 74: // TODO add generics support so this can be used for @EAHC src/main/java/org/codehaus/groovy/tools/Compiler.java (1 line): - line 33: // TODO: delete this constant? subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/ClosureSourceBinding.java (1 line): - line 37: public ClosureSourceBinding(Closure closure, Object[] arguments) { //TODO in Groovy 2.0 use varargs? subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/util/PackageHelperImpl.groovy (1 line): - line 134: // TODO: review after jdk9 is released src/main/java/org/codehaus/groovy/transform/SourceURIASTTransformation.java (1 line): - line 116: // FIXME: What should we use as the base URI? src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java (1 line): - line 530: return findStaticPropertyAccessor(staticImportType, propName); // TODO: validate args? src/main/java/org/codehaus/groovy/tools/RootLoader.java (1 line): - line 115: // TODO M12N eventually defer this until later when we have a full Groovy src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteGenerator.java (1 line): - line 265: // TODO: this might not do enough or too much src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java (1 line): - line 302: // TODO: Handle spread with nonDefaultParams? src/main/java/groovy/transform/stc/ClosureSignatureHint.java (1 line): - line 140: null, null); // TODO: include reference to the source method & parameter src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java (1 line): - line 1124: // TODO ignore bridge methods? src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java (1 line): - line 282: @SuppressWarnings("removal") // TODO a future Groovy version should create the loader not as a privileged action subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/CompileTaskSupport.java (1 line): - line 137: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/java/org/codehaus/groovy/control/Phases.java (1 line): - line 47: // TODO: If no reference is made to array, convert to switch in getDescription(int). src/main/java/groovy/util/PermutationGenerator.java (1 line): - line 83: * Compute factorial (TODO: expose this) subprojects/groovy-nio/src/main/java/org/apache/groovy/nio/extensions/NioExtensions.java (1 line): - line 935: // TODO GroovyDoc doesn't parse this file as our java.g doesn't handle this JDK7 syntax subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleTextEditor.java (1 line): - line 84: @SuppressWarnings("deprecation") // TODO switch viewToModel/modelToView once minimum JDK version for Groovy >= 9 subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/CommandRegistry.groovy (1 line): - line 31: // TODO: Hook up support so one can for (command in registry) { } src/main/java/org/codehaus/groovy/ast/stmt/Statement.java (1 line): - line 45: // TODO: @Deprecated src/main/java/groovy/util/ProxyGenerator.java (1 line): - line 84: // private ProxyGenerator() {} // TODO: Should we make ProxyGenerator singleton? src/main/java/org/codehaus/groovy/tools/GroovyStarter.java (1 line): - line 121: @SuppressWarnings("removal") // TODO: a future Groovy version should perform the operation not as a privileged action subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/commands/ExitCommand.groovy (1 line): - line 42: // TODO: Maybe support a single arg for the code? src/main/java/groovy/lang/MetaBeanProperty.java (1 line): - line 79: //TODO: create a WriteOnlyException class? subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/util/SimpleCompleter.groovy (1 line): - line 61: // TODO: Maybe handle arrays too? src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java (1 line): - line 65: elementTypeToTarget.put(MODULE, TYPE_TARGET); // TODO Add MODULE_TARGET? subprojects/groovy-xml/src/main/java/groovy/xml/slurpersupport/NodeChild.java (1 line): - line 100: // TODO Auto-generated method stub src/main/java/org/codehaus/groovy/vmplugin/VMPluginFactory.java (1 line): - line 63: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java (1 line): - line 321: Expression lastExpr = lastArgs.get(0); // TODO: cache non-trivial expression value src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java (1 line): - line 200: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovy.java (1 line): - line 564: @SuppressWarnings("removal") // TODO a future Groovy version should perform the operation not as a privileged action src/main/java/org/codehaus/groovy/transform/IndexedPropertyASTTransformation.java (1 line): - line 76: // TODO consider looking for an initial value expression that is a call to asUnmodifiable() or an src/main/java/org/codehaus/groovy/control/io/InputStreamReaderSource.java (1 line): - line 69: * TODO: Should return the URI for this source, but we can't know what it is here. src/main/java/org/codehaus/groovy/control/LabelVerifier.java (1 line): - line 159: //TODO: report multiple missing labels of the same name only once? src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java (1 line): - line 42: * 2) TODO extracting tags from groovydoc; src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java (1 line): - line 284: // TODO: if enclosing is a local type, also test field or method src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java (1 line): - line 348: //TODO: value as Annotation here! subprojects/groovy-xml/src/main/java/org/apache/groovy/xml/tools/DomToGroovy.java (1 line): - line 62: // TODO allow string quoting delimiter to be specified, e.g. ' vs " src/main/java/groovy/lang/Script.java (1 line): - line 82: // TODO: Test modifiers or return type? subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/Shell.groovy (1 line): - line 60: // TODO: Introduce something like 'boolean Command.accepts(String)' to ask subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindFactory.groovy (1 line): - line 301: //TODO inspect the bean info and throw an error if the property is not observable and not bind:false? src/main/java/org/codehaus/groovy/runtime/MethodClosure.java (1 line): - line 146: // TODO: This method seems to be never called..., because MetaClassImpl.invokeMethod will intercept calls and return the result. subprojects/groovy-sql/src/main/java/org/apache/groovy/sql/extensions/SqlExtensions.java (1 line): - line 80: //TODO: check why this asBoolean() method is needed for SqlTest to pass with custom boolean coercion in place