Created
August 19, 2012 22:10
-
-
Save retronym/3398083 to your computer and use it in GitHub Desktop.
Just Do It: TODO comments in scala/scala git-blamed on commits between 2.9.2 and 2.10-0-SNAPSHOT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
======================================== | |
Adriaan Moors | |
======================================== | |
= src/compiler/scala/tools/nsc/ast/TreeGen.scala | |
1dbcbd5 2012-02-17 75 // TODO: would be so much nicer if we would know during match-translation (i.e., type checking) | |
= src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala | |
2890714 2012-04-24 536 // TODO: clean this up -- there is too much information packked into makePatDef's `pat` argument | |
= src/compiler/scala/tools/nsc/backend/icode/GenICode.scala | |
a57ac60 2012-02-13 1107 var ctx1 = genLoad(selector, ctx, INT) // TODO: Java 7 allows strings in switches (so, don't assume INT and don't convert the literals using intValue) | |
= src/compiler/scala/tools/nsc/transform/Erasure.scala | |
3515ac4 2012-04-13 508 && !afterErasure((member.tpe <:< other.tpe))) // no static guarantees (TODO: is the subtype test ever true?) | |
= src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala | |
891a6e4 2011-10-20 532 // TODO remove the synthetic `<outer>` method from outerFor?? | |
891a6e4 2011-10-20 534 val outerFor = sel.symbol.owner.toInterface // TODO: toInterface necessary? | |
= src/compiler/scala/tools/nsc/transform/TailCalls.scala | |
d786f26 2012-03-22 354 // we tail-called -- TODO: shield from false-positives where we rewrite but don't tail-call | |
= src/compiler/scala/tools/nsc/typechecker/Duplicators.scala | |
2d3b309 2012-03-16 291 val newsym = p.symbol.cloneSymbol //(context.owner) // TODO owner? | |
2d3b309 2012-03-16 296 val rhs1 = (new TreeSubstituter(params map (_.symbol), params1) transform rhs) // TODO: duplicate? | |
1890a41 2012-03-29 277 // in case the rhs contains any definitions -- TODO: is this necessary? | |
= src/compiler/scala/tools/nsc/typechecker/Infer.scala | |
b908232 2012-03-02 1205 // TODO: reinstate checkBounds, return params that fail to meet their bounds to undetparams | |
e1c8e2d 2012-04-13 1302 * TODO: at the very least, reduce duplication wrt checkCheckable | |
98a5f06 2012-07-24 93 // TODO: update spec to reflect we allow any ProductN, not just TupleN | |
= src/compiler/scala/tools/nsc/typechecker/PatternMatching.scala | |
8a9fd64 2011-10-20 34 * (longer-term) TODO: | |
8a9fd64 2011-10-20 446 // TODO: check unargs == args | |
8a9fd64 2011-10-20 482 provided the run-time type of v is also an instance of T, <-- TODO! https://issues.scala-lang.org/browse/SI-1503 | |
8a9fd64 2011-10-20 506 /* TODO: Paul says about future version: I think this should work, and always intended to implement if I can get away with it. | |
8a9fd64 2011-10-20 1176 (that is, a pattern match involved a comparison of the matched value with p using method eq in class AnyRef). // TODO: the actual pattern matcher uses ==, so that's what I'm using for now | |
8a9fd64 2011-10-20 1186 - A parameterized type pattern scala.Array[T1], where T1 is a type pattern. // TODO | |
8a9fd64 2011-10-20 1361 // TODO: assign more fine-grained positions | |
b80ad1f 2011-11-13 411 // TODO: extractor.paramType may contain unbound type params (run/t2800, run/t3530) | |
b80ad1f 2011-11-13 598 Some(this(extractorCall, args)) // TODO: simplify spliceApply? | |
6d5a16b 2011-11-19 1360 // TODO: do this during tree construction, but that will require tracking the current owner in treemakers | |
4fca89b 2011-11-22 416 // TODO: the outer check is mandated by the spec for case classes, but we do it for user-defined unapplies as well [SPEC] | |
ae054a1 2011-11-22 558 // TODO: can we rework the typer so we don't have to do all this twice? | |
ae054a1 2011-11-22 1249 // need to substitute to deal with existential types -- TODO: deal with existentials better, don't substitute (see RichClass during quick.comp) | |
fc0c123 2011-11-25 705 // TODO: fix the illegal type bound in pos/t602 -- type inference messes up before we get here: | |
e0b8877 2011-11-27 1629 // TODO: improve, e.g., for constants | |
e0b8877 2011-11-27 1668 // TODO check: | |
e0b8877 2011-11-27 1687 case tp@RefinedType(parents, EmptyScope) => tp.memo(tp: Type)(identity) // TODO: does this help? | |
e0b8877 2011-11-27 3084 // store the result of the final test and the intermediate results in hoisted mutable variables (TODO: optimize: don't store intermediate results that aren't used) | |
d4182c7 2011-12-15 3197 // TODO: non-trivial dead-code elimination | |
03f00fe 2011-12-28 30 * TODO: | |
03f00fe 2011-12-28 533 // TODO: 1) if we want to support a generalisation of Kotlin's patmat continue, must not hard-wire lifting into the monad (which is now done by codegen.one), | |
03f00fe 2011-12-28 700 // TODO: to be called when there's a def unapplyProd(x: T): U | |
c58b240 2012-01-08 1145 // if there's an outer accessor, otherwise the condition becomes `true` -- TODO: can we improve needsOuterTest so there's always an outerAccessor? | |
c58b240 2012-01-08 1200 // TODO: `null match { x : T }` will yield a check that (indirectly) tests whether `null ne null` | |
a57ac60 2012-02-13 324 // if we fail to emit a fine-grained switch, have to do translateCase again with a single scrutSym (TODO: uniformize substitution on treemakers so we can avoid this) | |
a57ac60 2012-02-13 343 Bind(exSym, Ident(nme.WILDCARD)), // TODO: does this need fixing upping? | |
312d769 2012-02-13 1515 typer.typed(_match(vpmName.one), EXPRmode | POLYmode | TAPPmode | FUNmode, WildcardType).tpe // TODO: error message | |
a57ac60 2012-02-13 1524 // TODO: consider catchAll, or virtualized matching will break in exception handlers | |
a57ac60 2012-02-13 3207 //// SWITCHES -- TODO: operate on Tests rather than TreeMakers | |
a57ac60 2012-02-13 3498 Some(Literal(Constant(const.intValue))) // TODO: Java 7 allows strings in switches | |
a57ac60 2012-02-13 3523 // TODO: if patterns allow switch but the type of the scrutinee doesn't, cast (type-test) the scrutinee to the corresponding switchable type and switch on the result | |
a57ac60 2012-02-13 3544 val alternativesSupported = false // TODO: needs either back-end support of flattening of alternatives during typers | |
a57ac60 2012-02-13 3547 // TODO: there are more treemaker-sequences that can be handled by type tests | |
a57ac60 2012-02-13 3572 // TODO: drop null checks | |
b046a6e 2012-03-14 1339 // TODO: improve notion of trivial/irrefutable -- a trivial type test before the body still makes for a default case | |
20426fb 2012-03-23 330 if cases forall treeInfo.isCatchCase; // must check again, since it's not guaranteed -- TODO: can we eliminate this? e.g., a type test could test for a trait or a non-trivial prefix, which are not handled by the back-end | |
1b8dc12 2012-04-30 740 // TODO: figure out why... | |
89d0697 2012-05-02 89 // setType origTp intended for CPS -- TODO: is it necessary? | |
0497c15 2012-05-22 1120 // TODO: can probably always widen | |
0497c15 2012-05-22 1217 // TODO: [SPEC] the spec requires `eq` instead of `==` for singleton types | |
0497c15 2012-05-22 1227 // TODO: verify that we don't need to special-case Array | |
0497c15 2012-05-22 1623 // // if there's an outer accessor, otherwise the condition becomes `true` -- TODO: can we improve needsOuterTest so there's always an outerAccessor? | |
0497c15 2012-05-22 1752 def eqTest(pat: Tree, testedBinder: Symbol) = EqualityCond(binderToUniqueTree(testedBinder), unique(pat)) // TODO: eq, not == | |
3f7b8b5 2012-05-22 1931 def apply(x: Prop): Prop = x match { // TODO: mapConserve | |
3f7b8b5 2012-05-22 2158 // returns all solutions, if any (TODO: better infinite recursion backstop -- detect fixpoint??) | |
3f7b8b5 2012-05-22 2289 // TODO: there seems to be bug for singleton domains (variable does not show up in model) | |
3f7b8b5 2012-05-22 2680 // TODO case _ if tp.isTupleType => // recurse into component types | |
3f7b8b5 2012-05-22 2704 val subTpApprox = typer.infer.approximateAbstracts(subTp) // TODO: needed? | |
3f7b8b5 2012-05-22 2715 // TODO: this is subject to the availability of TypeTags (since an abstract type with a type tag is checkable at run time) | |
3f7b8b5 2012-05-22 2717 // TODO: this is extremely rough... | |
3f7b8b5 2012-05-22 2719 // TODO: when type tags are available, we will check -- when this is implemented, can we take that into account here? | |
3f7b8b5 2012-05-22 2774 // TODO: null tests generate too much noise, so disabled them -- is there any way to bring them back? | |
3f7b8b5 2012-05-22 2921 val (eqTo, neqTo) = varAssignment.getOrElse(variable, (Nil, Nil)) // TODO | |
3f7b8b5 2012-05-22 3003 // TODO: improve reasoning -- in the mean time, a false negative is better than an annoying false positive | |
0497c15 2012-05-22 3168 // TODO: have super-trait for retrieving the variable that's operated on by a tree maker | |
0497c15 2012-05-22 3186 // TODO: finer-grained duplication -- MUST duplicate though, or we'll get VerifyErrors since sharing trees confuses lambdalift, | |
0497c15 2012-05-22 3551 case tm@TypeTestTreeMaker(_, _, pt, _) if tm.isPureTypeTest => // -- TODO: use this if binder does not occur in the body | |
379384c 2012-05-29 2591 // TODO: model dependencies between variables: if V1 corresponds to (x: List[_]) and V2 is (x.hd), V2 cannot be assigned when V1 = null or V1 = Nil | |
3cb72fa 2012-06-03 32 * - update spec and double check it's implemented correctly (see TODO's) | |
3cb72fa 2012-06-03 1954 // TODO: for V1 representing x1 and V2 standing for x1.head, encode that | |
97c3383 2012-06-08 2471 // duplicate, don't mutate old tree (TODO: use a map tree -> type instead?) | |
54b2606 2012-06-11 50 // TODO: the inliner fails to inline the closures to patmatDebug | |
3601b34 2012-06-11 2672 // TODO: domain of other feasibly enumerable built-in types (char?) | |
3601b34 2012-06-11 2675 // TODO case _ if tp.isTupleType => // recurse into component types? | |
64acb46 2012-07-02 3219 // TODO: make more fine-grained, as we don't always need to jump | |
64acb46 2012-07-02 3476 // TODO: can b.tpe ever be null? can't really use pt, see e.g. pos/t2683 or cps/match1.scala | |
8234ba3 2012-07-04 1574 // TODO: remove Cond, replace by Prop from Logic | |
8234ba3 2012-07-04 1746 def outerTest(testedBinder: Symbol, expectedTp: Type) = TrueCond // TODO OuterEqCond(testedBinder, expectedType) | |
8234ba3 2012-07-04 3045 case OrCond(_, _) => Set(FalseCond) // TODO: make more precise | |
ef2bf41 2012-07-10 3299 // TODO: I don't think the binder's types can actually be different (due to checks in caseEquals) | |
ef2bf41 2012-07-10 3301 // TODO: reuse name exactly if there's only one binder in binders | |
aa6fa46 2012-07-12 95 // TODO: this should never happen; error should've been reported during type checking | |
aa6fa46 2012-07-12 943 * TODO: clean this up, would be nicer to have some higher-level way to compute | |
4276f61 2012-07-13 1736 * TODO: don't ignore outer-checks | |
4276f61 2012-07-13 1780 // TODO: make it more general List(1, 2) => 1 :: 2 :: Nil -- not sure this is a good idea... | |
c2aa17a 2012-07-20 1076 * TODO: make this user-definable as follows | |
e232a61 2012-08-08 2403 val todo = equalitySyms filterNot (b => (b.const == sym.const) || excludedPair(ExcludedPair(b.const, sym.const))) | |
e232a61 2012-08-08 2404 val (excluded, notExcluded) = todo partition (b => excludes(sym.const, b.const)) | |
9108b25 2012-08-09 2559 assert(!(tp =:= NullTp)) // TODO: assert(!tp.isStable) | |
9285bdb 2012-08-14 2060 // TODO: be smarter/more efficient about this (http://lara.epfl.ch/w/sav09:tseitin_s_encoding) | |
= src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala | |
1b8dc12 2012-04-30 341 // TODO: shouldn't the next line be: `original resetFlag CASEACCESSOR`? | |
= src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
29bcade 2012-03-06 964 * since method application is the only way to generate this slack between run-time and compile-time types (TODO: right!?), | |
29bcade 2012-03-06 1014 val ptSafe = variantToSkolem(pt) // TODO: pt.skolemizeExistential(context.owner, tree) ? | |
8552740 2012-03-17 4131 // TODO: skolemize (lub of packed types) when that no longer crashes on files/pos/t4070b.scala | |
2286d7b 2012-03-30 689 tree.setType(MethodType(List(), singleType(pre, sym))) // TODO: should this be a NullaryMethodType? | |
b92eb70 2012-04-05 5496 // TODO: can we achieve the pattern matching bit of the string interpolation SIP without this? | |
1716526 2012-04-26 2417 private val arity = if (isFunctionType(pt)) targs.length - 1 else 1 // TODO pt should always be a (Partial)Function, right? | |
bc860f3 2012-04-27 2540 // TODO: figure out the details (T @cps[U] is not a subtype of Any, but then why does it work for the apply method?) | |
1b8dc12 2012-04-30 2392 // TODO: add fallback __match sentinel to predef | |
1b8dc12 2012-04-30 2401 typed((new PureMatchTranslator(this.asInstanceOf[patmat.global.analyzer.Typer] /*TODO*/, matchStrategy)).translateMatch(match_), mode, pt) | |
1b8dc12 2012-04-30 2411 // TODO: remove FunctionN support -- this is currently designed so that it can emit FunctionN and PartialFunction subclasses | |
1b8dc12 2012-04-30 2414 // TODO: remove PartialFunction support from UnCurry | |
6b3ef4f 2012-06-04 3291 // TODO: disable when in unchecked match | |
= src/compiler/scala/tools/reflect/MacroImplementations.scala | |
623b739 2012-07-06 112 // TODO: place error message on conversion string | |
= src/library/scala/Predef.scala | |
d5b81b6 2011-10-20 127 @inline def implicitly[T](implicit e: T) = e // for summoning implicit values from the nether world -- TODO: when dependent method types are on by default, give this result type `e.type`, so that inliner has better chance of knowing which method to inline in calls like `implicitly[MatchingStrategy[Option]].zero` | |
= src/reflect/scala/reflect/internal/Positions.scala | |
d5b81b6 2011-10-20 44 super.traverse(t) // TODO: bug? shouldn't the traverse be outside of the if? | |
= src/reflect/scala/reflect/internal/Symbols.scala | |
75eb8a4 2012-07-24 352 // TODO: it would be better to allocate a new bit in the flag long for GADTSkolem rather than OR'ing together CASEACCESSOR | SYNTHETIC | |
= src/reflect/scala/reflect/internal/TreeInfo.scala | |
0391436 2012-07-24 474 // TODO: move to Flags | |
= src/reflect/scala/reflect/internal/Trees.scala | |
d5b81b6 2011-10-20 1346 else if (tree.symbol == from.head) to.head.shallowDuplicate // TODO: does it ever make sense *not* to perform a shallowDuplicate on `to.head`? | |
996f96f 2012-04-24 406 // TODO remove this class, add a tree attachment to Apply to track whether implicits were involved | |
996f96f 2012-04-24 410 // TODO remove this class, add a tree attachment to Apply to track whether implicits were involved | |
996f96f 2012-04-24 572 (tree match { // TODO: use a tree attachment to track whether this is an apply to implicit args or a view | |
996f96f 2012-04-24 575 // TODO: ApplyConstructor ??? | |
= src/reflect/scala/reflect/internal/Types.scala | |
7a5aaa9 2012-05-03 1758 // TODO see comments around def intersectionType and def merge | |
7a5aaa9 2012-05-03 3529 val clazz = owner.newRefinementClass(pos) // TODO: why were we passing in NoPosition instead of pos? | |
======================================== | |
Alex Cruise | |
======================================== | |
= src/library/scala/xml/Utility.scala | |
e7ea29c 2012-03-08 197 * @todo use a Writer instead | |
======================================== | |
Christopher Vogt | |
======================================== | |
= src/reflect/scala/reflect/api/StandardNames.scala | |
bbd2e43 2012-09-18 13 // TODO: document better | |
= src/reflect/scala/reflect/api/TagInterop.scala | |
bbd2e43 2012-09-18 5 // TODO `mirror` parameters are now of type `Any`, because I can't make these path-dependent types work | |
= src/reflect/scala/reflect/api/TypeTags.scala | |
bbd2e43 2012-09-18 14 * TODO | |
======================================== | |
Damien | |
======================================== | |
= src/compiler/scala/tools/nsc/doc/html/page/diagram/DiagramGenerator.scala | |
c85b4a4 2012-06-13 31 // TODO: This is tailored towards the dot generator, since it's the only generator. In the future it should be more | |
======================================== | |
Eugene Burmako | |
======================================== | |
= src/compiler/scala/reflect/macros/runtime/Parsers.scala | |
ce67870 2012-06-06 12 // todo. provide decent implementation | |
= src/compiler/scala/reflect/macros/runtime/Reifiers.scala | |
178069e 2012-06-07 43 // fixme: if I put utils here, then "global" from utils' early initialization syntax | |
= src/compiler/scala/reflect/reify/Reifier.scala | |
814cf34 2012-04-12 86 // todo. why do we resetAllAttrs? | |
814cf34 2012-04-12 107 // todo. this is a common problem with non-trivial macros in our current macro system | |
= src/compiler/scala/reflect/reify/States.scala | |
6355d1a 2012-06-06 25 // todo. rewrite the reifier so that we don't need mutable state anymore | |
= src/compiler/scala/reflect/reify/codegen/GenAnnotationInfos.scala | |
5e4c47f 2012-04-14 31 // todo. every AnnotationInfo is an island, entire of itself | |
= src/compiler/scala/reflect/reify/codegen/GenSymbols.scala | |
814cf34 2012-04-12 92 // todo. make sure that free methods and free local defs work correctly | |
= src/compiler/scala/reflect/reify/codegen/GenTypes.scala | |
6355d1a 2012-06-06 119 // todo. write a test for this | |
= src/compiler/scala/reflect/reify/phases/Calculate.scala | |
46d57d4 2012-08-15 12 def isLocalToReifee = (localSymbols contains sym) // todo. how do I account for local skolems? | |
= src/compiler/scala/reflect/reify/phases/Metalevels.scala | |
6355d1a 2012-06-06 138 // todo. also inline usages of ``inlineableBindings'' in the symtab itself | |
= src/compiler/scala/reflect/reify/utils/Extractors.scala | |
6355d1a 2012-06-06 110 // todo. doesn't take into account optimizations such as $u.TypeTag.Int or the upcoming closure optimization | |
6355d1a 2012-06-06 135 // todo. doesn't take into account optimizations such as $u.TypeTag.Int or the upcoming closure optimization | |
= src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala | |
6bb5975 2012-06-06 350 else rootMirror.getClassByName(name.replace('/', '.')) // TODO fails for inner classes (but this hasn't been tested). | |
= src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala | |
814cf34 2012-04-12 369 // TODO: other Tags: NoTag, UnitTag, ClazzTag, EnumTag, ArrayTag ??? | |
814cf34 2012-04-12 392 // TODO: other Tags: NoTag, UnitTag, ClazzTag, EnumTag ??? | |
= src/compiler/scala/tools/nsc/interpreter/IMain.scala | |
46d57d4 2012-08-15 148 // todo. if this crashes, REPL will hang | |
= src/compiler/scala/tools/nsc/typechecker/Implicits.scala | |
814cf34 2012-04-12 1207 // todo. migrate hardcoded materialization in Implicits to corresponding implicit macros | |
f54e5c8 2012-04-22 1221 * no manifest is found. todo: make this instantiate take type params as well? | |
6bb5975 2012-06-06 1308 // todo. write a test for this | |
46d57d4 2012-08-15 1366 * todo. the following lines should be deleted after we migrate delegate tag materialization to implicit macros | |
= src/compiler/scala/tools/nsc/typechecker/Macros.scala | |
814cf34 2012-04-12 134 // for now I leave it as a todo and move along to more the important stuff | |
814cf34 2012-04-12 574 // todo. infer precise typetag for this Expr, namely the declared type of the corresponding macro impl argument | |
814cf34 2012-04-12 871 // todo. expansion should work from the inside out | |
46d57d4 2012-08-15 135 // todo. refactor when fixing SI-5498 | |
= src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
46d57d4 2012-08-15 911 // todo. the commented line below makes sense for typechecking, say, TypeApply(Ident(`some abstract type symbol`), List(...)) | |
46d57d4 2012-08-15 2651 // todo. investigate whether something can be done about this | |
= src/compiler/scala/tools/reflect/ToolBoxFactory.scala | |
814cf34 2012-04-12 136 // todo. also fixup singleton types | |
814cf34 2012-04-12 309 // todo. is not going to work with quoted arguments with embedded whitespaces | |
= src/compiler/scala/tools/reflect/package.scala | |
6bb5975 2012-06-06 12 // [todo: can we generalize this? | |
6bb5975 2012-06-06 19 // todo. replace this with an implicit class, once the pesky warning is gone | |
= src/library/scala/reflect/ClassManifestDeprecatedApis.scala | |
f54e5c8 2012-04-22 219 * todo: remove after next boostrap | |
= src/reflect/scala/reflect/api/FrontEnds.scala | |
814cf34 2012-04-12 68 // todo. untangle warningsAsErrors from Reporters. I don't feel like moving this flag here! | |
= src/reflect/scala/reflect/api/Mirrors.scala | |
46d57d4 2012-08-15 24 // todo. an improvement might be having mirrors reproduce the structure of the reflection domain | |
= src/reflect/scala/reflect/api/StandardDefinitions.scala | |
6bb5975 2012-06-06 64 def ArrayModule_overloadedApply: TermSymbol // todo. fix the bug in Definitions.getMemberMethod | |
6bb5975 2012-06-06 65 def Array_apply: TermSymbol // todo. fix the bug in Definitions.getMemberMethod | |
6bb5975 2012-06-06 66 def Array_clone: TermSymbol // todo. fix the bug in Definitions.getMemberMethod | |
6bb5975 2012-06-06 67 def Array_length: TermSymbol // todo. fix the bug in Definitions.getMemberMethod | |
6bb5975 2012-06-06 68 def Array_update: TermSymbol // todo. fix the bug in Definitions.getMemberMethod | |
6bb5975 2012-06-06 75 def Iterator_apply: TermSymbol // todo. fix the bug in Definitions.getMemberMethod | |
6bb5975 2012-06-06 78 def List_apply: TermSymbol // todo. fix the bug in Definitions.getMemberMethod | |
= src/reflect/scala/reflect/api/package.scala | |
9892f52 2012-07-24 77 // todo. once we have implicit macros for tag generation, we can remove these anchors | |
= src/reflect/scala/reflect/internal/Definitions.scala | |
6bb5975 2012-06-06 332 // I could just change `isOmittablePrefix`, but there's more to it, so I'm leaving this as a todo for now | |
46d57d4 2012-08-15 1057 // todo. member symbol becomes a term symbol in cleanup. is this a bug? | |
= src/reflect/scala/reflect/internal/Importers.scala | |
814cf34 2012-04-12 19 // todo. fix this loophole | |
814cf34 2012-04-12 51 // todo. careful import of positions | |
= src/reflect/scala/reflect/internal/Mirrors.scala | |
46d6410 2012-07-17 77 // todo: get rid of most the methods here and keep just staticClass/Module/Package | |
= src/reflect/scala/reflect/internal/Printers.scala | |
46d57d4 2012-08-15 6 // todo. we need to unify this prettyprinter with NodePrinters | |
= src/reflect/scala/reflect/internal/Symbols.scala | |
6bb5975 2012-06-06 1740 * TODO: formulate as enclosingSuchThat, after making sure | |
6bb5975 2012-06-06 1742 * TODO: Also harmonize with enclClass, enclMethod etc. | |
= src/reflect/scala/reflect/internal/Trees.scala | |
6bb5975 2012-06-06 18 val id = nodeCount // TODO: add to attachment? | |
= src/reflect/scala/reflect/internal/Types.scala | |
814cf34 2012-04-12 4101 // todo. move these into scala.reflect.api | |
= src/reflect/scala/reflect/macros/Context.scala | |
814cf34 2012-04-12 4 // todo. introduce context hierarchy | |
= src/reflect/scala/reflect/macros/Parsers.scala | |
ba3a9e0 2012-09-14 8 // todo. distinguish between `parse` and `parse` | |
= src/reflect/scala/reflect/runtime/JavaMirrors.scala | |
432d7b8 2012-08-04 374 // todo. this doesn't account for multiple vararg parameter lists | |
46d57d4 2012-08-15 744 * TODO - find all such calls and wrap them. | |
46d57d4 2012-08-15 745 * TODO - create mechanism to avoid the recurrence of unwrapped calls. | |
46d57d4 2012-08-15 1265 // todo. this makes toolbox tests pass, but it's a mere workaround for SI-5865 | |
= src/reflect/scala/reflect/runtime/SymbolLoaders.scala | |
46d57d4 2012-08-15 65 // todo. reflection meeting verdict: need to enter the symbols into the first symbol in the owner chain that has a non-empty scope | |
======================================== | |
Heather Miller | |
======================================== | |
= src/library/scala/concurrent/SyncVar.scala | |
4f693ed 2012-05-16 77 // TODO: this method should be private | |
======================================== | |
Hubert Plociniczak | |
======================================== | |
= src/compiler/scala/tools/nsc/interactive/Global.scala | |
1111b27 2011-09-23 935 // TODO: guard with try/catch to deal with ill-typed qualifiers. | |
= src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala | |
c800d1f 2012-01-25 824 // TODO: no test case | |
= src/compiler/scala/tools/nsc/typechecker/Contexts.scala | |
c800d1f 2012-01-25 290 // TODO: remove? Doesn't seem to be used | |
c800d1f 2012-01-25 395 // TODO remove | |
= src/compiler/scala/tools/nsc/typechecker/Infer.scala | |
4f99c2e 2012-03-06 1612 // todo: missing test case | |
= src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala | |
c800d1f 2012-01-25 397 // TODO #3649 can create spurious errors when companion object is gone (because it becomes unlinked from scope) | |
= src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala | |
c800d1f 2012-01-25 482 // TODO: should be replaced by throwErrors | |
= src/reflect/scala/reflect/internal/Types.scala | |
c800d1f 2012-01-25 7012 // TODO: RecoverableCyclicReference should be separated from TypeError, | |
======================================== | |
Josh Suereth | |
======================================== | |
= src/compiler/scala/tools/ant/ClassloadVerify.scala | |
8f3c3f5 2011-08-29 43 // TODO - Log success | |
= src/library/scala/collection/TraversableViewLike.scala | |
ab07db1 2011-12-18 216 (newMapped(x => asPair(x)._1), newMapped(x => asPair(x)._2)) // TODO - Performance improvements. | |
ab07db1 2011-12-18 219 (newMapped(x => asTriple(x)._1), newMapped(x => asTriple(x)._2), newMapped(x => asTriple(x)._3)) // TODO - Performance improvements. | |
= src/library/scala/collection/mutable/Queue.scala | |
eb2f37c 2012-08-08 171 // TODO - Don't override this just for new to create appropriate type.... | |
======================================== | |
Kato Kazuyoshi | |
======================================== | |
= src/library/scala/util/parsing/ast/Binders.scala | |
60c8697 2011-06-18 29 trait Mapper { def apply[T <% Mappable[T]](x: T): T } /* TODO: having type `Forall T. T => T` is too strict: | |
1db8243 2011-06-18 128 // TODO: strengthen this condition so that no binders may be added after this scope has been | |
1db8243 2011-06-18 305 //TODO: more documentation | |
1db8243 2011-06-18 326 // TODO: move this to some utility object higher in the scala hierarchy? | |
= src/reflect/scala/reflect/internal/Types.scala | |
60c8697 2011-06-18 3271 * TODO: make these constraints count (incorporate them into implicit search in `applyImplicitArgs`) | |
======================================== | |
Martin Odersky | |
======================================== | |
= src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala | |
17f0c48 2012-08-15 2885 case DOUBLE => emit(Opcodes.DCMPL) // TODO bug? why not DCMPG? http://docs.oracle.com/javase/specs/jvms/se5.0/html/Instructions2.doc3.html | |
= src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala | |
e156d4a 2012-05-29 85 // todo: find out initialization sequence for pkg/pkg.moduleClass is different from enterModule | |
= src/compiler/scala/tools/nsc/transform/Erasure.scala | |
1241af3 2012-08-15 1068 unboundedGenericArrayLevel(arg.tpe) > 0) => // !!! todo: simplify by having GenericArray also extract trees | |
= src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala | |
c297b97 2012-04-11 231 // TODO: need to shuffle annotations between wrapper and class. | |
= src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
1c89ab7 2012-04-12 4655 case SelectFromTypeTree(qual@TypeTree(), name) if qual.tpe.typeArgs.nonEmpty => // TODO: somehow the new qual is not checked in refchecks | |
= src/compiler/scala/tools/nsc/util/SimpleTracer.scala | |
274ce61 2011-09-25 4 // todo: We should unify this with Tracer. I'd do it but Tracer is | |
= src/compiler/scala/tools/util/VerifyClass.scala | |
e4db7e0 2012-07-20 16 case x: Throwable => // TODO: only catch VerifyError (and related) + ExceptionInInitializationError (for static objects that bomb on classload) | |
= src/reflect/scala/reflect/internal/Importers.scala | |
c749710 2012-01-25 302 // !!! todo: override to cater for PackageScopes | |
= src/reflect/scala/reflect/internal/Types.scala | |
d8add36 2011-08-30 2382 else typeFunAnon(tpars, copyTypeRef(this, pre, sym, tpars map (_.tpeHK))) // todo: also beta-reduce? | |
======================================== | |
Micro Dotta | |
======================================== | |
= src/compiler/scala/tools/nsc/interactive/tests/InteractiveTest.scala | |
6ba1b9f 2011-08-17 108 //TODO: integrate random tests!, i.e.: if (runRandomTests) randomTests(20, sourceFiles) | |
======================================== | |
Miguel Garcia | |
======================================== | |
= src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala | |
6255c48 2012-02-17 516 /* TODO Do we want to perform inlining in non-finally exception handlers? | |
1703736 2012-08-06 740 // TODO move the following assertion to typeFlowLattice.lub2 for wider applicability (ie MethodTFA in addition to MTFAGrowable). | |
= src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala | |
454c2a0 2012-05-08 64 // TODO: make this next claim true, if possible | |
454c2a0 2012-05-08 143 // TODO A ScalapBytecodeWriter could take asm.util.Textifier as starting point. | |
454c2a0 2012-05-08 199 * TODO but why? what use could javaNameCache possibly see once GenJVM is over? | |
454c2a0 2012-05-08 202 /* TODO After emitting all class files (e.g., in a separate compiler phase) ASM can perform bytecode verification: | |
454c2a0 2012-05-08 393 global.lub(List(a.tpe, b.tpe)).typeSymbol // TODO assert == firstCommonSuffix of resp. parents | |
454c2a0 2012-05-08 419 lcaName // TODO ASM caches the answer during the lifetime of a ClassWriter. We outlive that. Do some caching. | |
454c2a0 2012-05-08 524 // TODO check where ASM throws the equivalent of CodeSizeTooBigException | |
454c2a0 2012-05-08 582 // TODO: some beforeFlatten { ... } which accounts for | |
454c2a0 2012-05-08 697 for (innerSym <- allInners sortBy (_.name.length)) { // TODO why not sortBy (_.name.toString()) ?? | |
454c2a0 2012-05-08 715 // TODO is it ok for prevOName to be null? (Someone should really document the invariants of the InnerClasses bytecode attribute) | |
454c2a0 2012-05-08 730 * TODO assert (JVMS 4.7.6 The InnerClasses attribute) | |
454c2a0 2012-05-08 855 // classes, as they are monomorphic (TODO: ok?) | |
454c2a0 2012-05-08 970 assert(strs.size > 1, "encode instead as one String via strEncode()") // TODO too strict? | |
454c2a0 2012-05-08 993 assert(const.value != null, const) // TODO this invariant isn't documented in `case class Constant` | |
454c2a0 2012-05-08 1114 // TODO: evaluate the other flags we might be dropping on the floor here. | |
454c2a0 2012-05-08 1115 // TODO: ACC_SYNTHETIC ? | |
454c2a0 2012-05-08 1120 // TODO needed? for(ann <- m.annotations) { ann.symbol.initialize } | |
454c2a0 2012-05-08 1575 // TODO needed? for(ann <- m.symbol.annotations) { ann.symbol.initialize } | |
454c2a0 2012-05-08 1591 // TODO param names: (m.params map (p => javaName(p.sym))) | |
454c2a0 2012-05-08 1647 jclass.visitField(PublicStaticFinal, // TODO confirm whether we really don't want ACC_SYNTHETIC nor ACC_DEPRECATED | |
454c2a0 2012-05-08 1665 PublicStatic, // TODO confirm whether we really don't want ACC_SYNTHETIC nor ACC_DEPRECATED | |
454c2a0 2012-05-08 1742 assert(const.value != null, const) // TODO this invariant isn't documented in `case class Constant` | |
454c2a0 2012-05-08 1900 // sort `keys` by increasing key, keeping `branches` in sync. TODO FIXME use quicksort | |
454c2a0 2012-05-08 1931 /** Calculate in long to guard against overflow. TODO what overflow??? */ | |
454c2a0 2012-05-08 2129 /* TODO test/files/run/exceptions-2.scala displays an ExceptionHandler.covered that contains | |
454c2a0 2012-05-08 2135 // TODO someday assert(ignore.isEmpty, "an ExceptionHandler.covered contains blocks not in the linearization (dead-code?)") | |
454c2a0 2012-05-08 2142 // TODO in that case, ExceptionHandler.cls doesn't go through javaName(). What if cls is an inner class? | |
454c2a0 2012-05-08 2225 // TODO should but isn't: unbalanced start(s) of scope(s) | |
454c2a0 2012-05-08 2422 if (relevant) { // TODO check: does GenICode emit SCOPE_ENTER, SCOPE_EXIT for synthetic vars? | |
454c2a0 2012-05-08 2810 // TODO Logical's 2nd elem should be declared ValueTypeKind, to better approximate its allowed values (isIntSized, its comments appears to convey) | |
454c2a0 2012-05-08 2811 // TODO GenICode uses `toTypeKind` to define that elem, `toValueTypeKind` would be needed instead. | |
454c2a0 2012-05-08 2812 // TODO How about adding some asserts to Logical and similar ones to capture the remaining constraint (UNIT not allowed). | |
454c2a0 2012-05-08 3164 * TODO Eventually, these utilities should be moved to IMethod and reused from normalize() (there's nothing JVM-specific about them). | |
454c2a0 2012-05-08 3198 (eh.cls != NoSymbol) && ( // TODO `eh.isFinallyBlock` more readable than `eh.cls != NoSymbol` | |
454c2a0 2012-05-08 3208 for(h <- toPrune; r <- h.blocks) { m.code.removeBlock(r) } // TODO m.code.removeExh(h) | |
454c2a0 2012-05-08 3390 wasReduced |= coverWhatCountsOnly(m); icodes.checkValid(m) // TODO should be unnecessary now that collapseJumpOnlyBlocks(m) is in place | |
454c2a0 2012-05-08 3394 // TODO see note in genExceptionHandlers about an ExceptionHandler.covered containing dead blocks (newNormal should remove them, but, where do those blocks come from?) | |
454c2a0 2012-05-08 3397 // TODO this would be a good time to remove synthetic local vars seeing no use, don't forget to call computeLocalVarsIndex() afterwards. | |
df1b94e 2012-07-10 2219 // TODO SI-6049 | |
= src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala | |
97e78b8 2012-03-06 313 override def javaName(sym: Symbol): String = { // TODO Miguel says: check whether a single pass over `icodes.classes` can populate `innerClassBuffer` faster. | |
02a1522 2012-03-09 200 val StringBuilderType = new JObjectType(StringBuilderClassName) // TODO use ASMType.getObjectType | |
02a1522 2012-03-09 201 val toStringType = new JMethodType(JAVA_LANG_STRING, JType.EMPTY_ARRAY) // TODO use ASMType.getMethodType | |
= src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala | |
72a0e8b 2011-03-20 48 if( opt.showClass.isDefined && (codeGenerator.entryPoint == null) ) { // TODO introduce dedicated setting instead | |
72a0e8b 2011-03-20 1734 if((entryPoint == null) && opt.showClass.isDefined) { // TODO introduce dedicated setting instead | |
4cf60d6 2011-04-08 263 case definitions.TransientAttr => null // TODO this is just an example | |
= src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala | |
dbd31fb 2012-06-26 117 * TODO check for purity (the ICode?) of the module's constructor (besides m1's purity). | |
= src/compiler/scala/tools/nsc/backend/opt/Inliners.scala | |
6255c48 2012-02-17 152 TODO now that Inliner runs faster we could consider additional "monadic methods" (in the limit, all those taking a closure as last arg) | |
6255c48 2012-02-17 547 if(splicedBlocks.nonEmpty) { // TODO explore (saves time but leads to slightly different inlining decisions) | |
76b6fd4 2012-05-08 494 /* TODO Do we really want to inline inside exception handlers? | |
848295e 2012-06-26 674 * TODO handle more robustly the case of a trait var changed at the source-level from public to private[this] | |
848295e 2012-06-26 974 if(sameSymbols) { // TODO but this also amounts to recursive, ie should lead to adding to tfa.knownNever, right? | |
= src/reflect/scala/reflect/internal/AnnotationInfos.scala | |
454c2a0 2012-05-08 117 lazy val encodedBytes = ByteCodecs.encode(bytes) // TODO remove after migration to ASM-based GenJVM complete | |
454c2a0 2012-05-08 118 def isLong: Boolean = (encodedBytes.length > 65535) // TODO remove after migration to ASM-based GenJVM complete | |
======================================== | |
Paul Phillips | |
======================================== | |
= src/compiler/scala/tools/cmd/gen/AnyVals.scala | |
121f3a9 2012-09-16 323 def nonUnitCompanions = "" // todo | |
= src/compiler/scala/tools/nsc/Global.scala | |
5691a39 2011-03-30 1525 // todo: migrationWarnings | |
da12146 2012-02-25 1095 // TODO - trim these to the absolute minimum. | |
= src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala | |
9a9f73b 2011-04-28 241 // //TODO | |
= src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | |
1b3054c 2012-08-15 2748 // TODO: the insertion of ListOfNil here is where "new Foo" becomes | |
= src/compiler/scala/tools/nsc/backend/icode/GenICode.scala | |
0bea2ab 2011-11-28 970 // TODO - this is where we'd catch dynamic applies for invokedynamic. | |
= src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala | |
321ecd8 2011-07-27 55 * @todo Iulian says: I think there's some outdated logic in the checker. | |
= src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala | |
daa2637 2011-08-01 67 // TODO: make this next claim true, if possible | |
09188cd 2011-10-27 1060 // TODO: evaluate the other flags we might be dropping on the floor here. | |
da12146 2012-02-25 321 // TODO: some beforeFlatten { ... } which accounts for | |
= src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala | |
c5d9b7e 2011-04-28 1084 // @LUC TODO: this can probably break, namely when having: class A { def this() { new A() } } | |
= src/compiler/scala/tools/nsc/doc/html/page/Template.scala | |
92f32de 2011-08-05 604 val todo: Seq[scala.xml.Node] = | |
92f32de 2011-08-05 605 if(!comment.todo.isEmpty) { | |
92f32de 2011-08-05 608 val todoXml: List[scala.xml.NodeSeq] = (for(todo <- comment.todo ) yield <span class="cmt">{bodyToHtml(todo)}</span> ) | |
92f32de 2011-08-05 613 example ++ version ++ sinceVersion ++ exceptions ++ todo ++ note ++ seeAlso | |
= src/compiler/scala/tools/nsc/doc/model/ModelFactoryTypeSupport.scala | |
661ce29 2011-03-31 176 // XXX Still todo: properly printing refinements. | |
= src/compiler/scala/tools/nsc/interpreter/ILoop.scala | |
a8926ae 2011-05-29 431 // Still todo: modules. | |
4a6f54b 2012-04-14 92 /** TODO - | |
= src/compiler/scala/tools/nsc/interpreter/IMain.scala | |
33d4562 2011-06-03 202 // TODO: If we try to make naming a lazy val, we run into big time | |
4a6f54b 2012-04-14 939 // TODO - just use the new trees. | |
= src/compiler/scala/tools/nsc/interpreter/MemberHandlers.scala | |
b72a9b1 2011-05-07 192 // TODO: Need to track these specially to honor Predef masking attempts, | |
= src/compiler/scala/tools/nsc/interpreter/Power.scala | |
0e064a7 2011-03-18 72 def loop(todo: Set[Symbol]): Set[Symbol] = { | |
0e064a7 2011-03-18 74 val (repeats, unseen) = todo partition seen | |
= src/compiler/scala/tools/nsc/matching/Patterns.scala | |
61d34ed 2012-02-16 396 // TODO: for alwaysCovers: | |
= src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala | |
112dc4f 2011-04-11 604 // TODO: is there any way this can come back and bite us in the bottom? | |
= src/compiler/scala/tools/nsc/transform/Erasure.scala | |
c0e9e75 2012-03-23 503 // TODO: should we do this for user-defined unapplies as well? | |
= src/compiler/scala/tools/nsc/transform/Mixin.scala | |
bf6ce00 2012-01-16 212 // TODO preserve pre-erasure info? | |
bf6ce00 2012-01-16 223 // TODO preserve pre-erasure info? | |
da12146 2012-02-25 528 afterMixin(currentOwner.owner.info)//todo: needed? | |
e295186 2012-03-21 184 // TODO: verify we need the updateInfo and document why | |
= src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala | |
9d55bf4 2012-01-16 77 /** TODO - this is a lot of maps. | |
= src/compiler/scala/tools/nsc/transform/UnCurry.scala | |
06384c0 2012-02-22 566 // TODO - settings.noassertions.value temporarily retained to avoid | |
= src/compiler/scala/tools/nsc/typechecker/Adaptations.scala | |
4e488a6 2011-07-29 14 * TODO: unifying/consolidating said logic under consistent management. | |
= src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala | |
05382e2 2011-08-06 166 // TODO: if any of the found parents match up with required parents after normalization, | |
6fe5754 2011-08-07 928 // TODO: move these somewhere reusable. | |
= src/compiler/scala/tools/nsc/typechecker/Contexts.scala | |
b8575e9 2011-06-06 435 // represent the constructor body (TODO: why is there more than one | |
= src/compiler/scala/tools/nsc/typechecker/Implicits.scala | |
b8575e9 2011-06-06 663 // TODO: I would prefer to just call typed instead of | |
b8575e9 2011-06-06 667 // TODO: the return tree is ignored. This seems to make | |
= src/compiler/scala/tools/nsc/typechecker/Infer.scala | |
990fa04 2011-08-06 1675 // todo: should not return "false" when paramTypes = (Unit) no argument is given | |
= src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala | |
b005cd5 2011-10-28 355 // TODO | |
7a6fa80 2012-02-11 426 // TODO - reconcile this with the DefDef creator in Trees (which | |
= src/compiler/scala/tools/nsc/typechecker/Namers.scala | |
23ab7e3 2011-10-17 171 // FIXME: name comparisons not successful, are these underscores | |
23ab7e3 2011-10-17 202 // FIXME: The comment "let them co-exist" is confusing given that the | |
ad3dada 2011-10-21 1521 // TODO: change to isTypeMember ? | |
290f687 2011-10-22 73 def createPrimaryConstructorParameterNamer: Namer = { //todo: can we merge this with SCCmode? | |
290f687 2011-10-22 559 if (!tree.symbol.isAbstractType) //@M TODO: change to isTypeMember ? | |
290f687 2011-10-22 974 // TODO: see whether this or something similar would work instead. | |
290f687 2011-10-22 1280 // TODO: meta-annotations to indicate class vs. object. | |
290f687 2011-10-22 1302 // TODO: cleanup parameter list | |
= src/compiler/scala/tools/nsc/typechecker/PatternMatching.scala | |
802771b 2012-08-08 220 // Possible TODO: more deeply nested variable patterns, like | |
= src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | |
199ec3c 2011-04-28 657 // TODO: what is the optimal way to test for a raw type at this point? | |
9ae0963 2011-12-30 170 // defines a varargs method. TODO: Find a cheaper way to exclude. | |
00e9446 2012-04-10 1088 // case equals. TODO - more cases are warnable if the target is a synthetic | |
= src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala | |
f708b87 2012-03-03 287 // FIXME - this should be unified with needsProtectedAccessor, but some | |
= src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala | |
39938bc 2012-03-21 279 // TODO - figure out how to avoid doing any work at all | |
= src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
9853b5b 2011-06-22 660 // TODO: If the type of the qualifier is inaccessible, we can cause private types | |
b005cd5 2011-10-28 5446 // TODO: see if this formulation would impose any penalty, since | |
c5871a9 2012-02-03 5538 // !!! TODO - revisit now that ScalaObject is gone. | |
1bff570 2012-05-10 85 // TODO - this only catches trees which go through def typed, | |
08162c5 2012-09-01 5352 case tree: TypeTreeWithDeferredRefCheck => tree // TODO: retype the wrapped tree? TTWDRC would have to change to hold the wrapped tree (not a closure) | |
= src/compiler/scala/tools/nsc/util/WorkScheduler.scala | |
7336692 2011-07-14 10 private var todo = new mutable.Queue[Action] | |
= src/library/scala/collection/IndexedSeqLike.scala | |
ea0d891 2012-09-15 44 override def hashCode()= scala.util.hashing.MurmurHash3.seqHash(seq) // TODO - can we get faster via "indexedSeqHash" ? | |
= src/library/scala/collection/LinearSeqLike.scala | |
ea0d891 2012-09-15 53 override def hashCode()= scala.util.hashing.MurmurHash3.seqHash(seq) // TODO - can we get faster via "linearSeqHash" ? | |
= src/reflect/scala/reflect/internal/BaseTypeSeqs.scala | |
fff93cd 2011-05-16 8 // todo implement in terms of BitSet | |
= src/reflect/scala/reflect/internal/Definitions.scala | |
9853b5b 2011-06-22 802 // TODO: If T is final, return type could be Class[T]. Should it? | |
3bd40d8 2012-05-01 965 lazy val MethodTargetClass = requiredClass[meta.companionMethod] // TODO: module, moduleClass? package, packageObject? | |
= src/reflect/scala/reflect/internal/Flags.scala | |
6d2b5e1 2011-05-16 152 // todo: make LIFTED = latePRIVATE? | |
296b706 2012-04-05 228 // TODO - there's no call to slap four flags onto every package. | |
= src/reflect/scala/reflect/internal/Kinds.scala | |
82c793a 2011-12-23 35 // @M TODO this method is duplicated all over the place (varianceString) | |
= src/reflect/scala/reflect/internal/Mirrors.scala | |
296b706 2012-04-05 243 // TODO - having these as objects means they elude the attempt to | |
8c95273 2012-04-22 135 // TODO: What syntax do we think should work here? Say you have an object | |
= src/reflect/scala/reflect/internal/Names.scala | |
020053c 2012-01-05 144 * TODO - resolve schizophrenia regarding whether to treat Names as Strings | |
020053c 2012-01-05 394 /** TODO - reconcile/fix that encode returns a Name but | |
020053c 2012-01-05 423 /** TODO - find some efficiency. */ | |
020053c 2012-01-05 450 * TODO - see if it's any faster to do something along these lines. | |
5cbd7d0 2012-01-23 88 * TODO - have a mode where name validation is performed at creation time | |
= src/reflect/scala/reflect/internal/Symbols.scala | |
2a9781e 2011-06-24 2678 * TODO: the above conditions desperately need to be enforced by code. | |
f7535f7 2012-03-31 571 def isRootSymbol = false // RootPackage and RootClass. TODO: also NoSymbol. | |
296b706 2012-04-05 928 // TODO - don't allow the owner to be changed without checking invariants, at least | |
296b706 2012-04-05 2516 // TODO - this seems a strange definition for "isSourceMethod", given that | |
1a6408c 2012-04-06 108 // TODO - don't allow names to be renamed in this unstructured a fashion. | |
b66d390 2012-04-06 2351 override def isSetter = isAccessor && nme.isSetterName(name) // todo: make independent of name, as this can be forged. | |
b5a0190 2012-04-06 2366 // TODO - rescue CAPTURED from BYNAMEPARAM so we can see all the names. | |
1a6408c 2012-04-06 2619 // TODO - don't allow names to be renamed in this unstructured a fashion. | |
= src/reflect/scala/reflect/internal/Types.scala | |
269ea9a 2011-05-01 3299 // TODO: check whether this ever happens? | |
fff93cd 2011-05-16 3562 * todo: see how we can clean this up a bit | |
fff93cd 2011-05-16 3658 case st: SingletonType => appliedType(st.widen, args) // @M TODO: what to do? see bug1 | |
fff93cd 2011-05-16 3722 * TODO: | |
fff93cd 2011-05-16 5322 // XXX AM TODO: figure out when it is safe and needed to clear the log -- the commented approach below is too eager (it breaks #3281, #3866) | |
fff93cd 2011-05-16 5334 // XXX AM TODO: figure out when it is safe and needed to clear the log -- the commented approach below is too eager (it breaks #3281, #3866) | |
fff93cd 2011-05-16 5353 todo: change to: | |
4cfca8a 2011-11-23 3383 * TODO - is it allowed to nest AnnotatedTypes? If not then let's enforce | |
5f5029d 2012-01-10 2361 // TODO: test case that is compiled in a specific order and in different runs | |
2ca7d4f 2012-01-14 2260 // TODO: is there another way a typeref's symbol can refer to a symbol defined in its pre? | |
ef23611 2012-02-23 4790 // TODO: this should be simplified; in the stable case, one can | |
ef23611 2012-02-23 4799 // (TODO cont.) Why an existential in the non-stable case? | |
2a917f4 2012-03-26 2617 //TODO this may be generalised so that the only constraint is dependencies are acyclic | |
f15dc74 2012-07-27 3340 TypeVar(origin, constr.cloneInternal, typeArgs, params) // @M TODO: clone args/params? | |
= src/reflect/scala/reflect/internal/util/Collections.scala | |
8c3b693 2012-04-06 13 * TODO - inlining doesn't work from here because of the bug that | |
= src/reflect/scala/reflect/internal/util/TraceSymbolActivity.scala | |
2b89c34 2012-04-05 47 /** TODO. | |
= src/reflect/scala/reflect/runtime/JavaMirrors.scala | |
5933b9f 2012-09-16 179 // todo. find out the exact order of assocs as they are written in the class file | |
= src/reflect/scala/reflect/runtime/SynchronizedSymbols.scala | |
296b706 2012-04-05 97 // TODO | |
======================================== | |
Pavel Pavlov | |
======================================== | |
= src/library/scala/PartialFunction.scala | |
66b47e1 2012-01-16 72 //TODO: why not overload it with orElse(that: F1): F1? | |
======================================== | |
Philipp Haller | |
======================================== | |
= src/library/scala/concurrent/SyncVar.scala | |
74062e3 2011-08-01 96 // TODO: this method should be private | |
======================================== | |
Som Snytt | |
======================================== | |
= src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | |
9d925a3 2012-04-22 1845 // TODO: dredge out the remnants of regexp patterns. | |
======================================== | |
Vlad Ureche | |
======================================== | |
= src/compiler/scala/tools/nsc/backend/opt/InlineExceptionHandlers.scala | |
63f072f 2011-08-19 108 * TODO: Should we have an inlining depth limit? A nested sequence of n try-catch blocks can lead to at most 2n | |
63f072f 2011-08-19 131 //TODO: Need a way to clear tfa structures | |
63f072f 2011-08-19 202 // Here we could create a single local for all exceptions of a certain type. TODO: try that. | |
= src/compiler/scala/tools/nsc/doc/Settings.scala | |
355264f 2012-04-13 265 * TODO: Should be configurable | |
= src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala | |
dc70d1b 2012-07-12 141 // TODO: add case LinkToExternal here | |
= src/compiler/scala/tools/nsc/doc/model/MemberLookup.scala | |
dc70d1b 2012-07-12 38 // TODO: IF THIS IS THE ROOT PACKAGE, LOOK AT EXTERNAL LINKS | |
= src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala | |
6167ec6 2012-06-18 785 // TODO: Should be able to override the type | |
17f745d 2012-07-16 268 def valueParams: List[List[ValueParam]] = Nil /** TODO, these are now only computed for DocTemplates */ | |
= src/compiler/scala/tools/nsc/doc/model/ModelFactoryImplicitSupport.scala | |
355264f 2012-04-13 53 * TODO: Give an overview here | |
355264f 2012-04-13 161 // TODO: Isolate this corner case :) - Predef.<%< and put it in the testsuite | |
355264f 2012-04-13 197 // TODO: no substitution constraints appear in the library and compiler scaladoc. Maybe they can be removed? | |
355264f 2012-04-13 211 // TODO: Before creating constraints, map typeVarToOriginOrWildcard on the implicitTypes | |
355264f 2012-04-13 238 // TODO: Not sure this is the right thing to do -- seems similar to what scalac should be doing | |
355264f 2012-04-13 258 // TODO: This is maybe the worst hack I ever did - it's as dirty as hell, but it seems to work, so until I | |
= src/compiler/scala/tools/nsc/doc/model/diagram/Diagram.scala | |
fba6551 2012-06-13 109 * TODO: I think it makes more sense to use the tpe links to templates instead of the TemplateEntity for implicit nodes | |
= src/compiler/scala/tools/nsc/doc/model/diagram/DiagramDirectiveParser.scala | |
fba6551 2012-06-13 112 * TODO: Should document the annotation, for now see parseDiagramAnnotation in ModelFactory.scala */ | |
fba6551 2012-06-13 153 // TODO: This could certainly be improved -- right now the only regex is *, but there's no way to match a single identifier | |
= src/compiler/scala/tools/nsc/doc/model/diagram/DiagramFactory.scala | |
fba6551 2012-06-13 238 // TODO: Decide if we really want to hide package members, I'm not sure that's a good idea (!!!) | |
fba6551 2012-06-13 239 // TODO: Does .distinct cause any stability issues? | |
f8cb1ae 2012-06-28 74 // TODO: Everyone should be able to use the @{inherit,content}Diagram annotation to change the diagrams. | |
f8cb1ae 2012-06-28 156 // TODO: Everyone should be able to use the @{inherit,content}Diagram annotation to change the diagrams. | |
dac4e8f 2012-07-16 127 // TODO: Everyone should be able to use the @{inherit,content}Diagram annotation to add nodes to diagrams. | |
= src/compiler/scala/tools/util/PathResolver.scala | |
94db9d9 2012-06-08 203 * TODO: we should refactor this as a separate -bootstrap option to have a clean implementation, no? */ | |
= src/reflect/scala/reflect/internal/Types.scala | |
355264f 2012-04-13 3229 // TODO: can the `suspended` flag be used to poke around without leaving a trace? | |
======================================== | |
phaller | |
======================================== | |
= src/library/scala/concurrent/impl/ExecutionContextImpl.scala | |
2a36246 2012-05-17 76 null, //FIXME we should have an UncaughtExceptionHandler, see what Akka does | |
======================================== | |
soc | |
======================================== | |
= src/library/scala/collection/immutable/IntMap.scala | |
a64c305 2012-06-24 361 if (!hasMatch(p2, p1, m1)) join[S](p1, this, p2, that) // TODO: remove [S] when SI-5548 is fixed | |
a64c305 2012-06-24 365 if (!hasMatch(p1, p2, m2)) join[S](p1, this, p2, that) // TODO: remove [S] when SI-5548 is fixed | |
a64c305 2012-06-24 371 else join[S](p1, this, p2, that) // TODO: remove [S] when SI-5548 is fixed | |
= src/library/scala/collection/immutable/LongMap.scala | |
f02e19e 2012-06-24 356 if (!hasMatch(p2, p1, m1)) join[S](p1, this, p2, that) // TODO: remove [S] when SI-5548 is fixed | |
f02e19e 2012-06-24 360 if (!hasMatch(p1, p2, m2)) join[S](p1, this, p2, that) // TODO: remove [S] when SI-5548 is fixed | |
f02e19e 2012-06-24 366 else join[S](p1, this, p2, that) // TODO: remove [S] when SI-5548 is fixed | |
f02e19e 2012-06-24 368 case (LongMap.Tip(key, value), x) => x.updateWith[S](key, value, (x, y) => f(key, y, x)) // TODO: remove [S] when SI-5548 is fixed | |
2.10.x ~/code/scala |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys.process._ | |
val files = Seq("find", "src/compiler", "src/reflect", "src/library", "-type", "f").lines | |
val commits = Seq("git", "log", "--oneline", "v2.9.2...master").lines.map(_.split(" ").head).toSet | |
val Line = """(\w+) *.*? *\((.*?) (\d\d\d\d-\d\d-\d\d) +(\d+)\)(.*)""".r | |
case class Commit(hash: String, author: String, date: String) | |
case class Addition(commit: Commit, file: String, lineNum: Int, line: String) | |
import collection.mutable | |
val numFiles = files.length | |
val results = for { | |
(f, i) <- files.zipWithIndex.par //take 200 | |
if f.endsWith(".scala") | |
blame = { | |
println("%s (%d/%d)".format(f, i, numFiles)) | |
Seq("git", "blame", "-w", "-f", "--abbrev=6", "--date=short", "-C", f).lines | |
} | |
line <- blame | |
data <- try { | |
val Line(hash, author, date, lineNumber, text) = line | |
Seq(Addition(Commit(hash, author.trim, date.trim), f, lineNumber.toInt, text)) | |
} catch { | |
case ex: Exception => Seq() | |
} | |
if data.line matches """.*\b(TODO|FIXME|!!!)\b.*""" | |
if commits(data.commit.hash) | |
} yield { | |
data | |
} | |
for ((author, rs) <- results.groupBy(_.commit.author).toSeq.seq.sortBy(_._1)) { | |
println() | |
println("=" * 40) | |
println(author) | |
println("=" * 40) | |
for ((file, rs0) <- rs.groupBy(_.file).toSeq.seq.sortBy(_._1)) { | |
println("= " + file) | |
for (r <- rs0.seq.sortBy(_.commit.date)) | |
println(Seq(r.commit.hash, r.commit.date, "%4d ".format(r.lineNum), r.line.trim).mkString(" ")) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment