Summary: 4061 instances, 3305 unique Text Count // FIXME: imported header module 1 // FIXME: If the superclass is not @objc, use native reference counting. 1 // FIXME: check whether the representations are compatible modulo 1 // TODO: Use immutable box for immutable captures. 1 // FIXME: the test is too slow when the standard library is not optimized. 144 // FIXME: Arbitrarily pick the first overridden declaration. 1 // TODO: Handle over-aligned values 2 // FIXME: It's possible to parenthesize and relabel the argument list to 1 // TODO: swift-3-indexing-model: uncomment the following. 2 // FIXME: Hold off on registering extra inhabitants for dynamic enums 1 // FIXME: Belongs in LLVM itself 1 // FIXME: iOS has no Cocoa.framework 3 # FIXME: mangle LLDB build configuration into the directory name. 1 // TODO: named opaque types 1 // FIXME: what if other reabstraction is required? 1 // FIXME: Re-enable this. It currently crashes for malformed enum cases. 1 // TODO: Use llvm structure such as DenseMap. However, DenseMap does not 1 if (Text.startswith("FIXME:") || Text.startswith("TODO:") || 1 // FIXME: Specialize the match failure kind 1 // TODO: Use PrettyStackTrace instead? 1 // FIXME: This field is currently reset to \c nullptr by `lookInMembers` as 1 // FIXME: Eventually, this should itself be a verification 1 // has one. (TODO: Field types should never refer to generic parameters 1 // TODO: add runtime functions for some of these? 1 // TODO: internal vs. external layout-complete? 1 // FIXME: Perhaps ApplyFunction can go away entirely? 1 // FIXME: How do we preserve group information through partial module 1 // TODO: should the restriction be lifted in ClangImporter? 1 // FIXME: The haveAnyLocalScopes and destroy.empty() checks are relics of 1 // FIXME: What builtin do we use to check it???? 1 // FIXME: Layering violation to use the ClangImporter's define. 1 // Search for 'FIXME:' or 'TODO:'. 1 assert(!oldbits.getIsDeiniting()); // FIXME: make this an error? 1 // FIXME: This is supposed to be a short-term hack. 1 // TODO: this could be converted to a bailout if we don't want the client code 1 // TODO: maybe prove that certain conformances are impossible? 1 // TODO: Separate this into a shared analysis and factor it with 1 // FIXME: mayReleaseOrReadRefCount should be a strict subset of 1 // TODO: Is this correct? 1 // FIXME: This is actually a general problem: any "fatal" error could mess up 1 // FIXME: Symbolic reference. 1 // TODO: Float128 on targets that provide it? 1 // FIXME: The frontend should be dealing with symlinks, maybe similar to 1 // FIXME: const-ness on the clang API. 1 // FIXME: better explosion kind, map as static. 1 // FIXME: This is not a good place for FormalEvaluationScope + 1 // FIXME: this visitScopeEndingUses should never return false once dead 1 // FIXME: Delayed parsing would prevent these types from being added to 1 // FIXME: There is no need for a Mode within the algorithm once critical edges 1 // FIXME: The fact that this test happens twice, for some cases, 1 // TODO: instead of building this and then potentially converting, we 1 // FIXME: This doesn't support classes with resilient ancestry, because 1 var target: AnyObject? { set } // FIXME: Missing "get" wrt extension on NSControl leads to crash. 1 // FIXME: We should have a better notion of when to emit diagnostics 1 // TODO: functions 1 // TODO: The QoI could be improved in many different ways here. For example, 1 /// FIXME: This is all a hack; we should have lazier deserialization 1 // FIXME: Manually swap because it makes the ARC optimizer happy. See 1 // TODO: Eliminate store_borrow result so we can use 1 // TODO: maybe use NSObject as the superclass if we can find it? 1 # TODO # "computedGetOnlyToLet", 1 // FIXME: conformances should always be printed and parsed! 1 // FIXME: Default argument expressions? 1 // FIXME: We can't statically emit a global variable for generic properties. 1 // TODO: diagnose invalid representations? 1 // FIXME: We could offer a special fixit in the [weak self] case to insert 'self?.'... 1 /// TODO: clean this up, maybe recurse separately for each purpose. 1 /// FIXME: When request cancellation is implemented and Xcode adopts it, 8 // TODO: this is potentially suboptimal, but it generally won't matter. 1 // TODO: use a different completion kind when completing without an index 1 // FIXME: witness as a base locator? 1 // FIXME: we can't use the exclamation mark chunk kind, or it isn't 1 // FIXME: Comparing the SILOptions by identity should work in practice, but 1 // FIXME: Need a rewrite path here. 1 // FIXME: Could recover better if we "know" it's a compound name. 1 /// TODO: break up 1 // FIXME: this will be problematic if we ever try to bind superclass 1 // FIXME: constructors are added eagerly, but shouldn't be 1 // FIXME: SE-0155 makes this case unreachable. 1 // TODO: Bridged casts cannot be expressed by checked_cast_value_br yet. 1 // FIXME: If SwiftUI redeclares the typealias under the correct constraints, 1 // FIXME: Should this be an invariant load? 1 // TODO: Ought to support captures in block funcs. 1 // FIXME: Do we really need this? 1 // FIXME: Ideally the original definitions would be templatized on a Runtime 1 // TODO: Use OptimizedIRRequest for this. 1 // TODO: Refactoring or removing. Excluding the last byte is awkward. 1 // FIXME: this is a false positive. 4 // FIXME: Implement for real, so we actually dump the structure. 1 // FIXME: Even with fixLifetimes enabled, InstructionDeleter does not know 1 // FIXME: This is such a hack. 1 // FIXME: source location... 2 // FIXME: Need a better locator for a pattern as a base. 1 unitWriter.addFileDependency(F, /*FIXME:isSystem=*/false, /*Module=*/nullptr); 1 // FIXME: swift-3-indexing-model: add tests for fatalError() that use non-ASCII 1 // FIXME: Refactor SelfBoundsFromWhereClauseRequest to dig out 1 // TODO: this isn't necessarily optimal if the direct conformance isn't 1 // FIXME: This is a workaround. The proper solution is for IRGen to 1 // TODO: make a best effort to devirtualize, maybe? 1 // FIXME: Handle the case where the KeyPath result is generic. 1 // FIXME: return range info for generated interfaces. 1 // FIXME: Eventually, we may want to throw. 1 // FIXME: We can see UnresolvedDeclRefExprs here because we have 1 // FIXME: Circularity 1 // TODO: this is not required anymore when we have ownership SIL. But with 1 // TODO: Once we have a way to introduce more constrained archetypes, handle 1 // FIXME: Only because we're synthesizing conformances for deserialized 1 // TODO: honor C here. 1 // FIXME: We're dropping side effects in the base here! 1 // FIXME: This is a hack to work around our inability to handle multiple 1 // FIXME: Is there a way to get timestamp and buffer for a file atomically ? 1 // FIXME: Setup dependencies on the included headers. 1 // FIXME: we should detect if offset is required but not set. 1 // FIXME: This duplicates the structure of CallEmission. It should be 1 // TODO: maybe this should happen after managing the result if it's 1 // FIXME: both of these ought to take their arguments _owned so that 1 // TODO: import as enum instead 1 // TODO: this could be cheap enough. 2 // TODO: Narrow this to the sourceClass being exactly NSObject. 1 // FIXME: The naming and documentation here isn't ideal. This 1 // TODO: What else. 1 // FIXME: This feels very, very wrong. 1 // TODO: Change this into an assert. For some reason I am running into compile 1 // TODO: Should we support SILUndef on mark_uninitialized? We 1 // FIXME: This code currently can reorder destroys, e.g., when the 1 # FIXME: should this be target_link_libraries? 1 // TODO: May be consider also the size of the callee? 1 return ResultBucket::Normal; // FIXME: take best contained result. 1 // TODO: BFD and gold do not handle COMDATs properly 1 // TODO: enhance RangeExpression to make this generic and available on 1 // TODO: An exception for pointerish types? 1 // FIXME: copied from Clang's 2 // TODO: Prove this and put the proof here. 1 // FIXME: the logic around visibility in extensions is confusing, and 1 // TODO: we could try harder here, e.g. for enum elements to provide the 1 // FIXME: Parenthesize! 1 /// FIXME: Should go away once swift modules can support submodules natively. 1 /// TODO: consider cloning into each use block (or loop preheader for blocks 1 // FIXME: Specialize the error for a missing submodule? 1 // FIXME: Archetype destination type? 1 // [TODO: synthesize-Clang-type-from-mangled-name] Use the first child 1 // TODO: we could make this faster if we can cache class templates in the 1 // FIXME: Check third value, 'IsBridgedError' 1 // TODO: Support hoisting of begin_borrow and create end_borrow at appropriate 1 // TODO: hasArchetype() ? 1 // TODO: use this in shims headers in overlays. 1 // FIXME: CFErrorDomain is marked as CF_EXTENSIBLE_STRING_ENUM, but it turned 1 # TODO: Convert to store_true 1 /// FIXME: Remove this, make all assign operators constexpr and introduce user 1 // FIXME: update EagerSpecializer to be a function pass! 1 // FIXME: we should have ErrorType instead of null. 1 // FIXME: This is wrong for type declarations, which we're skipping 1 /*FIXME: override */ func foo() -> P1ImplS1 { 1 # TODO # return 0 1 /*FIXME:*/FunctionRefKind::DoubleApply); 1 // TODO: Is this needed now? 1 // FIXME: byte swap v on big-endian platforms. 1 // FIXME: this may not actually make any sense if we can efficiently move 1 // TODO: Could compress the empty array representation if there were a reason 1 // TODO (someday): Instead of adding unavailable entries to Results, 1 // FIXME: ASTWalker walks enum elements as members of the enum decl, not 1 // FIXME: Type checker performance prohibits this from being a 1 OS << I; // TODO: or should we output the literal value of I? 1 # FIXME: technically misnamed; should be "ImportPath" 1 // FIXME: swift-3-indexing-model: Generalize all tests to check both 1 // TODO: This seems overly limited. Why not projections of tuples and other 1 // TODO: This could be made more precise by querying AccessStorageAnalysis. 1 // FIXME: Any error anywhere in the SourceFile will switch off SIL 1 // FIXME: This should use llvm::TrailingObjects for its tail allocations, but 1 // FIXME: does object need to be atomic? 1 // TODO: replacementLinkEntry->setZeroSection() 1 // FIXME: Compare base types after substitution? 1 // FIXME: This is odd. 1 // FIXME: Doesn't work properly with generics 1 // FIXME: Do we need to note that we're doing some kind of recovery? 1 // FIXME: Should propagate name-as-written through. 1 // FIXME: This code needs to be cleaned up and updated 1 // FIXME: Workaround for rdar://problem/18889711. 'Consume' does not require 1 // FIXME: print entire module name? 1 // FIXME: We need to figure out if this is a stored or computed property, 1 // TODO: set up Outputs appropriately. 1 /// TODO: determine whether \p newValue's borrow scope already encompasses all 1 /// TODO: Add a component path to a ReferenceRoot abstraction and handle 1 // TODO: This might be an overkill but it's (currently) 1 // FIXME: Wrong 1 // TODO: handle resilient types 1 // TODO: Non-Error boxed existentials. 3 // TODO: if the base is +1, break apart its cleanup. 2 // the `Element` type; the one below is an educated guess.) FIXME: Derive a 1 // FIXME: We should support returning "Self.Type" for a root class 1 // FIXME: Property encoding differs in slight ways that aren't publicly 1 // TODO: Since we expect a pattern in this position, we should optimistically 1 // TODO: Check for a type here. This is how tuples with "interesting" 1 // TODO: This is only valid for arithmetic expressions. 1 // TODO: They don't have to be. 1 // FIXME: Poor source-location information. 1 // ABI TODO: Same type and superclass constraints also imply 1 // FIXME: Fully use the ASTPrinter. 1 // FIXME: when critical edges are removed and cond_br arguments are 1 // TODO: Derivative functions do not distinguish themselves in the mangled 1 // FIXME: This location should point to stdlib instead of being artificial. 1 // TODO: Just call the normalizer directly with range 1 /// TODO: combine this with PrunedLivenessBoundary. 1 // FIXME: Refactor this to be the thing that warms the cache. 2 /// TODO: distinguish between casting runtime functions which only lock and 1 // TODO: warn if taking the address of 'storage' will definitely 1 // FIXME: Figure out what to do with superclasses in C++. One possible 1 # FIXME: doesn't respect strings or comment nesting) 1 // FIXME: validate that the parent is a correct application of the 1 // FIXME: Would be useful for testing if swift had clang's -Rremark system so 1 // TODO: word-based rather than character-based? 1 // FIXME: This would be a good test of the interface format. 1 // FIXME: Reuse getAccessProjectionOperand() instead of using special cases once 1 // FIXME: Eventually this should be replaced by dSYM generation. 1 // FIXME: -dump-ast expects to be able to write output even if type checking 1 // TODO: Once the clients are taught about the new dependency kind, 1 // TODO: conflicts with other layout constraints 1 // FIXME: Ignore submodules, which are empty for now. 5 // FIXME: swift-3-indexing-model: try to remove the cocoa reference, but 2 // FIXME: This is not an aggressive implementation. :) 1 // FIXME: In order for this request to properly express its dependencies, 1 // FIXME: there is a Linux PMC API you can use to get this, but it's 1 // FIXME: Tail-allocated heap storage is currently categorized as 1 // FIXME: SizeInBits is redundant with DbgTy, remove it. 1 // TODO: maybe have a version of this that works on non-canonical types 1 // TODO: Document replacement map format. 1 // TODO: be more specific on casting. 1 /// FIXME: shouldn't these already be covered by guaranteedUsePoints? 1 /// TODO: enforce an invariant that destroy_addrs jointly post-dominate any 1 // FIXME: These are considered InteriorPointer because they may propagate a 2 // FIXME: synthesizeMaterializeForSet() wants to statically dispatch to 1 // FIXME: This could probably be applied to structured fix-its as well. 1 // FIXME: this should be true. 2 // FIXME: Only needed for associated type inference. Otherwise, 1 // TODO: we currently don't lazily load operator return types, but 1 RequestFlags::Uncached> // FIXME: Cache these 1 // FIXME: ~= will be built into the compiler. 1 // FIXME: Having these two calls in this if condition seems dubious. 1 // TODO: handle multi-value yields. 1 // TODO: maybe add a specific strategy for this? 3 // TODO: Parallel LLVM compilation cannot be used if a (single) module is 1 // FIXME: This doesn't handle situations where non-consuming uses are in 1 // TODO: if calleeAFP is definition: 1 // FIXME: We try to avoid looking for PragmaCommentDecls unless we need to, 1 // FIXME: Error from task queue while Result == EXIT_SUCCESS most 1 // FIXME: Use PrettyStackTrace instead. 1 // TODO: SIL address lowering should be able to handle such cases earlier. 1 // FIXME: For some reason we can end up with unbound->getDecl() 1 // FIXME: We should probably pay attention to argument labels someday. 2 /// FIXME: only handles stdout pipes, ignores stderr pipes. 1 // TODO: Eliminate trivially dead instructions here. 1 // FIXME: Build a superclass conformance if the superclass 1 # TODO: indirect cases 1 // FIXME: Remove -verify-ignore-unknown. 1 // FIXME: longer term, this should probably either be restructured to 1 // FIXME this drops the error on the floor. 12 // FIXME: improve checkForwardCollection to check the SubSequence type. 1 // FIXME: This doesn't seem like a particularly robust 1 // TODO: A more efficient way of getting the `none` representation 1 // FIXME: Form a new initializer by performing the appropriate 1 // FIXME: This is wrong -- we could have a non-generic class nested 1 // TODO: ensure that the returned sNaN bit pattern matches that of sNaNs 1 // TODO: implement caching. 1 // FIXME: Eliminate the less-correct path. 1 // FIXME: We shouldn't accept a lowered metatype here, but we need to 1 /// FIXME: the diagnostics engine has a copy of this. 1 // FIXME: only allow one variadic param 1 # TODO: Is this correct? I guess we are always doing something. 1 // FIXME: Add the .exit case when there is a way to suppress when not. 1 // TODO: handle StructElementAddrInst to create structs. 1 // FIXME: popular/unpopular API. 1 // FIXME: is this the right precedence level for "..." ? 1 // TODO: In principle, this could be isBindableToSuperclassOf instead of 1 // TODO: Ensure that all of the conditional-write logic below is encapsulated in 3 // TODO: objc metatypes? 1 // TODO: Add properties to protocol. 1 // FIXME: Add pound expressions (e.g. '#selector()') if it's at statements 1 @frozen // FIXME: Should be resilient (rdar://problem/38549901) 1 // FIXME: It's kind of weird in general that we have to look 1 // FIXME: Performance hack because we end up looking at the overridden 1 // FIXME: What about generic parameters? 1 // FIXME: Figure out how this better fits within the driver infrastructure. 1 /// FIXME: Split this out into cases? 1 # TODO: This should not be hard coded. Create a tool in the compiler that knows 1 // FIXME: Retrieve the conformance from the solution itself. 1 // FIXME: Once we support move-only types, remove this if the 1 // let errorType = try invocation.decodeErrorType() // TODO: decide how to use? 1 // FIXME: Is there a better way? 1 // TODO: On non-Apple platforms, fixed classes should not need any 1 /// TODO: Move this into PerformanceInlinerUtils and apply it to 1 /// TODO: Hoist struct/tuple with multiple operands out of borrow scopes if that 1 // FIXME: diagnose what happened? 1 Printer << tok::pound_elseif << " /* condition */"; // FIXME: print condition 1 // FIXME: what if lhs is a reference type? This will mutate it. 2 // TODO: Would be great if Clang had a return-three convention so we didn't 1 // TODO: MultiValueInstruction 1 // FIXME: Remove this once rdar://problem/19720334 is complete. 1 // FIXME: Technically should be "consume", but that introduces barriers 1 // FIXME: rename to be consistent in the clients (swift-driver) 1 // FIXME: Remove null data altogether rdar://problem/18801263 1 // FIXME: This walks a partially-type checked function body, which 1 // TODO: Use a better name than just adding a suffix. Ideally it would be 1 // FIXME: This should be more fine-grained -- we should only need the 1 // FIXME: figure out some reasonable way to share this stuff 1 // FIXME: Use a variable for this. 1 // TODO: A linear series of ifs is suboptimal. 1 /// TODO: We want this always to hold. 1 // FIXME: calculate these in constant time, via the dense maps. 2 using pointer = void; // FIXME: Should provide a pointer proxy. 1 // FIXME: because other-module results are cached, they will not be 1 // FIXME: We probably shouldn't be adding an rpath here unless we know ahead 1 // FIXME: Ideally we would instead have already recorded a restriction 1 // TODO: It may make sense to save both case values, and pick which one 1 // FIXME: We could be significantly smarter here by using the protocol 1 // FIXME: The existential layout's protocols might differ from the 1 // FIXME: weak name! 1 // FIXME: Do not report if we are within a template instantiation. 2 // FIXME: Unify with the above code path. 1 // TODO: At some point, we should special case closures that just *read* from 1 // FIXME: syntactic rename can only decide by checking the spelling, not 1 // TODO: MultiValueInstruction? 2 // TODO: Is this the right thing to do here? 1 // TODO: Introduce a proper way to express such a cast. 1 // TODO: Turn the generic signature into a demangling as the third 1 /// TODO: In diagnostic mode conjunction evaluation should stop 1 // TODO: Add support for this. 1 // FIXME: This is a hack. What we really want is to have substituted the 1 // FIXME: print expression. 1 // FIXME: This is very similar to what's in Implementation::lookupValue and 1 // TODO: Translate from the diagnostic info to the SourceManager location 1 // FIXME: Get real values for the following. 2 // FIXME: Emit a warning of some kind. 1 // FIXME: We need a way to handle the cyclic dependency here. 1 // TODO: Is it safe to just eliminate the initial retain? 1 # TODO # public private(set) var {name}: Int {{ 2 this->Size = this->Capacity = 0; // FIXME: Setting Capacity to 0 is suspect. 1 // TODO: We could store the data in CaseBB form and not have to do this. 1 // TODO: Revisit some of the below, for weak conformances. 1 // FIXME: Add something for this record or remove it. 1 // ^ TODO: Implement random access methods. 1 // TODO: typeCheckExpression() seems to assign types to everything here, 1 /// FIXME: Today address projections are referring to the result of the 1 // TODO: When on-stack partial applies are also handled, then their +0 1 // TODO: should we recurse within the module? 1 // FIXME: swift-3-indexing-model: use defaults. 13 // FIXME: We can end up here with dependent types that were not folded 1 // FIXME: This should be eliminated. 1 // (FIXME: use something cleaner than sizeof for same-layout test) 1 // FIXME: Platform compatibility. 2 // FIXME: If SwiftUI redeclares the typealias under the correct constraints, 1 // FIXME: Remove this class's FieldLayout. The superclass has its own copy, 1 // TODO: OSSA phi support. Even if all block arguments are trivial, 1 // FIXME: Make sure this thing is global. 1 /// TODO: maybe add a StoredWithDidSet here and to ReadWriteImplKind? 1 // TODO: express the multiple provides and depends streams with variadic 2 // FIXME: if it's ErrorType but we've already typechecked we shouldn't 1 // FIXME: This seems like a hack, there must be a better way.. 1 // FIXME: when we're in WMO and have multiple primary outputs, we derive the 1 /// FIXME: Thunk down to a Swift function value? 1 // TODO: Randomize the filler. 2 // FIXME: This should not be necessary. 1 // TODO: If posssible, change `autodiff::getLoweredParameterIndices` to 1 // TODO: skip non-generic types in different modules? 2 // FIXME: should warn about unexpected keyword kind. 1 // FIXME: Multi-file compilation may cause group id collision. 1 // FIXME: This is a terrible way to catch this. 1 // FIXME: validate 1 CONSTANT_OWNERSHIP_INST(Owned, GlobalValue) // TODO: is this correct? 1 // TODO: We need side-effect analysis and library annotation for this to be 1 // FIXME: IUO to Tuple 1 // TODO: There's an outstanding issue here with LazyInitializerExpr. A LIE 1 /// FIXME: remove uses of this. 1 // FIXME: Native convention if blocks are ever supported on Linux? 1 // TODO: This doesn't generate optimal code, tune/re-write at a lower 1 /// TODO: Add an optimistic data flow for more aggresive optimization: 1 // FIXME: Once we get a new language version, change this condition to only 1 /* TODO: If we're able to become a SwiftObject subclass in the future, 2 // FIXME: As a bit of a hack, do lookup by the simple name, then filter 1 // FIXME: Improve the RetainSinking pass to sink more/all 1 // TODO: Remove this limitation once public partial specializations 1 // TODO: MultiValueInstruction 2 // TODO: If the archetype has a superclass constraint, check that the 1 // FIXME: When the work to force MUI to be on Allocations/SILArguments 1 // FIXME: ImportFilterKind::ShadowedByCrossImportOverlay? 3 /// FIXME: Is this supposed to be the /newest/ version, or a canonical 1 // FIXME: Expand the cases here. 1 // FIXME: I think there's a bug here with recursive generic types. 1 // FIXME: Symbolic reference to the protocol conformance descriptor. 1 // TODO: Use a more robust discriminator for synthesized files. Pick something 1 // TODO: Should have a more efficient way to copy payload 1 /// TODO: Implement specialized mirror witnesses for all kinds. 1 // TODO: collect the witness tables. 1 // FIXME: Hyperlink destinations can't be wrapped - use a Line 1 // FIXME: should we handle the other cases here? 1 // TODO: prove that some conversions to existential metatype will 1 // FIXME: Check for missing 'override' keyword here? 1 // TODO: if non-phi reborrows are added, handle multiple results. 1 // TODO: honor ref kind? This is trickier than it sounds because we 1 // FIXME: macros 1 // TODO: add support for choosing a better default value for 1 // TODO: Handle block arguments. 1 // TODO: This should really be tracked separately from other destroys so that 1 // FIXME: These APIs allocate memory on the ASTContext, meaning it may not 1 // FIXME: this test is failing for watchos 1 /// FIXME: Once addTopLevelDecl/prependTopLevelDecl 1 // TODO: This is disabled temporarily for guaranteed phi args just for 1 // TODO: handle address-only types 1 # TODO: Convert to store_false 1 // FIXME: The trivia lexer should directly create TriviaPieces so we don't 1 // FIXME: Does this need to be signed? 1 // TODO: Handle generic instantiations, where we need to eagerly specialize 1 // FIXME: Compare throws()? Both existing subclasses would prefer 1 (void)payloadCopy.claimAll(); // FIXME: repack if not bit-identical 1 // TODO: We could be lazier about this. 1 // FIXME: Re-visit this to always do the check. 1 // FIXME: technically, synchronous functions are allowed to be cross-actor. 1 // FIXME: Try the appropriate extension for the current platform? 1 /// FIXME: Protocol methods (witness or default) that return Self will be given 1 // FIXME: get rid of allAddressUsesFromOldValue. Shouldn't this already be 1 // FIXME: We _could_ figure out a way to generate an entry point 1 // FIXME: "public" visibility macros should actually be added to the 1 /// TODO: Handle struct. 1 // TODO: Implement this for more interesting cases. 1 // FIXME: This is too conservative. We only _really_ care if this extension 1 // TODO: Handle Result.get as well 1 // FIXME: https://bugs.swift.org/browse/SR-1155 2 // TODO: adjust this to create try_begin_apply when appropriate. 1 using pointer = void; // FIXME: should add a proxy here. 1 // TODO: build a scalar tuple if possible. 1 // FIXME: Really these should be marked as artificial, but LLVM 1 // TODO: consider just storing the ProjectBoxInst in this case. 1 // FIXME: We need an access level to check against, so we pull one out 1 // FIXME: Better error handling 1 // TODO: Use the witness entry instead of falling through here. 1 // FIXME: We should support ownership eventually. 1 // TODO: does this need to be a pair?.... Can we be smaller than Int? 1 // FIXME: Allow class requirements here. 1 // TODO: fix this for static C++ methods. 1 // FIXME: We should have a SILDeclRef SymbolSource for this. 1 // TODO: Check whether the type is the pattern binding's own opaque type. 1 // ABI TODO: This makes assumptions about tuple layout in the ABI, namely that 1 // FIXME: Currently we only implement spare bits for primitive integer 1 // FIXME: Should we be validating the ContextName in some way? 1 // FIXME: This is very similar to what's in Serializer::writeInputBlock, but 1 // FIXME: actually use SerializationRequirement 2 // FIXME: Would like to abstract the dtor slot (#0) out from this to somewhere 1 // doesn't change. FIXME: this can't happen with sil-opaque-values. 1 // FIXME: this isn't right for the non-cooperative environment 2 // FIXME: Add SIL versions of mapTypeIntoContext() and 1 // forward-only collections. FIXME: Eliminate this if Self conforms to RAC. 1 // FIXME: Is there an IBSegueAction equivalent? 1 /*FIXME: override */ func foo() -> P1x { 1 // FIXME: We should probably print the real data here 1 // FIXME: There might be a tighter criterion to use here? 1 // FIXME: This is the wrong diagnostic for if someone manually declares a 1 // TODO: handle enums with array data. 1 // FIXME: It could, if someone constrained to ConcreteType.AssocType... 1 self.grow(n) // TODO: no factor should be applied 1 case Kind::ValueWitnessTable: // TODO: use ValueWitnessTableTy 1 // TODO: Issue a proper error message here 1 // FIXME: This is currently required to set the interface type of the 1 // FIXME: Identify __ivar_destroyer, __allocating_init, and 1 // TODO: arguably this should require the spelling to match even when 1 return true; // FIXME: should have a semantic context for groups. 1 /// TODO: remove this when @_implementationOnly modules are robust enough. 1 // FIXME: This shouldn't be needed. It is only necessary because of the 1 // TODO: add options to manipulate this. 1 // TODO: We could emit at this point a msg for temporary allocations. 1 // FIXME: This is a general property of the type system. 1 // TODO: Handle subobjects with a single composition, and other non-mutating 1 // FIXME: From here on we assume that both sets have the same small size. 1 // TODO: Preserve substitutions, since they may affect representation in 1 // TODO: allow waiters to fill in a suggested executor 1 // TODO: It could make sense to generalize this pass and move it to LLVM. 1 // TODO: If we add in alias analysis support here for apply inst, we will need 1 /// TODO: Why is this using a std::string? Why don't we use uniqued 1 /// FIXME: This entrypoint exists to support LLDB. Calls to this function are 1 // FIXME: This is a hack. 1 // TODO: Emit specific diagnostics here (e.x.: _move of global). 2 // FIXME: Is this still relevant? 1 static ArrayRef pruneMissingWitnesses( // FIXME: this does not remove the missing witness note here!!! 1 // FIXME: This should be based on a runtime library version check. 1 // TODO: There should really be a separate field controlling whether 1 // FIXME: Use the VFS instead of handling paths directly. We are particularly 1 // FIXME: hide individual custom completions 1 // FIXME: This check is unneeded if the type is known to be pure Swift. 1 //TODO: Consider ADL/non-member begin/end calls. 1 // FIXME: A renamed match might be useful to retain for the failure case. 1 // FIXME: Doesn't use the withTypeName argument yet 1 // FIXME: Typo correction! 1 /// TODO: distinguish between metadata runtime functions which only lock and 1 // FIXME: Should we record thunks? 1 // FIXME: ConvertTaskToJob is documented as taking NativePointer. It's operand's 1 // FIXME: Remove this once the above FIXME is addressed. 1 // TODO: Look through other conversions, copies, etc.? 1 // TODO: We could conceivably have an indirect opaque ** imported 1 // FIXME: this test is failing for watchos 1 /// TODO: There are a lot of code duplications between retain and release code 1 // TODO: This is not safe without proving the object being released is not 1 // FIXME: The upperBound on the nominal type itself may impose additional 1 // FIXME: we should migrate this case too. 1 // FIXME: Only needed for associated type inference. 2 // FIXME: It would be nicer if we could build the ASTs properly in the 1 // FIXME: The AST should do this for us. 1 // TODO: We should compare generic signatures. Class and witness methods 1 // FIXME: Improve this diagnostic. 3 /// TODO: This needs a better name. 1 /// FIXME: only exists for the quick-and-dirty MainActor implementation. 1 # FIXME: Remove this recovery option entirely 1 // FIXME: ugly to check here, instead perform unified check up front in 1 // TODO: [stronger-checking-in-clang-type-conversion] 2 /// FIXME: This should eventually move to llvm. 1 # TODO # "storedPrivateSetToLet", 1 // TODO: Making this a SwiftObject subclass would let us use Swift refcounting, 1 // FIXME: Adding the MergeModuleAction as top-level regardless would 1 // TODO: consider copying the base of the borrowed value instead of the 1 // FIXME: The code-completion kind is also used for semantic annotations. 1 // FIXME: Report it as failed request. 1 // TODO: bbargs should probably use one of their operand locations. 1 // TODO: ConstantTracker in the performance inliner and the 1 // TODO: Any thing else we can check in the abstract? 1 // FIXME: This retains previous behavior, but in reality the type of dynamic 1 // TODO: Certain covariant or otherwise ABI-compatible conversions should 1 // FIXME: We could avoid imploding and reexploding tuples here. 1 // FIXME: Expansion 4 // FIXME: Historically, UnresolvedMemberExprs have allowed implicit 1 // TODO: Check the root vtable entry for the method too. 1 // FIXME: Instead of falling through, we ought to return a concrete 1 // passes, such as DCE. FIXME: we might want to just introduce a separate 1 // FIXME: Making this a CanGenericSignature reveals callers are violating 1 // TODO: Instead of not increasing the score for arguments to #selector, 1 // FIXME: there might be some interesting cases where this 1 // TODO: consider recovering from here. We may want some way to suppress 1 // FIXME: The assert should be moved to the verifier. 1 // TODO: Functions are not currently handled because of closure lifetime 1 // FIXME: Need to handle conditional requirements here! 1 // FIXME: Move this to a private config.h as it's not usable in public headers. 1 // TODO: We should be able to shrink the packed metadata of the first two. 1 // TODO: handle throws 1 // TODO: synthesize witness tables on-demand for protocol compositions 1 /*TODO: enforcement*/ None, 1 // TODO: emit tuple_element_addr 1 // TODO: Query DLQ for endianness of target, compare to endianness of host. 1 // TODO: Fix SILGen so that this is an assert preventing the lowering of 1 // scope. TODO: This can be fixed by extending DIBuilder. 1 // FIXME: Once UIKit removes the "nonswift" availability in their versioned 1 // FIXME: This is a StringMap rather than a StringSet because StringSet 1 // TODO: Add op_fragment support for tuple type 1 // FIXME: separate ri from the expression below pending 1 // FIXME: This should be a function transform that pushes cloned functions on 1 // TODO: consider inlining some of this so that we don't have to 2 // TODO: remove when there is a native equivalent in the std lib 1 // TODO: right now we can't optimize computed properties that require 1 // FIXME: This entire request is a layering violation made of smaller, 1 // TODO: Add support for determining control dependence. 1 // FIXME: Default implementations in protocols. 2 // FIXME: CharSourceRange is a half-open character-based range, while 1 // TODO: Ban `Normal` and `Forward` cases. 1 // FIXME: We could do this all the time, and then provide Fix-Its 1 // FIXME: LLVM's YAML support does incremental parsing in such a way that 1 // FIXME: This should not take down the entire process. 1 // FIXME: This shouldn't be necessary. 1 // FIXME: For now we just fall back to the GSB for all protocols 1 // TODO: check for cached VWT / metadata for the type. 1 // FIXME: if Result has a trailing closure, break out. 1 // TODO: Do we need a copy here? 1 // TODO: Do a proper equivalence check here by looking for some relationship 1 # TODO # "stored", 4 // TODO: Some cases not handled above, but *probably* they cannot 1 // TODO: Use compileAndWriteLLVM. 1 // FIXME: If the identifier refers to a declaration, alias it? 1 // TODO: This class uses a bunch of global state like variables. It should be 1 /// FIXME: Avoid the possibility of an infinite loop by fixing the root 1 // FIXME: get the parameter from the init, and plug it in here. 1 // TODO: We should always require a function type. 2 // FIXME: make sure we cleaned up address-only BB arguments. 1 // TODO: The worklist can be a simple vector without any a membership check if 2 // FIXME: ExplodePatternBindingDecls is incompatible with VarInitializers! 1 // TODO: Expand the set of decls visited here. 1 // TODO: Should look through existential metatypes too, but it doesn't 1 // FIXME: Customize message to the kind of thing. 1 /// TODO: Once this changes, this code must be update. 1 // TODO: Ban 'Normal' and 'Forward'. 1 // FIXME: Get spare bits for pointers from a TargetInfo-like structure. 1 // Skip protocol requirements (FIXME: for now?) 2 // FIXME: allow dynamic extension/correction? 2 // TODO: Produce a type ref for the opaque type if the underlying type isn't 1 # TODO: fix the DifferentiationUnittest module. 1 // TODO: diagnose if semantics != AccessSemantics::Ordinary? 1 /// FIXME -- Create TypeInfoNodes.def and get rid of this field. 1 // FIXME: Not the best interface. We know exactly which FileUnits may have SIL 1 // FIXME: Don't let unbound generic types escape type resolution. 1 // TODO: Should remove the generic param and where clause for the error 1 // FIXME: Really, we should be setting this to `FunctionRefKind::Compound` 1 /// FIXME: This method presents a problem with respect to the consistency 1 // TODO: we have a problem lazily looking up members of an unnamed 1 ctx.getProtocol(KnownProtocolKind::Decodable); // FIXME: actually use SerializationRequirement 1 // FIXME: maybe don't have a default case 1 // TODO: Does this need to be inout, unique, or how will we be enforcing 1 // FIXME: Update existing ASTWalkers to deal with accessors appearing as 3 // FIXME: protect every element of 'raceData' against false sharing. 1 // FIXME [OPAQUE SUPPORT]: the distinction between where we want opaque 1 // FIXME: Sometimes ExprType is the type of the member here, 1 // TODO: These macro definitions are duplicated in BridgedSwiftObject.h. Move 1 { // FIXME: non-first character matches are all the same. 1 // TODO: Direct to Indirect result conversion could be handled in a SIL 1 // FIXME: We're not checking that the type satisfies the generic 1 // TODO: Record all loads during collectUsers. Implement findRetainPoints to 1 /// TODO: Handle partial_apply [stack] which has a dealloc_stack user. 1 // FIXME: Should not require objc_interop -- please put Objective-C-specific 1 # TODO: This should not be hard coded. 1 // TODO: if we have a better idea of what executor to return to than 1 // FIXME: Allow the type to be upcast if the type system has a concrete 1 // FIXME: We ought to provide an identifier for extensions so we can 1 // TODO: Implement a more precise analysis, so that we can eliminate only 1 // FIXME: diagnose properly 1 // TODO: Refactor this better. 1 // FIXME: As a result, the current implementation does not record the fact 1 // FIXME: Query concrete conformances in the generic signature? 1 // FIXME: Doesn't handle scoped testable imports correctly. 1 // FIXME: Not thread-safe! It should avoid deleting the value until 1 // FIXME: Can also weaken to the set of protocol constraints, but only 1 // TODO: conflicts with concrete and superclass 1 // TODO: combine reabstractions; this doesn't matter all that much 2 // FIXME: Perform a more limited simplification? 1 // FIXME: that should be Direct_Guaranteed 1 // FIXME: Be more careful with bridging conversions from 1 /// TODO: decide what this interface should really be. 1 // FIXME: Replace this with an assertion that the original tuple element 1 // FIXME: Shouldn't need to do this. 1 // FIXME: Use the ABI name here. 1 // TODO: handle non-escaping partial-applies just like a full apply. The 1 /// FIXME: provide a reset() operation to support multiple 1 // FIXME: If we were walking TypeLocs, we could actually get parameter 1 // FIXME: Duplicated from ImportDecl.cpp. 1 // TODO: We currently do not verify the module here since the verifier asserts 1 //TODO: Add SFINAE to test that the Container's iterators match the range's 1 // TODO: at this point we need to flush any the _tracing and profiling_ 1 /// FIXME: In a world where protocol extensions are dynamically dispatched, 1 /// TODO: Give this ownership of InsertedInstrs and migrate users that 1 // FIXME: Would it be possible to only have architecture-specific names 1 // FIXME: Can we rig things up so that we always have a Superclass 1 // TODO: Type should be either integer or function 1 // TODO create value constructor with indirect fields instead of the 1 // SEMANTIC ARC TODO: When the verifier is complete, we will need to 1 // TODO: OSSA; cleanup terminator results. 1 // TODO: Cast to NSError succeeds always. 1 // FIXME: diagnose if there's no conformance. 1 // FIXME: Not really true. We could check witnesses that don't involve the 1 // TODO: Should we support -fcoverage-compilation-dir? 1 // FIXME: We don't currently handle mismatched return types, however, this 1 // FIXME: We can also construct an UnresolvedMemberExpr here instead of 1 // FIXME: Introduce new SyntaxKind for ArgumentList (rdar://81786229) 1 // FIXME: There are type variables and overloads not common to both solutions 1 // TODO: Obtain spare bit mask data from the field descriptor 1 // FIXME: Code completion should only deal with one or the other, 1 // FIXME: Errors could cascade here, because name lookup for this 1 // TODO: It might be better to return just a value witness table reference 1 // TODO: Ensure index alignment 1 /// FIXME: remove this redundant API from SILValue. 2 // [TODO: Improve-Clang-type-printing] 1 // TODO: also remove this EnumInst in OSSA default case when the only 1 // TODO: There might be a two step solution where the init_existential_inst 2 // FIXME: Maybe cache the thunk by function and closure types?. 1 // TODO: I'm being gentle with the casts to avoid breaking things 1 // TODO: Handle argument conversion. All the code in this file needs to be 1 // FIXME: Tighten up checking for conversions to protocol types. 1 // FIXME: Only warn if the extension is in another module, and if 1 // FIXME: Use a faster hash here? We don't need security, just uniqueness. 1 // FIXME: We can provide better diagnostics here. 1 // TODO: We should run this at -Onone even though it's not diagnostic. 1 // FIXME: We could find *all* of the non-covered, defaulted associated types. 1 # FIXME: Convert to store_true action 4 // FIXME: We can probably skip property initializers, too. 1 // TODO: Support this function also for other enum implementation strategies. 2 // FIXME: Appropriately diagnose assignments instead. 1 // FIXME: Perform unification, diagnose redundancy or conflict upstream 1 // FIXME: rdar://problem/58884416: 2 // FIXME: Should iterate all var decls 1 // TODO: If function context arguments were given objc retain counts, 1 ctx.getProtocol(KnownProtocolKind::Decodable); // FIXME: actually use SerializatioNRequirement 1 # TODO # DoesntAddAPI, 4 // FIXME: Note that this @preconcurrency import was "used". 1 // FIXME: Ask Clang to try to parse and evaluate the expansion as a constant 1 // FIXME: We could do something crazy, like try to fix up the witness. 1 // FIXME: why do we need to break this string into two parts? 1 // TODO: derive this information in a more general way, e.g. add it 1 // FIXME: This should just be cast(User) but that doesn't 1 // TODO: swift-3-indexing-model: perform type erasure on the associated 1 // TODO: OSSA phi support 2 // FIXME: Hack that provides names with keyword arguments for accessors. 1 // TODO: If we introduce explicit opaque type decls, print them. 1 /// FIXME: I don't think this ever does anything useful. 1 // FIXME: We should delay parsing function bodies so these type decls 2 // FIXME: HACK: copied from HeapObject.cpp 1 // TODO: We can probably handle other partial applies here. 1 // FIXME: The proper way to do this depends on the decls used. 1 # TODO: Unify the linux and darwin builds here. 1 // FIXME: should have a cleanup in case of exception 1 /// TODO: Replace BasicBlock SmallDenseMaps/SetVectors with inlined bits; 1 // TODO: we could offer a "was awaited on" check here 1 // FIXME: We ought to have a symbol source for this. 1 // TODO: it's likely that this never matters in the current ABI, 1 // TODO: If source type size is smaller than the target type 1 // TODO: For multi-result instructions, we could simply insert all result 1 // TODO: We can/should diagnose statically detectable integer overflow 1 # TODO # public let {name}: Int = 0 4 // TODO: verify that BitwiseEscape results always have a trivial type. 1 // FIXME: Ideally we would handle decl modifiers as a special kind of 1 // FIXME: Use atomic operations here so that there is no data race. 1 // TODO: this currently fails to notify the pass with notifyNewInstruction. 2 // TODO: handle non-ObjC based stdlib builds, e.g. on linux. 1 // FIXME: Bridge small non-ASCII as StringStorage 2 // TODO: Can we derive this by running a borrow introducer check ourselves? 1 /// FIXME: This should use ExprWalker to print children. 1 // FIXME: Map to a real fixed-size Swift array type when we have those. 1 // FIXME: should work on the typealias 2 // TODO: Add support for dependent types (SR-13809). 1 // FIXME: This should also work without the Objective-C runtime. 1 // TODO: Would be great to print a kind of element this is e.g. 1 // FIXME: Do some validation here? 1 // FIXME: Portability. 1 // TODO: Remove this hack, it is only necessary because erasePhiArgument 1 // FIXME: This drops any added protocols on the floor, which is the whole 1 // TODO: We could assign a symbolic reference discriminator to refer 2 // FIXME: make the runtime do this in all cases, because there's no 1 // FIXME: Figure out if this can be migrated to LLVM. 1 // TODO: This relies on the lowest level array.uninitialized not being 1 // TODO: be less conservative about what destructors might be called. 2 // TODO: If this is behavior is not desired we should find a way to skip to 1 // FIXME: Check whether one of the types is dependent? 1 // FIXME: We need to do a tag-to-discriminator mapping here, but really 1 // FIXME: Change getTypeOfMember() to not pass GenericFunctionType here 1 // TODO: try to find a non-mutable type to use as the superclass. 1 // FIXME: What about SubscriptExpr and KeyPathExpr arg labels? (SR-15063) 1 // FIXME: this should use ptrauth_key_process_independent_data 2 // FIXME: consider types convertible to T?. 1 @nonobjc // FIXME: there should be no need in this attribute. 2 // FIXME: Remove. Still used by swift-corelibs-foundation 2 // TODO: insert dealloc in the catch block. 1 // FIXME: The current implementation doesn't rebalance siblings. 1 /// TODO: 4 // FIXME: (LLVM branch) This should probably be a DW_TAG_interface_type. 1 // FIXME: It would be nice to instead import the declaration but mark 1 // TODO: Verify somewhere that we properly handle any non-inout_aliasable 1 // FIXME: support 'inout', etc. 1 // FIXME: Decide what to do about (). It could be a type or an expr. 1 // FIXME: revisit this once we get default definitions in protocol bodies. 1 // TODO: I am currently just disabling this behavior so we can get this out 1 // TODO: Fix this API. 1 // FIXME: Return an ErrorStmt? 1 // FIXME: ImportDecl should store a DeclNameLoc. 1 // FIXME: The @inout_aliasable convention is used for indirect captures 1 // ###TODO: Is this an error? 2 // TODO: make emitGatherSpareBits take an APInt and delete. 1 // FIXME: This is missing implicit includes. 1 // FIXME: Maybe rename CodeCompletionDeclKind to a more general concept ? 1 // FIXME: use UnsafeMutablePointer.assign(from:) instead of memcpy. 1 // FIXME this drops the error on the floor. 1 // FIXME: hadParens 1 // FIXME: rename from RemoveCondFails to RemoveRuntimeAsserts. 1 // TODO: Test and enable this case. 1 // TODO: there are probably cases where we can avoid redoing the 1 /// FIXME: This is a hack because expandConformanceRequirement() 1 // FIXME: this shouldn't be necessary, should come by default 8 // TODO: IRGen optimization when `count` value is statically known to be 1, 1 // TODO: This field index would require runtime resolution with Swift 1 // FIXME: take advantage of this on other targets when targeting a 1 // TODO: Is this a correct assumption? Do we know that at this point that 1 // FIXME: TypeAttributes isn't a great use of space. 1 // FIXME: DeadEndBlocks does not affect value lifetime. It 1 # TODO # public private(set) var {name}: Int = 0 1 unlock(); // TODO: remove group lock, and use status for synchronization 1 // FIXME: @_dynamicReplacement(for:) includes a reference to another decl, 1 // FIXME: Should check for protocol in Sema 1 // TODO: add lifetime with matching lifetime in await_async_continuation 1 // FIXME: Can we do better? 1 // FIXME: delete this #if and dlsym once we don't 2 // FIXME: This is wasteful, but ASTPrinter is an abstract class that doesn't 1 // TODO: I wanted to call this 'verify', but some other pass is using this 1 increaseScore(SK_UserConversion); // FIXME: Use separate score kind? 3 // FIXME: subscripts are added eagerly, but shouldn't be 1 /// FIXME: We should identify nested loops with a common header and separate 1 // FIXME: This is not actually correct. We cannot promise to always 1 // FIXME: If we ever allow argument reordering, this is incorrect. 1 // TODO: This probably will need 32 bit help. 1 // FIXME: something is off here 1 // FIXME: PatternBindingDecls don't have attributes themselves, so just assume 1 // FIXME: namelookup::getAllImports() doesn't quite do what we need (mainly 1 // FIXME: Could extract this information from the mangled name. 1 // TODO: It is possible to retain and release task pointers, which means 1 // FIXME: Route this to a normal diagnostic. 2 // This is currently a TODO until we can implement a clean way to fix this 1 // FIXME: Remove the call to `_legacyNarrowIllegalRange` and return `illegalRange` directly 1 // FIXME: Why the arbitrary order difference in IRBuilder type argument? 2 // TODO: Document more how this is used from the `TaskGroupTaskStatusRecord` 1 // TODO: Erase from module if there are no more uses. 1 // FIXME: devirtualizeWitnessMethod below does not support cases with 1 // TODO: base type for global/static descriptors 1 // FIXME -- offer a fixit to explicitly specify the type 1 // TODO: We may want to peek at Decl->isObjC() and set this 1 /// FIXME: make this an actual import *path* once submodules are designed. 1 /// TODO: Use this to remove nontrivial dead alloc_ref/alloc_stack, not just 1 // TODO: cross-module WMO 1 // FIXME: Retry in this case. 1 // FIXME: Should be ::Always if its not one of our 1 // FIXME: This should use llvm::TrailingObjects, but it has subclasses 1 // FIXME: We can probably do better here! 1 # FIXME: We should cut this down to a single flag. 1 // FIXME: clang fails to generate a module if there is a `-fmodule-map-file` 1 // TODO: find a way to do this without modifying the AST. The AST should be 1 // TODO: this should handle generic classes properly. 1 // TODO: conflicts with concrete 1 // FIXME: Substitutions 1 // TODO: Check that generic signature matches box's generic signature, 1 // TODO: To handle a "take", we would need to generate additional destroys 1 // FIXME: Basically the same as SerializedModuleLoader. 1 /// FIXME: Could optimize away this storage with EBCO tricks. 2 // TODO: Global variables should eventually be referenceable as 1 // FIXME: These directives are only valid in conditional completion block. 1 // FIXME: Complain here? Default target info is unlikely to be correct. 1 // TODO: For private types or protocols, we might be able to definitively 1 /// TODO: std::variant. 1 // FIXME: this always chooses the first operator with the given name. 1 /// FIXME: This cache may not be necessary if the Decl TypeChecker instead 1 // TODO: opt out any non-standard methods here? 1 /// TODO: Move this to Utils. 2 // FIXME: This is gross. This needs to be done in the Frontend 1 // TODO: With coroutines, it would be better to yield here, so that 2 // to be loadable. TODO: generalize this to address-only types. 1 // FIXME: This loop is duplicated from above, but doesn't obviously factor 1 // FIXME: Once we have an FFI interface, make these have proper function bodies 1 // FIXME: noinline to work around an LLVM bug where the outliner breaks 1 # TODO: Investigate if we can eliminate CLANG_EXEC/SWIFT_EXEC and use more 1 /// FIXME: Gross. Hashing multiple "hash" values. 1 // FIXME: does this force us to emit a more expensive metadata than we need 1 // FIXME: Type variables responsible for contextual base could be cached 1 // FIXME: Include proper source location. 1 // FIXME: This is a workaround to not produce local variables for 1 /// TODO: generalize this to handle multiple nondebug uses of the 1 // TODO: Putting a canary at the end of the array in checked builds might 1 // FIXME: Realizes potential archetypes far too early. 1 // FIXME: Disallowing critical edges in SIL would enormously simplify phi and 2 // TODO: Ever need to handle +0 values here? 1 // TODO: Once we model Coroutine results as non-local scopes, we should be 1 // TODO: run_CharacterPropertiesComputed 1 // FIXME: This is a Sema bug and breaks resilience, we should not 1 // TODO: Support HoistableLoads for OSSA 1 // FIXME: Do we really just want to allocate these pointer-aligned? 1 // FIXME: If we inferred different types for literals (for example), 1 // FIXME: does this actually make sense, though? 1 /// TODO: eventually some of this logic can be moved to 1 // TODO: This name is somewhat unpleasant. Once the type is templated over its 1 // FIXME: when our calling convention changes to pass self at +0, 1 // FIXME: Iterating over LoadedModules is not a good way to do this. 1 // TODO: Handle generics and composed protocols 1 // TODO: Check that the bridged type is Hashable? 1 // FIXME: We ought not to have the is() condition here, but 1 // FIXME: Diagnose conflict 1 // TODO: Explore optionals using the same strategy used by the 1 // TODO: Emit dedicated errors for them. 1 // FIXME: Recursion guard is needed here 2 // FIXME: we should have a callback that would tell us 1 // FIXME: add more tests for fetchAndAnd, like we have for fetchAndAdd. 1 // FIXME: Could be an assert if we fix non-single-frontend mode to link 1 // TODO: Use per-function caches, at least for Resilient types, to use Maximal 1 // TODO: We shouldn't be able to get an lvalue here, but the AST 1 // FIXME: Figure out the right SubstitutionMap stuff if the witness 1 // FIXME: why does this use allAddressUsesFromOldValue instead of 1 // FIXME: When default implementations come along, we can try to match 1 // FIXME Support enums. 1 /// FIXME: This is not really ideal behaviour -- it would be better to return 1 // FIXME: The below won't run the assert on 5.1 stdlib if testing on older 1 // FIXME: this entire implementation only really works for ApplyInst. 1 // TODO: small capacity minimum is lifted, just need to make native 1 // FIXME: Does the superclass have to be @objc? 1 // FIXME: even though we don't apply the solution, the type checker may 1 // TODO: Generic _distance is still very slow. We should be able to 1 // FIXME: This should not be needed, but seems to help when stdout is being 1 unlock(); // TODO: remove fragment lock, and use status for synchronization 1 // FIXME: We don't really need 'public' on everything; we could just change 1 // FIXME: This doesn't handle a non-debugger REPL, which should also treat 3 // FIXME: Need to refactor the way we build an AST node from a lookup result! 1 // FIXME: not sufficient to establish a total order for overloaded decls. 1 // TODO: Float80 on x86? 1 // FIXME: This is not at all thread-safe. 1 // FIXME: swift-3-indexing-model: tests for traps. 1 // TODO Introduce "Pure Swift" deinitializers 2 internal // TODO: figure out if this works as a compiler intrinsic 1 // FIXME: I don't think this is right, but I don't understand the issue well 1 // TODO: destroy context before returning? 1 // TODO: Ban `Normal` and `Forward` cases. 1 // FIXME: We may need to look at the setter too, if we're going to do 1 // FIXME: Handle modules with multiple source files; these will fail on 2 /*FIXME: override */ func foo(_: P1) { which = "Derived.foo(P1)" } 2 // FIXME: We'd get the exact set of implicit imports if we went through the 1 {}, foreignError, {}, // TODO: take a foreign async convention? 1 // TODO: make an effort to filter by the target module? 1 // TODO: known-ASCII fast path, single-scalar-grapheme fast path, etc. 2 // TODO: Split RedundantCopyValueElimPeephole into more granular categories 1 // FIXME: We should use the OutputMap in this case. 1 // TODO: Should be a SILType. 1 /// TODO: In the "No" case, we can emit a fixit adding a default initialization 1 // TODO: use some special DeclBaseName for this? 1 // TODO: This format's nice and human readable, but does it fit well with 1 return false; // FIXME: Don't bail out for duplicates, too many tests depend 2 // FIXME: Don't let unbound generic types escape type resolution. 1 // FIXME: this is copy&paste from Demangle.cpp 1 // TODO: Add new cases here as appropriate over time. 1 // TODO: don't give this absolute precedence over other access paths. 1 // FIXME: Actually compare CFTypeIDs, once they are available in the metadata. 1 // FIXME: Promote these to an error in the next -swift-version break. 1 // TODO: Implement diagnostics for failed member lookups from module files. 1 // TODO: Arrays currently lower-bound the stride to 1. 1 # FIXME: should we use '-resource-dir' here? Seems like it has no advantage 1 // TODO: this would be useful for resilience 1 // TODO: swift-3-indexing-model: add tests for this function. 1 /// TODO: Better name. 1 // FIXME: try each submodule chain starting from the most specific. 1 // FIXME: This could be lazier. 2 // FIXME: We are iterating over a DenseSet. That can lead to non-determinism 1 /// FIXME: CanonicalizeOSSALifetime replaces this. 1 // TODO: if the class pointer is guaranteed, we can do this lazily, 1 // TODO: When we support pairing retains with @owned parameters, we will 1 // FIXME: should really be a Collection, as it is multipass 2 // FIXME: Record what happened here for the caller? 1 // FIXME: Handle unwrapping everywhere else. 1 // TODO: We could check this case with AliasAnalysis. 1 // TODO: This has become quite a hack. Instead, the final liveness boundary 1 // FIXME: I'm not sure why this is true! 1 // TODO: use special SILGen to preserve semantics in this case, 1 case PotentialEffectReason::Kind::AsyncLet: // FIXME: not really the right name? 1 // TODO: Consider tightening verification. This requires changes to 1 # FIXME: This should really be per-host, but the current structure 1 /// FIXME: This should never be called! Fix passes that create critical edges. 1 // FIXME: Handle resilience 1 lock(); // TODO: remove group lock, and use status for synchronization 1 // FIXME: Audit all uses and enable this assertion. 1 // FIXME: Record concrete type conflict, diagnose upstream 1 // FIXME: Handle indirect differentiation invokers. This may require some 2 // TODO: Don't remove the initializer in the rest of the compiler: 1 // FIXME: MC breaks when emitting alias references on some platforms 1 // TODO: We probably want to use a SILBuilderWithScope here. What should we 1 // TODO: attempt to specialize this based on the known types. 1 // FIXME: it's not clear if it's really worth this hierarchy. the 1 // FIXME: Check parents? 1 // FIXME: OpenExistential[Box]Value should be able to take owned values too by 1 // FIXME: RC underflow during deinit? 1 /// TODO: Rather than use an optional here, we should include an invalid 1 // TODO: take advantage of borrowed inputs? 1 // TODO: Find non-symbolic-referenced opaque decls. 1 // FIXME: We check `getSuperclass()` here because we'll be using the 1 // TODO: Non-C enums have extra inhabitants and also need additional value 1 // FIXME: We need to convert this back to an ObjC class for an 1 // TODO: disable when not debugging 1 // FIXME: Map source locations over. 1 // FIXME: Should also be able to do this for forced class 2 // FIXME: rdar://problem/59853077 1 // FIXME: This is the awful legacy of the old implementation of overlay 1 // FIXME: "TypeError" isn't exactly correct for this. 1 // FIXME: Continue accepting the old path for simulator libraries for now. 1 // TODO: eliminate all these 1 // FIXME: Arbitrary hack to allow later requirement sources to stomp on 1 // FIXME: Remove this once we clean up the mess involving raw values. 1 // FIXME: This is gross. We shouldn't have to import 1 // FIXME: Don't let unbound generic types escape type resolution. 2 // TODO: maybe this should use a more explicit instruction. 1 // FIXME: When we switch to Swift 5 by default, the "4" case should return 1 // TODO: this is a workaround until rdar://problem/25225083 is implemented. 1 (void)tmp.claimAll(); // FIXME: repack if not bit-identical 1 // TODO: Support fragile initializers. 1 /// FIXME: Borrow scopes should have scope-ending uses on all paths, even to 1 // TODO: Revisit this if `static func callAsFunction` is to be supported. 1 // FIXME: Foundation leaks through StdlibUnittest. It adds some conformances 1 // FIXME: These decls are not being parsed correctly since (a) some of the 1 // TODO: Investigate typo-correction here; perhaps the case name was 1 // FIXME: If we ever have first-class polymorphic values, we'll need to 1 // FIXME: All cases in this switch should go down to the fix logic 1 // FIXME: Eliminate this. 1 // FIXME: It's unfortunate that we have to copy the replacement text. 1 // FIXME: any place we have to do this that actually requires 1 // TODO: prove that some conversions from class existential metatype 1 // FIXME: This is really unfortunate. 1 // FIXME: When possible we should return a protocol or protocol 1 /// TODO: Replace this with a simple RPOT and use GraphUtils. Since we do not 1 assert(!fn->isAsync() && "TODO: support async functions"); 1 // FIXME: Get these and other argument strings from the same place for both 1 // FIXME: should this be covered automatically by the logic below? 1 // TODO: do we need to notify any changes? 1 // TODO: Can we do better? 1 // FIXME: Handle hierarchical names better. 1 // TODO: use a caching entrypoint (with all information 1 # FIXME: These don't really belong inside the swiftmodule, but there's not 1 // TODO: Support cross-module imports. 1 // TODO in computeSubSeqRelation. 1 // FIXME: Emit a diagnostic here. 1 // TODO: swift-3-indexing-model - review the following 1 /// TODO: This can be made space-efficient if all clients can maintain a block 1 // [TODO: Improve-Clang-type-printing] 2 // FIXME: if String is not stored as UTF-16 on this platform, then the 1 // TODO: Hoist this out? 1 // FIXME: should be unordered_set but I'm too lazy to write a hash 1 // TODO: If a nominal type is in the same source file as we're currently 1 // TODO: Is it safe to ignore all uses of the open_existential_addr? 1 // TODO: It is possible to do better here by looking at the address that is 1 # FIXME: Eliminate this argument; apparently the SDK names are 1 // TODO: swift-3-indexing-model: _failEarlyRangeCheck i? 2 // TODO: It's probably a good idea to have a separate 'opaque' bit. 1 // FIXME: FunctionRefKind 1 // TODO: Eventually, rather than SILGen'ing a borrow scope for owned 1 // FIXME: Except for extra inhabitants? 1 // FIXME: We should dyn_cast this when supported. 1 // TODO: Handle exploded results? We don't currently need to since the only 1 KnownProtocolKind::Encodable); // FIXME: actually use SerializatioNRequirement 1 // FIXME: Optimize for known switch values. 1 // TODO: These macro definitions are duplicated in Visibility.h. Move 1 // FIXME: There exists a small window where the module file may have been 1 // FIXME: Determine which associated types matter, and only print those. 1 // FIXME: We shouldn't need to encode this for /all/ private decls. 1 // TODO: Once non-canonical accessors are available, this variable should 1 // FIXME: This is only handling the value conversion, not 1 // TODO: Handle OpaqueReturnType, when we're in the middle of reconstructing 1 // TODO: Can we use defer in the runtime? 1 /// TODO: Expand this as appropriate over time. 1 // TODO: We need to be able to produce protocol conformances for each 1 // FIXME: Search imported modules to resolve the context. 1 // TODO: Merge with NoteRegion – range needs to change to start/end line/column 1 // TODO: Fill in definitions for other OSes. 1 // FIXME: non-atomic as a whole! 1 /// TODO: Introduce type refinement of the value being matched. 1 // FIXME: Create reusable RingBuffer 2 /// FIXME: Could this be standardized? It has and will lead to bugs. IMHO. 1 // FIXME: instead of filtering, expose the score and viability to clients. 1 /// TODO: If this sticks around, maybe we'll make a BitMatrix ADT. 1 // FIXME: Misnomer. This is not used for borrowing a formal memory location 1 // FIXME: But if one of them is now deprecated, should we prefer the 1 // TODO: consider reusing copies that dominate multiple reborrowed 1 # FIXME: don't actually depend on the libraries in SWIFTLIB_SINGLE_LINK_LIBRARIES, 1 // TODO: Try more ways to extract interesting decl refs. 1 // FIXME: It would be nice to say what part of the requirements actually 1 // FIXME: Implement! 4 // FIXME: If any of the candidates (usually just one) are in the same module 1 // FIXME: really it would be much better if Sema had stricter phase 1 // FIXME: This is mostly a simplified version of 1 // FIXME: Some existential types are reconstructed without 1 // TODO: As part of AST modernization, replace with a proper 1 // FIXME: Actually compare CFTypeIDs, once they arae available in 1 // FIXME: Stay consistent with earlier digests that had underscores here. 1 /// TODO: Add support for load_borrows, and reborrows by using persistentCopies. 1 /// FIXME: This is an awful data structure. We want the equivalent of a 1 // FIXME: Figure out how to deal with incomplete types, since that 1 increaseScore(SK_UserConversion); // FIXME: Use separate score kind? 1 // TODO: Create an iterator for accessing first level projections to eliminate 1 /// TODO: Handle tuples (but this is not so important). 1 # FIXME: This is incorrect since it always assumes the host 1 // FIXME: this adhoc filtering should be configurable like it is in the 1 // FIXME: Represent "init" by a special name and remove this case 1 // TODO: known-ASCII and single-scalar-grapheme fast path, etc. 3 ReferenceOwnership::Unowned; // FIXME: No "safe" variant. 1 // FIXME: Should this just return once a cycle is detected? 1 // TODO: remove this check once we have OSSA. 1 // TODO: Could avoid a retain if the bridged parameter is also +0 and 1 // FIXME: This should be a request so we can measure how much work 1 // FIXME: substitutions? 1 // TODO: swift-3-indexing-model - (By creating an ambiguity?), try to 1 // FIXME: AddrI will not be deleted (nor its operands) when Release is 1 // TODO: We might be able to form a nicer schema if the payload elements 1 // FIXME: Heavy WIP here. 1 // FIXME: Total hack. 1 /// TODO: We have not determined whether to support inexact type checks. It 1 // TODO: emit lifetime.start for this temporary, paired with a 1 // FIXME: Default argument expression, if available. 1 // FIXME: Until Apple gets a chance to update UIKit's API notes, always use 1 // FIXME: Assert that we diagnosed an error 1 /// TODO: Is this necessary? We visit BBs in RPO order. This means that we 1 // TODO: Handle alloc_box the same way, as long as the box doesn't escape. 1 // FIXME: why doesn't the bracket syntax work? 1 // TODO: Support Swift-style diagnostic formatting 1 // FIXME: There's more work to do. 1 // FIXME: Compound name locations. 1 // FIXME: Add contextual type purpose for switch subjects? 1 // TODO: add fix-its for typo'ed argument labels. This is trickier 1 /// TODO: maybe this should return a Witness? 2 // TODO: It would be nice if we could await the future without having to 1 /// TODO: Completely eliminate make_mutable calls if all operations that the 1 // FIXME: This should always be true. 1 // FIXME: When destructors get moved into vtables, update this to use the 1 // TODO: consider arguments. 1 // FIXME: only if the class itself is not marked final 1 /// FIXME: this is an elaborate hack to badly reflect Clang's 1 // TODO: we should fix this, otherwise we are missing RLE opportunities. 1 // FIXME: This isn't really a type-checking request, if we ever split off a 2 // TODO: We could in the future return more accurate information by 1 /// itself. FIXME: However, this is only a presentation form, and at present 1 // FIXME: If we ever get mixed modules that contain both SourceFiles and other 1 // FIXME: Is DW_TAG_union_type the right thing here? 1 // FIXME: Handle overloaded funcs too by passing a reference for each? 1 // FIXME: Remove this if possible. 1 // FIXME: Proper isa/dyn_cast support would be better than a string 1 // FIXME: If the base is still a type variable, we can't tell 1 // FIXME: We should somehow pass an OpenUnboundGenericTypeFn to 1 // FIXME: Generic typealiases contradict the assumption above. 1 // FIXME: This check is only necessary to keep things working even without 1 // TODO: Once more than just structs have canonical statically specialized 1 // TODO: This needs a better name. 2 // FIXME: This should be folded into constraint generation for conditions. 1 /// FIXME: Find a better way to implement this. Allows conditions to be 1 // FIXME: If isolatedActor has a variable in it, refer to that with 1 // FIXME: heap assertion for other platforms? 1 // FIXME: why does StackPromotion need to run in the module pipeline? 1 // FIXME: Handle overridable members in class extensions too, someday. 1 // FIXME: We should find a better way of solving this than losing location 1 // FIXME: We can see UnresolvedDeclRefExprs here because we have 1 // TODO: Should have collected the conformances used in the original 1 // FIXME: Could allow a subclass here, but the rest of the compiler 1 // FIXME: Print location info if available. 1 // FIXME: add a structural requirement to SIL/OSSA so valid storage has 1 // FIXME: This is not desirable because: 2 /// FIXME: Technically this should be guarded by a compiler flag like 1 // FIXME: Ambiguity detection and resolution. 1 // FIXME: Should be able to pick the best locator, e.g., based on some 1 // TODO: This should probably produce subscript(keyPath:), but we 1 // TODO: Handle nested ifs 1 // TODO: Perhaps we can map subscript components to dictionary keys. 1 // TODO: as soon as we generate alloca instructions with accurate lifetimes 1 // FIXME: rdar://problem/58884416 1 // FIXME: get the 'end' of the for stmt 1 // FIXME: If getOverriddenDecl() kicked off a request for imported decls, 1 unlock(); // TODO: remove fragment lock, and use status for synchronization 3 // TODO: 1 // FIXME: If we were able to actually fix things along the way, 1 // FIXME: Dependencies should be de-duplicated at serialization time, 1 // FIXME: Rip this out once we can get a concrete conformance from 1 // TODO: exceptions! 1 // TODO: Check the result of the async function matches the parameters 1 // FIXME: Support ownership. 2 // FIXME: Conformances in InitExistentialRefInst is currently not included 1 // TODO: Maybe include invalidation code for CallSiteDescriptor after we erase 1 // FIXME: Since we do not support promoting strong_release or release_value 1 // FIXME: Find a better place for this map to live, to avoid 1 ctx.getProtocol(KnownProtocolKind::Encodable); // FIXME: actually use SerializationRequirement 1 // FIXME: Should this check HasImported instead? 1 # TODO # "computedPrivateNonmutatingSetToLet", 1 // FIXME: these should both use ptrauth_key_process_independent_data now. 1 // FIXME: Make this more principled. 1 // FIXME: SemanticContextKind::CurrentModule is not correct. 1 // FIXME: Builtin and qualified types in LLVM have no parent 1 // FIXME: We allow trivially-representable cases that also 1 // TODO: swift-3-indexing-model - add docs 7 // method. TODO: only if it's implicit? But then we need to 1 // TODO: this should really be an unlowered AST type? 1 // FIXME: Failing here should not take down the whole process. 1 // FIXME: We're implicitly depending on the fact that lookupConformance 1 // TODO: maybe we can do this lazily or maybe we should disallow SIL passes 1 // TODO: [non-objc-class-clang-type-conversion] 1 // FIXME: Since we're not resolving overloads or anything, we should be 1 // FIXME: We don't always pass down whether a type is from an 1 // FIXME: 'RawAccessorKind' is always 2 (NOT_ACCESSOR_INDEX). 1 // TODO: remove this task from the child-task chain? 1 // TODO: Handle async! 1 // TODO: Omit already declared or mutally exclusive accessors. 1 // FIXME: Module imports inside that header. 1 // TODO: Migrate this to somewhere it can be shared with Array 1 // FIXME: If we already looked at this for this generation, 1 // FIXME: swift-3-indexing-model: tests for the trap. 3 // FIXME: It would be better to add a new AttributedType sugared type, 1 // TODO: attempt to escalate the thread running the task, if it's 1 /*TODO , SILLocation location*/) 1 // FIXME: If we start emitting constant references to here, 1 // FIXME: Fix the problem where if NominalTypeDecl::getAllProtocols() 1 // TODO: Currently we only handle cases in which one side of the copy is block 1 // TODO: Handle DIExpr that is already attached 1 // TODO: Handle @inout arguments by iterating over the apply arguments. For 1 /// TODO: LLVM should provide this. 1 // TODO: once we support generics in class types, replace this with 1 // FIXME: The live range of a coroutine alloca within the function may be 1 // FIXME: visitExtendedScopeEndingUses can't return false here once dead 3 // TODO: delete if we're not using dynamic enforcement? 1 // FIXME: Lift the availability restriction. 1 // TODO: Use a real type? 1 // TODO: As a separate analysis, verify that the load_borrow scope is always 1 /// TODO: This is currently a module transform to ensure that source-level 1 // TODO: We currently assume @in/@in_guaranteed are only used for 1 // TODO: The original convert_function will likely be dead after 1 // TODO: supporting enums here would be very easy. The main thing is adding 1 // TODO: this privileges the old API over the new one 1 /// TODO: Don't occupy any storage for such let properties with constant 1 // FIXME: At the moment, empty primary input names correspond to 1 // FIXME: We shouldn't need this, but it's masking bugs in our scanning 2 // TODO: The following should be set based on inspecting the image. 1 // TODO: Ban `Normal` and `Forward` cases. 2 // FIXME: Check storage decls where the setter is in a separate module from 1 // FIXME: instead of resetColor(), we can look into 1 // FIXME: Can we generalize this special handling for VarDecl 1 // FIXME: We should consider if it is worth promoting a load [copy] 1 // TODO: This logic subtly anticipates SILGen behavior. In the future, change 1 // FIXME: If we reverse them at serialization time we could get rid of this. 1 // TODO: Bit pointless using the "ContextFinder" here. Ideally we would have 1 // TODO: It would be great to get rid of these. 1 // FIXME: This isn't a total ordering. 1 // TODO: fix tryEliminateUnneededForwardingInst to handle debug uses. 1 // FIXME: Eliminate this, perhaps by adding a variant of 1 // TODO: Optimize the dispatch code to minimize the amount 1 // FIXME: Resolve through name lookup. This is brittle. 1 // FIXME: This is algorithmically terrible. 1 /// FIXME: This must be kept in sync with replaceLoadSequence() 1 // FIXME: Not actually a builtin operator, but should probably 1 // TODO: use the SGFContext passed in. 1 // FIXME: For now this just produces a set of redundant conformances, but 1 /// FIXME: This should be a CapturingExpr. 1 // TODO: 1 // FIXME: do something more intelligent here. 1 // FIXME: When does this happen? 1 // FIXME: Record this expression somewhere so that DI can perform the 1 // TODO: Support MultipleValueInstructionResult in OSSA RAUW utility and 1 .skip(.tvOSSimulatorAny(/*TODO: 0...13, reason: */"lazy objc naming is not available on these OSes")) 1 // FIXME: SemanticContextKind::Local is not correct. 1 // TODO [OPAQUE SUPPORT]: diagnose multiple opaque types 1 // TODO: Consider removing this. 1 /// TODO: maybe add InitiallyStatic for when the access is statically 1 // FIXME: Shouldn't this be a hard error? 1 // FIXME: Perhaps these belong on ConstraintSystem itself. 1 // FIXME: Lift the availability restriction. 1 /// FIXME: Avoid the possibility of an infinite loop by fixing the root 1 // TODO: If this is useful, move onto OwnedValueIntroducer itself? 1 // FIXME: Shouldn't this be an implicit conversion? 1 # TODO # get {{ return 0 }} 2 /// TODO: replace the destroy hoisting in CopyForwarding::forwardCopiesOf and 1 // FIXME: We need a better way to show headers, since they usually /are/ 1 // TODO: remove this once all platforms support lowering the intrinsic. 1 // TODO: use a custom CC that returns three scalars efficiently 1 // FIXME: The following does not compile on newer clangs because operator<< 1 // TODO: Is it reasonable to just honor the marking, or should we look 1 // FIXME: Move all places where SIL printing is happening to explicit options. 1 /// TODO: This should probably go away entirely. 1 return false; // FIXME: Must continue to run to pass the tests, but should not 1 // FIXME: This needs to be a linker-local symbol in order for Darwin ld to 3 // FIXME: Handle self along with the other body patterns. 1 // FIXME: Once we can model generic typealiases properly, rip 1 // FIXME: Support more complex subject like '(Enum1, Enum2)'. 1 // FIXME: BinaryFileName below should instead be ld-style names for 1 // FIXME: Types in the same module are still important for enums. It's 1 /// TODO: when DestroyHoisting can run later in the pipeline, check if we still 1 // FIXME: Either remove the ModuleDecl entirely from conformance lookup, 1 // TODO: remove this check once ARCSequenceOpt is retired or the quadratic 1 // FIXME: These expressions merely adjust the result type for DynamicSelf 1 // TODO: Stored properties with didSet accessors that don't look at the 1 // FIXME: Remove this when lookup of initializers becomes restricted to our 1 // FIXME: SemanticContextKind::CurrentModule is not correct. 1 // TODO: Mapper needs to calculate a function hash as it goes. 1 /// FIXME: All functions should have locations, so this method should not be 2 // FIXME: Check that this declaration is at least as available as the 1 // FIXME: the next comment is false. 1 // FIXME: Revisit this; in particular shouldn't __owned parameters be 1 // FIXME: Parse the file with EnableInterfaceHash option. 1 // FIXME: Use of the platformString here is non-awesome for application 2 // TODO: Look this up using the upperBoundSubstConformances 1 // TODO: We could generate inline code for the fast-path, i.e. the metadata 1 // TODO: print the call-stack in a controlled way if needed. 1 // FIXME: workaround for . If we don't 1 // FIXME: This ties ASTs to every argument and the exact order that they were 1 // FIXME: Misnomer. This class is used for both shared (read) and exclusive 1 // TODO: we can also suppress this if the cycle would exist independently. 1 /// FIXME: This should go away once Clang's dependency scanning library 1 // TODO: We should have an "isNoReturn" bit on Swift's BuiltinInfo, but for 1 // FIXME: Actually check this? 1 // FIXME: this does not return all instructions that end a local borrow 1 // FIXME: doesn't accommodate >64-bit or signed raw integer or float values. 1 // FIXME: It'd be nice not to have to call through the runtime here. 1 // TODO: Can this switch be restructured so break -> error, continue -> 1 // TODO: maybe there are checks we can do here? 1 // TODO: re-enable this as we switch to the new mangling for ObjC names. 1 // FIXME: this isn't really inherently good; we might want to use 1 // FIXME: Doing an AST lookup here is gross and not entirely sound; 1 // FIXME: this is overly conservative. It should return true only of the 1 // FIXME: Inaccurate TypeReprs. 2 // TODO: reject code that is too complex. 1 // FIXME: Remove after fixmeWitnessHasLinkageThatNeedsToBePublic is removed. 1 // FIXME: Move SILType to TypeResolverContext. 1 // FIXME: Unfortunately, to make sure this is as efficient as possible we 1 // FIXME: Remove @usableFromInline and @frozen once Hasher is resilient. 3 // FIXME: assert that T is not a function-pointer type? 2 // FIXME: Eventually we should find a way to expose this function to the lookup 1 // TODO: Once witness tables are statically specialized, check whether 1 // FIXME: This should work without an output file map. We should have 1 /// TODO: Perform another run of AccessEnforcementSelection immediately before 1 // TODO: check if this is correct 1 // FIXME: swift-3-indexing-model: add tests for `underestimatedCount` 1 /// TODO: Fix above comment 1 // TODO: If the key argument has been concretized by a same-type 1 // FIXME: Better recovery. 1 /// TODO (rokhinip): Only 8 bits of the full size_t are used. Change this into 1 // FIXME this drops the error diagnostic on the floor. 1 // FIXME: swift-3-indexing-model: range check. 13 // FIXME: Setting a base on this expression is necessary in order 1 // Emit a warning about such overriding (FIXME: we might conditionalize 1 /// FIXME: This should be checked in the SILVerifier, with consideration for the 1 // FIXME: kind, semantic context? 1 // FIXME: Poor location info. 1 // FIXME: remove this temporary hack to advance the iterator beyond 1 // FIXME: Is it actually UTF-32 on Darwin? 1 // TODO: Check that derivative function types match excluding 1 // FIXME: this isn't correct: this doesn't properly handle translating 1 // FIXME: if we store a null pointer here using the standard ABI for 1 // TODO: Explicit hop with no hop-back should only be allowed in independent 1 // FIXME: It'd be nice not to need a runtime call here; we should just 1 // FIXME: using the range up to a dot is silly when candidate isn't a file. 1 // TODO: Try using MetadataReader to read the string here? 1 // FIXME: handle escaped keyword names `init` 1 // FIXME: these are very hacky, how to do properly? 2 // TODO: Can we ever hit copy_values here? If we do, we may be missing 1 // TODO: delete if we're not using static enforcement? 1 // FIXME: Do we care about vectors of pointers? 2 /// TODO: Track only objects that were registered for tracking? 1 // TODO: The ordering of checks may benefit from using a PGO, because 1 // TODO: The following should be set based on the target. 1 // FIXME: Perhaps even if the rule is LHS-simplified, it's parent should be 1 // FIXME: Ideally, we'd report non-suppressed diagnostics on synthetic 1 // TODO: metatypes 1 // TODO: Should we filter out some flags? 1 // FIXME: If we had some basic sanity checking of Self, we might be able to 1 public: // FIXME: access control hack 1 // FIXME: Diagnose redundancy or conflict upstream 1 // FIXME: This is a bit of a hack. 1 // FIXME: currently we only return annotations once, so if the original edit 1 // TODO: When we switch to malloc/free allocation we'll be leaking memory 2 // TODO: When the optimizer stops stripping begin_access markers and SILGen 1 // FIXME: calculate these in constant time if possible. 1 // FIXME: MSVC doesn't pack bitfields with different underlying types. 1 // FIXME: The RequirementMachine will assert on re-entrant construction. 1 // TODO: We could be more aggressive about considering addresses based on 1 // TODO (rdar://17033499) If the source is an existential, we should 1 // TODO: Enable by default at the next source break. (SR-13199) 1 // FIXME: Seems like we should be able to get at the intermediate state 1 // FIXME: This seems wrong. Overlay for system Clang module doesn't 1 // TODO: cache 1 // TODO: maybe assert similarity to signature.getType()? 1 // FIXME: ld64 crashes resolving relative references to coalesceable symbols. 1 // FIXME: Swift diagnostics currently have no flags. 1 // TODO: The pattern could be immutable if 1 // TODO: do something to preserve LValues in the delayed arguments? 1 // TODO: Strengthen analysis. 1 // FIXME: This appears in _swift_buildDemanglingForMetadata(). 1 // FIXME: The constraint string is printed directly here because 1 // TODO: Add throws if converting a function and it has a converted call 1 // FIXME: need to mark these and assert they never get a side table, 1 // FIXME: Remove this to save metadata space. 1 // FIXME: Might want to warn about this in debug builds, so we can 2 // FIXME: llvm::vfs::FileSystem doesn't give us information on whether or 1 // TODO: Store inout bit here. 1 // FIXME: Handle other types here. 2 // TODO: Enum. 1 // TODO: If we have an async alternative we should check its result types 1 // FIXME: Ad hoc recursion breaking, so we don't look through the 1 // FIXME: Consider assigning over existing elements, rather than clearing & 1 // TODO: For perf, we could use a local growable buffer instead of Any 2 // FIXME: register property metadata in addition to the methods. 1 /// TODO: consider just reorganizing cur and its Further node if 1 // FIXME: We could probably make this work. 1 // FIXME: This is ridiculous. 1 /// FIXME: Nested types. 1 // FIXME: DeadObjectElimination and StackPromotion don't currently handle 1 // FIXME: Maybe cache the thunk by function and closure types? 1 // FIXME: This really should be modeled by getActorIsolationOfContext. 1 // TODO: `emitLoad*` would actually load value witness table every 1 // FIXME: Also check to make sure the equivalence classes aren't too large? 1 // FIXME: Crashing due to lack of get {} 1 // FIXME: Hard-code @MainActor and @UIActor, because we don't have a 1 public struct AutoreleasingUnsafeMutablePointer 1 // FIXME: This always returns true now, because of the FIXMEs listed in 1 // FIXME: Diagnose the conflict. 1 // FIXME: If we used Clang as a linker instead of going straight to ld, 1 // FIXME: Non-generic SIL boxes also use the HeapLocalVariable metadata 1 // FIXME: Do we really need to bloat all modules with this? 1 // FIXME: should we really allow a specialized or inherited conformance here? 1 /// FIXME: This should probably also handle project_box once we support 1 // FIXME: Add cases where we can do something, eg, (x - x) -> 0 1 // TODO: Conformance on generalized generic extensions could conceivably 1 // FIXME: Should we really be unconditionally complaining 1 // FIXME: set ObjCClassFlags::Hidden when appropriate 1 // FIXME: replace this logic with AccessBase::findOwnershipReferenceRoot. 1 // // it must be declared as static. TODO: or global once we allow wrappers on top-level code 1 // FIXME: rdar://35814988 1 // FIXME: Get rid of case 2 somehow. 1 // FIXME: This is a bug that should not happen, but does in tests. 1 /// FIXME: Remove this. Return the formal type of the parameter in the 1 /// TODO: once we have move-only types, make this a real deinit. 5 // FIXME: A generic SILFunctionType should not contain any nondependent 1 #include "swift/AST/Decl.h" // FIXME: Bad dependency 1 /// FIXME: lookupGlobalDecl() can handle collisions between private or 1 // TODO: open_existential_ref is not handled in OSSA currently 1 // FIXME: Assumes the payload is word-chunked. Should use 1 // FIXME: This is still a lousy approximation of whether the module file will 1 // TODO: Also need to count the parent type's generic arguments. 2 // TODO: remove this memset eventually, today we only do this to not have 1 // FIXME: maybe do an assert somehow if we have RTTI enabled. 1 // FIXME: Remove this once setInvalid() goes away. 1 #include "queue" // TODO: remove and replace with our own mpsc 1 /// FIXME: Once SILPhiArgument actually implies that it is a phi argument, 3 // TODO: Closure contexts should always be guaranteed. 1 // TODO: We currently limit this optimization to known arithmetic 1 // FIXME: Check base/member types through substitutions. 2 // FIXME: This function is not correctly detecting the foldable pattern and 1 // FIXME: assertions 2 // FIXME: Use a semantic check for NSManaged rather than looking for the 1 // FIXME: We should support properties and subscripts with '_read' accessors; 1 // FIXME: Check container/member types through substitutions. 1 // FIXME: Check property names! 1 // TODO: This logic covers the most common case, when there's exactly one 1 // FIXME: Should we move this functionality into SILParserFunctionBuilder? 1 /// TODO: don't add new fields that are implied by the superclass 1 // FIXME: the callee should have a lowered SIL function type, and 1 // TODO: Sort the following in SILNodes.def order 1 // FIXME: We should still mirror the setter as a method if it's 1 // TODO: Perform this check before all fixed size checks. 1 // TODO: What is the right location to use here. 1 // FIXME: Add static witness tables for type conformances. 1 // FIXME: How do we configure code completion? 1 // FIXME: uncomment when the bug is fixed. 2 // FIXME: separate r from the expression below pending 1 // TODO: Multiple tokens. 1 // FIXME: We should import this as a variant, but to do that, we'll also 1 // FIXME: should this really be skipping the rest of decl-checking? 1 // FIXME: The full type signatures on these closures should not be 1 // FIXME: How should we report this error? 1 // TODO: There is no metadata flag that directly encodes the "nondependent" 1 // TODO: Change this to an error once clients have migrated to 'reverse'. 2 // FIXME: this does not include types that conform to an expected protocol. 1 // FIXME: Shouldn't this trap? 1 // TODO: handle LoadOwnershipQualifier::Take 1 // TODO: On platforms without ObjC interop, we can do direct access to 1 // FIXME: Improve the linear search over S.typeBindings when it's possible 1 // FIXME: Check whether this function conversion requires us to build a 1 // FIXME: This goes through the full cost of creating a ModuleFile object 1 // FIXME: Check this? 2 // TODO: Add benchmarking for "small integers" -1000...1000 to 1 // FIXME: Until Apple gets a chance to update UIKit's API notes, ignore 1 // TODO: We'd rather emit a valid ObjC object statically than create a 1 // FIXME: We shouldn't need to do this, the target should be immutable once 1 // TODO: Do we need a copy here? 1 // FIXME: We should surface the module building step to the build system so 1 // FIXME: This forces the creation of wrapper modules for all imports as 1 // FIXME: We ought to have a symbol source for this. 1 /// FIXME: Perhaps this should be an option in PrintOptions instead. 1 // FIXME: ideally we would have a slow path here for Windows which would be 1 // TODO: should this be a general thing for all conversions? 1 // TODO: Split the `if` statement 1 // FIXME: Should we also try '?'? 1 // FIXME: Nested types can still be a problem here: it's possible that (for 1 // TODO: Canonicalize load_borrow scope and phi once consolidateBorrowScope 1 side->incrementStrong(n); // FIXME: can there be a nonatomic impl? 1 // TODO: Detect, diagnose and skip over zero-width characters if required. 1 // TODO: Do we not remove purely dead live ranges here? Seems like we should. 1 // FIXME: Array types will need to be mapped differently depending on 1 // FIXME: This will pick the availability attributes from the first sight 1 // FIXME: Put the error message in the crash report. 1 // TODO: this logic doesn't really work with init methods 1 // TODO: If the protocol name was elided from the assoc type mangling, 1 /// TODO: Summarize ArraySemanticsCall accesses. 1 // FIXME: There is undoubtedly a good dynamic-programming algorithm 1 // TODO: assert that this list is consistent with 1 // FIXME: Work around an odd locator representation that doesn't separate the 1 // TODO: final? open? 1 /// TODO: shrink lifetimes by inserting alloc_stack at the dominance LCA and 1 // TODO: We can use all values greater than the largest discriminator as 1 // FIXME: const_casting because llvm::raw_svector_ostream::str() is 1 # FIXME: Note, `build-script-impl` computed a property here 1 unlock(); // TODO: remove fragment lock, and use status for synchronization 1 // TODO: stripCasts(ptrAdrInst->getOperand()) can be used to find the Builtin, 1 // FIXME: don't just fall through; force the creation of a weak 1 // FIXME: assumes layout is always sequential! 1 // FIXME: Working with filenames is fragile, maybe use the real path 1 # FIXME: This shouldn't be necessary, but the module name is checked 1 // TODO: Although runtime checks are not required, we get them anyway when 1 // TODO: In-register slicing 1 // TODO: We should try to preserve type arguments on imported ObjC generic 1 # TODO: Turning computed gets into lets without annotation drops method 1 // TODO: Replace this check with a broader check that all storage decls 1 /// TODO: the current code only ever uses the generic word-chunked 1 // TODO: verify mangled names in a second pass in that function. 1 // FIXME: Properly handle these attributes. 1 // TODO: Have the compiler emit spare bit mask data in the FD 1 // TODO: If two fields have the same type, they have the same extra 1 // TODO: provide an API to find the best metadata path to the conformance 1 // FIXME: Ad hoc detection of recursive same-type constraints. 1 // FIXME: more checks for bidirectional and random access collections. 6 // FIXME: Sema should produce ErrorType. 1 // FIXME: Recursion guard is needed here 1 // FIXME: Can we ever not be the false BB here? 1 // FIXME: Everything here brazenly assumes little-endian-ness. 1 // FIXME: SingleCompile has not filtered its inputs in the past and now people 1 # FIXME: We should move the platform-derived arguments to be entirely 1 // FIXME: Skip self-derived sources. This means our attempts to "stage" 1 // FIXME: to get the corect semantic context we need to know how lookup 1 // FIXME: critical edges? 1 // FIXME: Varargs? 1 // TODO: Eliminate the default kind, by making classifications for each 1 // FIXME: Add reverse iteration to SILSuccessor, then convert this to an RPOT 1 // FIXME: here we should use the old range to show a better highlight 1 // TODO: tuples 1 // FIXME: We failed to apply the result builder transform. Fall back to 1 // FIXME: Once protocols can contain nominal types, do we want to allow 1 // FIXME: Check replacement types without forcing anything. 1 // TODO: pass something about the root conformance necessary to 1 // TODO: should be NoEffect 1 // ###TODO: Check this (and similar ones below). Should this be a failure? 1 /// TODO: Transitional factory to present the single-type SILBoxType::get 1 // FIXME: where should these get completed? 1 // FIXME: Once @_implementationOnly is a real feature, we should have a fix-it 1 // FIXME: Is there a more principled formulation of this? 1 // FIXME: This predicate matches the status quo, but there's no reason 1 // FIXME: It'd be nice if the result of the accessor was natively an 1 // FIXME: Print the structure of the type. 1 // FIXME: These are going to come out in nondeterministic order. 2 // TODO: recognize cases where this is not required. 1 // FIXME: This should be cached! 1 // TODO: OSSA; also handle dead block args that are trivial or destroyed in 1 // FIXME: The type of a variable or subscript doesn't include 1 // TODO: MandatoryARCOpts should be subsumed by CopyPropagation. There should 1 /// We maintain a number of invariants on Twine objects (FIXME: Why): 1 // FIXME: assert that SizeInBits == OffsetInBits. 1 // FIXME: This will prevent hard error in cases the error is coming 1 // TODO: Once Nested semantics calls are preserved during early inlining, 1 // TODO: could do more to avoid inserting unnecessary ANDs. For 1 // FIXME: We ought to handle multiple trailing closures here (SR-15055) 1 // FIXME: This has to be dynamically looked up for classes, and 1 // TODO: adjust this to handle results of TryBeginApplyInst. 1 // FIXME: The problem may not be the OS version. 1 // TODO: Handle some of the llvm intrinsics here. 1 // TODO: Handle address and boxes that are captured in no-escape closures. 1 // FIXME: sort the protocols in some canonical order? 1 # FIXME: We require llbuild build directory in order to build. Is 1 // FIXME: check superclass constraint here. 1 /// TODO: Canonicalization currently bails out if any uses of the def has 1 // FIXME: We can remove this if @_nonSendable stops creating extensions. 1 // TODO: When witnesses use substituted types, we'd get this from the 1 // TODO: honor +0 contexts? 1 // TODO: This error message should not reference implementation details. 1 // TODO: Check other layout requirements. Note that `@differentiable` 1 // TODO: check for uniqueness of initializer contexts? 1 // TODO: If we added special properties matching KVC operators like '@sum', 1 // TODO: Convert to FunctionInput/FunctionResult constraints. 1 // FIXME: use $ld$previous instead 1 // FIXME: without a covered switch, this is not robust in the event that new 1 // FIXME: Bailing out on ambiguity. 1 // FIXME: This only handles a single result! Partial specialization could 1 /// FIXME: This current implementation doesn't work on Linux. It is disabled 1 // FIXME: Is this kind of re-entrancy actually possible? 1 // FIXME: We might eventually allow this. 1 // FIXME: Lots of other cases to handle. 1 // FIXME: Remove this once all expression position completions are migrated 1 // TODO: callbacks should come from the current InstructionDeleter. 1 // TODO: handle casting to a loadable existential by generating 1 // TODO: Replacing materializeForSet accessors with yield-once 1 // FIXME: We should never receive a nullptr here, but this is causing 2 // FIXME: It would be far more efficient to clone the jump-threaded region using 1 /// FIXME: is this the same as emitGetEnumTag()? Seems like it could be, 1 // FIXME: Check superclass also. 1 // FIXME: Derive spare bits from element layout. 1 // TODO: These subscripts ought to sit on `Any` 1 // FIXME: Horrible, horrible hackaround. We're not getting a 1 // FIXME: Should pass the main module for the interface but currently 1 // FIXME: Eventually, deal with multiple overrides. 1 # FIXME: this is a HACK. All SourceKit CMake code using this function should be 1 // TODO: These are free if the metatype is for a Swift class. 1 // FIXME: Some opaque types do have manglings, but we don't have enough info 1 // TODO: Check that EI is really an IntegerLiteralInst 1 // FIXME: (transitional) decrement the redundant "always-on" counter. 1 // FIXME: Don't skip layout requirements. 1 // TODO: More general conditions in which we can relate the BB to a single 1 // TODO: Refactor this better. 1 // FIXME: SILPhiArgument should only refer to branch arguments. They usually 1 // FIXME: remove this special case once all aggregate operations behave just 1 // TODO: We could conceivably minimize the captured generic environment to 1 // FIXME: Audit uses of this function and figure out how to migrate them to 1 // FIXME: Representational gunk because "T(...)" is really 1 // TODO: This should be extended: 1 // TODO: Should destructure recursively. 1 // TODO: This pass can be converted to a function transform if the mandatory 1 // TODO: Handle reabstraction and tuple explosion in thunk generation. 1 // TODO: Handle this during SIL AddressLowering. 1 // FIXME: Breaking a cycle here with hasInterfaceType() is bogus. 1 /// TODO: Make this a visitor. 1 // TODO: add custom visitors for these types. 1 // FIXME: This is a dreadful hack. 1 // FIXME: This should apply to blocks as well, but Unmanaged is constrained 1 // FIXME: If one or both types are dependent, we can't accurately assess 1 // TODO: Generalize this into "get the attached debug info 1 // FIXME: This isn't actually used for anything at the moment. 1 // [TODO: synthesize-Clang-type-from-mangled-name] If there are two 1 /// FIXME: Currently if RangeT && is a rvalue reference to a temporary, the 1 // FIXME: compress bitfield 1 auto subMatchKind = matchKind; // TODO: Restrict this? 1 /// FIXME: handle boxes used by copy_value when neither copy is captured. 1 // FIXME: When we have borrowed arguments, a "read" needs to be enforced 1 // FIXME: should this be integrated in with the Sema check that prevents 1 /// FIXME: The \p module parameter supports the 1 // TODO: begin_unpaired_access is not tracked. Even though begin_unpaired_access 1 // on NSString that has an error parameter. FIXME: This is a work-around 1 // FIXME: Dig into the pattern. 1 // FIXME: This is currently woefully incomplete, and is only currently 1 // TODO: We need to split edges from non-condbr exits for the SSA updater. For 1 // FIXME: There is currently no way to distinguish between 1 // FIXME: We're looking through sugar here so that we visit, e.g., 1 // FIXME: LLVM's YAML support does incremental parsing in such a way that 1 // FIXME: refactor the frontend to provide an easy way to figure out the 1 /// FIXME: When you remove an unreachable, just delete the method. 1 // TODO: update this to use the requestified lookup. 1 // FIXME: guard every element against false sharing. 1 // FIXME: This can have a setter, but we need a resolved type first 1 // FIXME: Report error if Name did not apply to anything ? 1 // FIXME: this should be the scope of the type's declaration. 1 // FIXME: We do not currently transfer AlwaysInline since doing so results 1 // FIXME: This is compatible with the existing name tracking scheme, but 1 // TODO: maybe peephole bridging through a Swift type? 1 /// \param flags can be used to select the demangling style. TODO: We should 1 // FIXME: consider implementing a concurrent global main queue for 1 // FIXME: Infer body indentation from the source rather than hard-coding 1 // FIXME: The RequirementMachine will assert on re-entrant construction. 1 // TODO: Maybe one day we could treat this as sugar for an associated type. 1 // TODO: Just change this into a partition method. Should be significantly 1 // FIXME: We need a way to handle the disappearing superclass in a position we 1 // FIXME: We should be performing a deeper equality check here. 1 // FIXME: protect this class against false sharing. 1 // FIXME: Import their non-Hashable type parameters as 1 // TODO: Sink more than just integers. 1 // FIXME: Whole-module outputs with a non-whole-module action ought to 1 // FIXME: Don't let placeholder types escape type resolution. 2 let _mangledName: String // TODO: StaticString would be better here; no arc, codesize of cleanups 1 // TODO: Expand this to handle *any* guaranteed parameter. 1 // FIXME: Seems to have recently regressed 1 // TODO: diagnose unknown runtime compatibility version? 1 // TODO: Enable begin_apply/end_apply. It should work, but is not tested yet. 1 // FIXME: what if `s` is native storage, but for different key/value type? 2 /// TODO: We need side-effect analysis and library annotation for this to be 1 // FIXME: Associated type inference requires this. 2 // TODO: Describe precise semantics of "isImportedDirectly". 1 // FIXME: We should have a class-based table to check for conflicts. 1 // FIXME: > type 'Arg' constrained to non-protocol, non-class type 'Self.Invocation.SerializationRequirement' 1 // TODO: investigate the benchmark regressions and enable store-expansion more 1 // FIXME: This is from a later version of . Once the declaration 1 size_t Colon = Content.find(':'); // FIXME: leading whitespace? 1 // TODO: Thick metatypes are free if they don't require generic or lazy 1 /// FIXME: remove this helper when we can assume SIL opaque values. 1 // FIXME: is the type necessary? 1 /// TODO: give this some reasonable name and possibly linkage. 2 // TODO: figure out a way to try to optimistically take the 1 // FIXME: This needs to be moved to its own request if we want to 1 // FIXME: In non-JIT mode, ideally we would just refer to the selector 1 // TODO: set something in the status? 1 // TODO: clang puts this in __TEXT,__objc_methname,cstring_literals 1 /// FIXME: This caching should almost certainly be performed at the 1 // FIXME: Not right for extensions of nested generic types 1 // TODO: test/DebugInfo/iteration.swift requires this extra info to 1 // TODO: What about tuples which contain functions by-value that are 1 // FIXME: Implementation. 1 // TODO: There may be some way of sinking this into the loop below. 1 // FIXME: handle multiple direct results here 1 // TODO: allow reabstraction here, too. 1 // FIXME: this requirement shouldn't be here and is mitigated by the default 1 // FIXME: use a parameterized version of Builtin.unreachable when 1 /// FIXME: This whole thing is a hack, because name lookup should really 1 # TODO # "computedPrivateSetToLet", 1 // TODO: it would be great to factor this even lower into SILGen to the 1 // TODO: Eliminate substitutions in SILFunctionTypes for now. 1 # TODO # public var {name}: Int {{ 1 // FIXME: It might be better to compute lowered local captures of 1 // FIXME: Once uncurrying is removed, get rid of this constructor. 1 // FIXME: We should be able to tell if this is a private lookup. 1 /// TODO: if simply checking the call arguments results in too many functions 1 // FIXME: Get the above to pass with -emit-ir too. 1 // FIXME: We should have generated an overload set from this, in which 1 // FIXME: swift-3-indexing-model - add tests for the follow? 1 // FIXME: Both implementations of ConformanceInfo are trivially-destructible, 1 // FIXME: If we had the actual parameters and knew the body names, those 1 // TODO: or . 1 // FIXME: Clang does this by using non-ad-hoc types for ObjC runtime 2 // FIXME: This is lossy. @objc_metatype is also abstract. 1 @inlinable // FIXME @useableFromInline https://bugs.swift.org/browse/SR-7588 1 // FIXME: Handle allowConcreteGenericParams 1 // TODO: this still isn't quite right, because the computation of delta 2 /// FIXME: This is needed due to some ordering dependencies in the 1 // FIXME: rdar://71240363. This assert does not make sense because 1 // FIXME: this is wrong, we should try to sub-group. 1 // TODO: We should have a DFS utility for this sort of thing so it isn't 1 // TODO: Handling these is part of C++ interoperability. 1 // FIXME: Rectify these the same way we do for element types. 1 // FIXME: Case-insensitivity in non-ASCII characters. 1 /// TODO: Integrate has empty non-symmetric difference into here. 1 // FIXME: We have to use Swift 4's Substring to get the desired storage 1 // TODO: Additional implementation work will avoid always falling back to the 2 // FIXME: We could also make extra inhabitants using spare bits, but we 1 // FIXME: This stuff should be merged with the existing logic in 1 // TODO: inout apply's should only clobber pieces passed in. 1 // FIXME: Potentially side-effectful. 2 // TODO: use the real field offsets if they're known statically. 1 // TODO: If this is a single element struct, we can avoid creating an 1 // FIXME: Extract an ArrayRefIntPair type from this. 1 /// FIXME: We should support type queries with a runtime metatype value too. 1 // TODO: find a better way to pass std::strings to Swift. 1 // FIXME: the "isa()" check will be wrong for 1 // FIXME: A destructive version of this operation would be more efficient, 1 // TODO: Implement other expressions? 1 // FIXME: This eliminates spurious errors, but affects QoI. 1 // TODO: decide if we want to serialize those instructions. 1 // FIXME: this should only be treated specially for instance methods. 1 // TODO: We could also convert multiple indirect results by returning a 1 // FIXME: expose errors? 2 // TODO: maybe enhance this interface to hear about IRGen and LLVM 1 // FIXME: This is a silly heuristic that should go away. 1 // FIXME: Claim the SRet for now. The way we have set up the function type to 1 // FIXME: This feels painfully inefficient. We're creating a dense map 1 // TODO: We could attempt to preserve type sugar in the substitution map. 1 // FIXME: Once unification introduces new rules, add asserts requiring 1 // TODO: Should probably split the refactorings into separate files 1 // TODO: consider using a slower mode that dynamically checks 1 // TODO: Handle clang node owners which don't have a name. 1 // TODO: Only in certain circumstances should we emit this call: 1 // TODO: Combine hashes of the indexes using an inout Hasher 1 // FIXME: Should also use SILBuilderWithScope? 2 // FIXME: ImportFilterKind::ShadowedByCrossImportOverlay? 1 // FIXME: We should integrate this into the LinkEntity cache more cleanly. 2 // FIXME: This is actually wrong. We can't just drop stored properties 1 // TODO: Add a flag that associates the terminator instruction with 1 /// TODO: This is currently a module transform so that it can process closures 1 // TODO/FIXME: Using @llvm.type.checked.load loses the "invariant" marker 2 // TODO: Implement this more generally for arbitrary values. Currently the 1 // FIXME: Consider whether to limit @objc on global-actor-qualified 1 // FIXME: This is a hack because DI is not understanding SILGen's 1 // FIXME: For any situation where this may be called on an unbounded number of 1 // FIXME: this is a weird predicate. 1 # FIXME: technically misnamed; should be "ImportPathComponent" 1 // TODO: make LogicalKeyPathApplicationComponent expect/produce values 1 // FIXME: Non-nominal metadata provided by the C++ runtime is exported 1 PollStatus status; // TODO: pack it into storage pointer or not worth it? 1 /// FIXME: This pass should not need to rerun on deserialized 1 // FIXME: This should be an assert once we ensure that concrete 1 // TODO: Representation for formatting rules, etc. This is just a figment 1 // FIXME: Largely copied from SILGenFunction::emitOptionalToOptional. 1 // FIXME: https://llvm.org/bugs/show_bug.cgi?id=14469 1 // FIXME: getUniqueBorrowScopeIntroducingValue may look though various storage 1 // TODO: It is possible to do better here by looking at the address that is 1 // FIXME: Can we cache this in between inlining invocations? 1 // FIXME: Respect the access path. 1 // FIXME: What about LTO? 1 // TODO: We could easily handle hoisting above loops if LoopInfo is available. 1 // TODO: We could potentially support #file, #function, #line and #column. 1 // FIXME: This seems to be the best way of checking whether _base is 2 // FIXME: Even implicit Stmts should have proper ranges that include any 3 /// FIXME: Computing global reachability requires initializing an N^2 1 // TODO: Stabilize weak benchmark. 2 // FIXME: SwiftUI source compatibility hack; see usage for details. 1 /// FIXME: replace this condition with something more sane. 1 // FIXME: remove this to avoid confusion with SILType.hasReferenceSemantics. 1 // FIXME: Might be better to change walkToDeclPre() and walkToStmtPre() 1 // TODO: also exclude custom tail allocated arrays which might have 1 // TODO: Add support for load [copy]. 1 // TODO: This needs a better name. 1 // FIXME: Revisit this if we ever get 'real' default implementations. 1 // TODO: fix the globalStrinTableBuiltin error after emitting diagnostics. 1 // swiftCore. TODO: figure out a reasonable way to declare them. 1 // FIXME: show deduced types, etc, etc. 1 // FIXME: Update PrintOptions::printQuickHelpDeclaration to print implicit 2 // TODO: Could add a "value used here" sort of diagnostic. 1 /// FIXME: this should eventually replace \c AnnotatedDeclaration. 1 # TODO: Evaluate/enable -f{function,data}-sections --gc-sections for bfd, 2 // TODO: Could handle many other members more specifically. 1 // TODO: move onto SGF directly and reuse in SILGenDistributed and other places 1 // FIXME: A yielded address could overlap with another in this function. 1 // TODO: presumably it would be useful to store *something* here 1 // TODO: Eliminate the PointerEscape category. All pointer escapes should be 1 // FIXME: Remove this 1 // FIXME: We used to use "major architecture" names for these files---the 1 // FIXME: The canImport check is required for compatibility 1 // TODO: Randomize the set of extra inhabitants we check. 1 // TODO: the empty check should not be needed when dead begin_apply is 1 // TODO: potentially we are tracking more information than we need to here 1 // FIXME: implement on this platform 1 // FIXME: This is horrible. 1 // FIXME: partial application of properties 1 // TODO: On platforms without ObjC interop, we can do direct access to 1 // FIXME: Does this need to do bounds checking? 1 // TODO: Put this on LangOpts as a helper. 1 // TODO: The SIL optimizer may rewrite the name argument in a way that 1 # TODO # ( 4 // TODO: fix the quadratic complexity (if possible) and remove this limit. 1 // FIXME: 'ActiveLabeledStmts', etc. in StmtChecker are not 1 // TODO: Other common shapes? Optional-of-Refcounted would be nice. 1 // ^ FIXME: This follows boost::make_zip_iterator's assumption that all 1 // FIXME: some editors don't handle multi-line object literals very well, 2 // TODO: Do we need to lifetime extend here? 1 // TODO: "async let wait" and "async let destroy" would be expressed 1 // FIXME: This will end up taking linear time. 1 // TODO: This retain will be unnecessary once we support global objects 1 // TODO: perform some preflight checks to ensure the file exists. 1 // TODO: We could consult the dynamic symbol tables of the images to 1 // FIXME: If the class has ObjC heritage, get the field offset using the ObjC 1 // FIXME: we shouldn't back the parser to the beginning of the line, it leads 1 // TODO: Should this be a forwarding consume. 1 // FIXME: disallow unnamed parameters without underscores `foo(::)`. 1 // FIXME: Handle multibyte characters. 1 /// TODO: Improve the 1-3 heuristic by having FSO consider the total 1 // TODO: We should be able to just open the generic arguments as N 1 // FIXME: Verify ExtInfo state is correct, not working by accident. 20 // FIXME: If we didn't need to check alternate decls here, we could avoid 1 // TODO: Take AI.getSubstitutions() into account. 1 // FIXME: Don't let unbound generic types escape type resolution. 4 // FIXME this drops the error on the floor. 6 // FIXME: This is a hack to ensure that inherited conformances are 1 // FIXME: This should use CallEmission instead of doing everything manually. 1 // TODO: Name will be a compound name if it was written explicitly as 1 // FIXME: This can have a setter, but we need a resolved wrapper type 1 /// TODO: For now this is very conservative and is only set to false if we 1 // FIXME: Could allow (trivial?) subtyping here. 1 // FIXME: This literal diagnostics needs to be revisited by a proposal 1 // TODO: Does the debugger client care about compound names? 1 // TODO (Alex): Emit module contents. 1 // TODO: Hoist this useState into an ivar that we can reuse in between closure 1 /// TODO: tuple, struct, destructure_tuple, destructure_struct. 1 // FIXME: I don't really know what this should look like right now. 1 // TODO: In diagnostic mode, let's consider this conjunction 1 // FIXME: Handle IBOutletCollection. 2 // FIXME: isCalleeDynamicallyReplaceable should not be true but can today 1 // FIXME: Don't let placeholder types escape type resolution. 1 // FIXME: We're not recovering (in the AST), so the Fix-It 1 // TODO: why Releasing? 1 // FIXME: Assumes host and target have the same endianness. 1 // FIXME: Conditionalize this once we have a new language mode. 1 // FIXME: This is due to having TypeSubstCloner inherit from 1 // FIXME: Import anonymous union fields and support field access when 1 //TODO: exception instead of precondition, once that's possible 2 // FIXME: We generally shouldn't need to build TypeLocs without a location. 1 /// TODO: Perform linear-scan style in-place stack slot coloring by keeping 1 // FIXME: Come up with a better way to deal with APIs that are pointers on some 1 // FIXME: Should pass dependentType instead, once 1 /// promote to a by value capture. Emit a nice warning (FIXME: error) to warn 1 // FIXME: This makes me very upset. Can we do without this? 1 (void)tmp.claimAll(); // FIXME: repack if not bit-identical 1 // TODO: remove the unnecessary FuncDecl components here 1 // TODO: If this results in any noticeable performance problems, Cache the 1 /// FIXME: function_ref? 1 // TODO: Consider handling LoadBorrowInst. 1 // TODO: Would be nice to have a "getMinimumKnownSize" on TypeInfo for 1 // FIXME: The following attempts to do an initial ReadAST invocation to verify 1 /// TODO: Could we make ArgumentDescriptors just optional and once they have 1 // FIXME: Should only happen with the DynamicSelfType case above, 1 // FIXME: Locator when anchored on a declaration. 1 // FIXME: This implementation does a global lock, which is much worse than 1 // TODO: Which debug loc should we use here? Using one of the locs from the 1 /// TODO: Enable -canonical-ossa-rewrite-borrows by default (see 1 // TODO: We really need some sort of entry point that is more flexible in 1 // FIXME: Provide a more meaningful debug type. 1 // TODO: Handle other access kinds? 1 // FIXME: It's also possible for access to already be /broader/ than what's 1 // FIXME: We should probably look through the entire member chain so that 1 // FIXME: Unicode makes this interesting. 1 // FIXME this drops the error on the floor. 5 // TODO: Track C++20 std::numbers. 1 /// FIXME: Make the returned error strings more specific by including some of 1 // FIXME: Hack because we don't know we are calling instance 1 // FIXME: blocks should be Direct_Guaranteed. 1 // FIXME: At some point we probably want to be importing incomplete types, 1 // FIXME: Since we don't represent Clang submodules as Swift 1 /// FIXME: ensure the existence of a collector in all the places that 1 // FIXME: Consolidate this with SILGenProlog 1 // FIXME: Actual compare CFTypeIDs, once they are available in the metadata. 1 // FIXME: The passed-in TypeRepr should get 'typechecked' as well. 1 // TODO: Undo this if we stop using inout. 1 // TODO: If Replacement add a new layout constraint, then 1 // FIXME: This should be an associated type of the protocol. 1 // FIXME: Not knowing what went wrong is pretty bad. loadModule() should be 1 // FIXME: This shouldn't ever appear in protocol requirement 1 // FIXME: We could probably optimize this case too 1 /// FIXME: Passes should not embed special logic for handling linkage. 1 // FIXME: Xcode can't currently handle multiple targets in a single 1 // TODO: https://bugzilla.mozilla.org/show_bug.cgi?id=1158503 provide some form of 'this has been added' visual feedback? 1 // TODO: This has to be deleted once `EnableMultiStatementClosureInference` 1 /// TODO: Move all the private per-definition members into an implementation 1 // FIXME: force tail call 1 // FIXME: Also allow types bridged through Objective-C classes. 1 // FIXME: This is to keep the old behavior. 1 // FIXME: This is a note pointing to a synthesized declaration buffer for 1 // TODO: we can pass at +0 (immediate) to an unowned parameter 1 // FIXME: Actually implement this properly. 1 // FIXME: revisit this once we get default implementations in protocol bodies. 1 // FIXME: Why aren't function_ref uses processed transitively? And 1 // TODO: move to lockless via the status atomic (make readyQueue an mpsc_queue_t) 1 // FIXME: Use GuaranteedPhiBorrowFixup to handle this case during perform(). 1 // TODO: Do this for all types, not just loadable types. 1 // FIXME: offer a fixit: 'Self' -> 'self' 1 // TODO: Track lifetime markers for function args. 1 // FIXME: delete this #if and dlsym once we don't 1 // FIXME: Warn about non-KVC-compliant getter/setter names? 1 // TODO: Aggregate operations should be Reborrows, not ForwardingBorrows, 1 // TODO: Currently we only handle the address-only case, not the retain/release 1 // FIXME: swift-3-indexing-model - add tests for the following? 1 // FIXME: This method is pretty long since it is actually several smaller 1 // TODO: To handle invalid argVal, consider allowing Unidentified access for 1 // FIXME: It seems more appropriate for the driver to notice the early-exit 1 // FIXME: Eliminate this case once merged associated types are gone. 1 // TODO: Pass along location info if available for unconditional casts, so 1 /// TODO: Now that instructions deletion can be delayed via 1 // TODO: This is only necessary because constant evaluation requires that 1 // FIXME: Remove this once we get rid of TVO_CanBindToInOut; 1 // FIXME: non-fixed offsets 1 // TODO: in OSSA we can replace stores to properties with a destroy_value. 1 // TODO: migrate users to getProjectionPath to the AccessPath utility to 1 // FIXME: add ref_element_addr check here. TBAA says that objects cannot be 1 // FIXME: We should come up with a better way of doing this, though note we 1 // FIXME: Eventually we might get C++-like support for strong pointers in 1 // TODO: We should use PrintOptions::printForDiagnostic here, or we should 1 // TODO: revisit why we can make an exception for inline-always 1 // TODO: Use the unsubstituted type if we can't handle the 1 // TODO: we could do a worklist algorithm here instead of iterating through 1 // TODO: propagate the request down to the builder instead of calling 1 // if it is, so pull it out. TODO: just fix LLVM. 1 // TODO: improve the handling of RuntimeIncludePath. 1 // TODO: add non-numeric types. 1 // FIXME: cache the physical field index in the VarDecl. 1 // FIXME: Factory methods cannot have dummy parameters added for 1 // FIXME: This is not working well for decl parents. 1 /* TODO: need a "new" attribute 1 // FIXME: We should generate the message lazily. 1 // FIXME: this needs to be target-specific. Ask Clang for it! 1 // FIXME: Temporary hack to resolve an identifier type to one of the 1 // FIXME: Unnecessary? 1 // FIXME: This is intended to be a temporary mangling, to be replaced 1 // TODO: Just call the normalizer directly 1 // FIXME: Disable checks that the protocol witness carries debug info. 1 // FIXME: this is not what we use in getWitnessTablePtrTypeInfo() 1 // FIXME: This seems fragile, maybe store the filename separately ? 1 // FIXME: llvm::SetVector should have a reserve API. 1 // FIXME: This is an error path. Should we try to recover? 1 // TODO: Cache optimized specializations and perform lookup here? 1 // FIXME: This is a bit of a hack; we should be able to check the 1 /// TODO: This should be refactored into a more general formulation that uses a 1 // TODO: use the Clang type for TaskContinuationFunction* 1 // FIXME: Allow to generate explicit == method for declarations which already have 1 /// FIXME: Assumes the explosion is broken into word-sized integer chunks. 1 // TODO: Verify that all uses of noescaping function arguments are SIL patterns 1 // FIXME: this test is failing for watchos 1 // FIXME: This implementation is woefully inefficient. 1 // TODO: Could allow known-empty types to be inserted or removed, but SIL 1 // TODO: allow the caller to suggest an executor 1 // TODO: eventually fix the DominatorTreeBase::compare() function. 1 // FIXME: Can emitMemberInit() share code with InitializationForPattern in 1 // FIXME: 2 // TODO: avoid unnecessary repeat lookup of 1 // TODO: enum types. 1 /// FIXME: Once import resolution operates at module-level, this checking can 1 /// TODO: figure out why this is needed at all. Probably because of some 1 // FIXME: This bypasses mechanisms like -v and -###. (SR-12119) 1 // TODO: Move this assertion up to apply to all checked cast operations. 1 // FIXME: This API is transitional. Once the callers of 1 // TODO: should the donator have some say in this? 1 // FIXME: We need to avoid re-statting all these dependencies, otherwise 1 # TODO # ), 4 // TODO: Fill in definitions for additional architectures as needed. IIRC 1 // TODO: swift-3-indexing-model: improve this test. `indices` 1 // FIXME: This initializer should just be the failable init from 1 // FIXME: Not yet, to be enabled when this is true. 1 // TODO: don't bail but insert compensating destroys for such operands. 1 /// TODO: should we make this use non-atomic operations when the runtime 1 // FIXME: Member function pointers can be mapped to curried functions, 1 // FIXME: Why is this needed? 2 // FIXME: This doesn't actually break recursion when substitution 1 assert(!oldbits.getIsDeiniting()); // FIXME: make this an error? 1 // FIXME: this should distinguish between key and value. 1 // FIXME: If we ever have more attributes, we'll need to sort removedAttrs by 1 // FIXME: std::stringstream would be better, but LLVM's standard library 1 // TODO: we could make the logic here more complicated to handle each type 1 // TODO: Handle loops. 1 // TODO: Check layout constraints? 1 // FIXME: This shouldn't be possible once name lookup goes through the 1 // FIXME: This is really unfortunate. More type variable sharing 1 /// FIXME: Remove this. 1 // FIXME: We shouldn't need to do this. 1 // TODO: It's probably a good idea to have a separate 'deserialized' bit. 1 Args.push_back(""); // FIXME: Remove dummy argument. 1 // TODO: should we use some sort of real layout here instead of 1 // TODO: we could potentially end up calling this redundantly with a 1 Printer << tok::pound_if << " /* condition */"; // FIXME: print condition 1 // TODO: refactor this code outside of the method. Passes should not merge 1 // TODO: Requestify the lookup of a relation's group. 1 // TODO: be more specific on metadata. 1 // TODO: support other merge patterns 1 // FIXME: This check doesn't entirely behave correctly for non-transparent 1 // FIXME: What if the unviable candidates have different levels of access? 1 // TODO: Replace this with a check on the computed subseq relation. See the 1 // FIXME: Is this correct for submodules? 1 // FIXME: Check for shadowed protocol names, i.e., NSObject? 1 /// FIXME: do this for Protocols, too someday 1 // TODO: exclude functions which are deserialized from modules in the same 1 // FIXME: When lookupConformance() starts respecting modules, we'll need 1 // TODO: if the context allows +0, use it in more situations. 1 // TODO: Should this be the only kind of walk we allow? 1 /// TODO: generalize this to handle multiple reference member. At that point, it 1 // TODO: to support misaligned raw loads, simply remove this assumption. 2 // FIXME: We could handle dynamic_function_ref instructions here because the 1 # FIXME: Add a 'CaptureSpecifier' node kind for `Specifier`. 1 // FIXME: Check conformance, diagnose redundancy or conflict upstream 1 // FIXME: this can issue discriminators out-of-order? 1 // FIXME: check for matching types. 1 // FIXME: Clear unnamed_addr if the global will be relative referenced 1 // FIXME: Should we warn about this? 1 // TODO: we should consider Throw block as well, or better we should 1 // FIXME: swift-3-indexing-model: tests for the range check. 1 // TODO: for stable optimization of semantics, prevent inlining whenever 1 // FIXME: explain why a mark_dependence effectively writes to storage. 1 // FIXME: This is a hack. We need cooperation from 1 // FIXME: swift-3-indexing-model: perform a range check and use 10 // NSError (TODO: and CFError) can be bridged. 1 // FIXME: Splice the block to the end of the function so they come out in the 1 // FIXME: This should be checked earlier as part of calculating 1 // FIXME: I am not sure if this is possible, if it is not change this to an 1 // TODO: This gives us a consistent and good ordering, but technically it 1 // FIXME: Do we need a rewrite path here? 1 // FIXME: generic signature dumping needs improvement 1 // FIXME: cond_br args should not exist in OSSA 1 // FIXME: We could produce the greatest common supertype of the 1 // FIXME: Report the diagnostic. 1 // FIXME: Shouldn't we always look here? 2 // TODO: This is where we'd plug in some global algorithms someday. 2 // FIXME: Extensions sometimes have null generic signatures while 1 // FIXME: Assert that there is a native entry point 1 // TODO: Given that we know the range of elements being accessed, we don't 1 // FIXME: Don't let placeholder types escape type resolution. 4 // TODO: Actually digest the result buffer into the async let task 1 // XXX TODO: Figure out why the type reference is dumped differently sometimes: 2 // TODO: handle reabstraction conversions here, too. 1 // FIXME: For now, this works because PatternBindingEntryRequest fills in 1 // FIXME: add a query for this; clients may have a way to do it. 1 // FIXME: For now, all default witnesses are private. 1 /// TODO: Currently this uses a stub mangling that just refers to an accessor 1 // FIXME: Collapse this check into the second check. 1 // FIXME: Alignment. 3 // FIXME: what should the type of management be for this? 1 // FIXME: If ModuleToPrint is a submodule, get its top-level module, which 1 // TODO: Output/verify dependency graph correctness 1 // FIXME: This should be done through \c solution instead of 1 // FIXME: We could determine equivalence based on both sides canonicalizing 1 // FIXME: The behavior of fs::exists for relative paths is undocumented. 1 // FIXME: The real effect here, though, is dropping the generic signature. 1 # FIXME: sil-opt does not have the '-F' option. 1 /// TODO: delete the cache entry when initialization is complete. 1 // TODO: use the real abstraction pattern from the accessor(s) in the 1 /// TODO: As a utility, hoistDestroys should be repeatable. Subsequent runs 1 /// TODO: Float, string, char, etc. 1 // FIXME: matched ranges output. 1 // TODO: Develop a proper interface for this. 1 // FIXME: Protocol extensions need specific handling here. 1 // FIXME: Refactor this into its own function. 2 /* FIXME: ideally for compatibility we would declare 1 // FIXME: print guard expr 1 // SEMANTIC SIL TODO: This should really be called a temporary LValue. 1 // FIXME: Disabled due to Unimplemented: 1 // FIXME: If we spilled extra tag bits, we could offer spare bits from the 1 // TODO: Favor using the hexadecimal FP constants (requires C++17). 1 // FIXME: Remove this. This is likely indicative of a bug earlier in the 1 // FIXME: Replace this with an assertion that the original tuple element 1 // TODO: Can we handle multiple errors in the same block for a single 2 // FIXME: This could be configurable. 2 // FIXME: Duplicated from ToolChains.cpp. 1 // FIXME: Do not report if we are within a template instantiation. 1 // FIXME: Spare bits between tuple elements. 2 // FIXME: file type bonus if we're checking a file path. 1 // TODO: SILDebugVariable should define it's key. Until then, we try to be 1 // TODO: Use mangled name lookup in generic 2 // TODO: weak references? 1 // FIXME: MC breaks when emitting alias references on some platforms 1 /// TODO: Should we even print #error/#warning? 1 // TODO: We need to be able to pass back a source location to emit the error 1 /// TODO: We might be able to coordinate AllowPlusZero across conditionals 1 /// TODO: This algorithm would be extraordinarily simple and cheap except for 1 // TODO: Analyze the body of function f and return true if it is 1 // FIXME: it should be the other way round, Float = Float32, Double = Float64, 1 // FIXME: We need to map the header at least, but how much of it does 1 // FIXME: These could be further propagatable now, we might want to move 1 // TODO move nameForDep into key 1 // TODO: Should be dynamic if `D` is marked as dynamic and @objc, but in 1 // FIXME: findLoopHeaders should not be called repeatedly during simplify-cfg 1 // FIXME: This check could be turned into an assert once 1 // TODO: handle negative indices 1 // TODO: consider using a cheaper analysis at -O0 1 // FIXME: Go through recordConformanceConstraint()? 1 // FIXME: classes 1 // TODO: We need information from the ARC optimizer to prove that property 1 // FIXME: This is a hack and calls for a better design. 1 // [FIXME: Clang-type-plumbing] Strengthen check when UseClangFunctionTypes 1 /// TODO: The overlap of SILFunctionTypeRepresentation and 1 // FIXME: Introduce a Fix-It that adds the operator declaration? 1 // assert, but I'm leaving the FIXME as a placeholder for that work. 1 // FIXME: Spare bits between struct members. 1 // FIXME: Ideally, appending to a Substring with a unique buffer reference 1 // TODO: Implement? 2 // TODO: Delete this once changes from https://reviews.llvm.org/D83449 land on 1 // TODO: do this less hacky. 1 // FIXME: can this be removed? We need to arrange for recordFixes to be 1 // FIXME: Preserve comments: foo([a/*:*/ : /*:*/ ]2, ...) 1 // TODO: DenseMap, ... 1 // TODO: include Jobs in the diagnostic. 1 /// FIXME: This is used to interoperate with passes that reasoned about the 1 // FIXME: Even implicit Decls should have proper ranges if they include any 1 /// FIXME: When batch mode is complete, this function should be obsolete. 1 /// FIXME: This needs two bits. Can we pack them somewhere? 1 // FIXME: Is this intending an exact match? 1 // TODO: Use `kind.getMinimalDifferentiabilityKind()`. 1 /// TODO: Check if we still need to handle stores when RLE supports OSSA. 1 // FIXME: Should this do extra access control filtering? 1 // FIXME: This hack tells us to prefer members of subprotocols over 1 // TODO: use the Clang type for TaskContinuationFunction* 1 // TODO: Handling nontrivial aggregates requires implementing poisonRefs 1 // TODO: Consider lowering to an LLVM intrinsic if there is any benefit: 1 // TODO: implement resilient metadata layout 1 // Bounds check. FIXME: overflow 1 // FIXME: This is a workaround necessary because solver doesn't filter 1 // TODO: Check if the function is supposed to be excluded from ASan either by 1 // FIXME: These likely represent scenarios in which we're not generating 1 // FIXME: Local functions could presumably capture an isolated 1 // TODO: optimize getStartLoc() and getEndLoc() when TypeLoc allows it. 1 asyncLet: Builtin.RawPointer // TODO: should this take __owned? 1 // TODO: maybe we can skip this restriction when we have semantic ARC. 1 // FIXME: Opened archetypes can't be transformed because the 1 // FIXME: Since we don't setup module loaders on the temporary AST context, 1 // FIXME: With Implicit Module Builds, if sub-invocations inherit `-fmodule-map-file=` options, 1 // FIXME: We don't have enough semantic understanding of extra inhabitant 1 // FIXME: Highlight the offending node/constraint/etc. 1 // FIXME: Figure out how to clone default arguments as well. 1 /// TODO: Consider replacing all of newValue's uses with the new copy of 1 // TODO: use esacpe analysis to rule out locally allocated non-stack objects. 1 @inline(__always) // FIXME(TODO: JIRA): Hack around test failure 3 /// FIXME: Recheck the type of Self against the second type? 1 // FIXME: handle variable amounts of space. 1 // FIXME: This call to `getLineNumber` is expensive. 1 // FIXME: When the _Concurrency library gets merged into the Standard Library, 1 // Thick functions (TODO: conditionally) get bridged to blocks. 1 // FIXME: use GuaranteedOwnershipExtension 1 // FIXME: Handle joins of classes and a single protocol? 1 // TODO: We may want to delete debug instructions to allow us to sink more 1 // TODO: it might be worth doing a quick check against the cache here. 1 // FIXME: This is unsound, since type checking will turn other more 1 // FIXME: Need to check conditional requirements here. 1 // TODO: in general this produces RValues... 1 // FIXME: What if the unviable candidates have different levels of access? 2 // TODO: reconsider whether having a default case is a good idea. 1 // FIXME: The outer parentheses may be superfluous too. 2 // TODO: Key path code emission doesn't handle opaque values properly yet. 1 // FIXME: This is not quite right: we want to handle AppExtensions 1 // TODO: check side effect analysis 1 // TODO: find a way to directly reuse the BuiltinValueKind enum 1 // FIXME: We really only want to serialize 'important' dependencies here, if 2 /// FIXME: All other version information is in Version.h. Can this go there 1 // TODO: It is unfortunate that we parse the name of a public library type 1 // FIXME: Preserve source location information for diagnostics. 1 // TODO: make this shared within the image 1 // TODO: It's bad that we have to hardcode the payload bit mask here. 1 // FIXME: It'd be better to have the driver invocation or build system that 1 unlock(); // TODO: remove fragment lock, and use status for synchronization 1 // FIXME: we may want to handle optimization remarks in sourcekitd. 1 // FIXME: can't check that U is derived from Element pending 1 // FIXME: Associated type inference requires these. 4 // FIXME: Implement submodule support! 1 // TODO: We could also allow ABI-compatible variance, such as casting 1 // FIXME: Remove this out-dated check for mutating self. canReplaceCopiedArg 1 // FIXME: underflow check? 1 // FIXME: Diagnose 1 // FIXME: Dynamic casts don't currently work without objc. 1 // FIXME: Comments at the use of this helper indicate that devirtualization 1 /// FIXME: Should combine all primaries for the result 1 // TODO: Update for EnumPayload implementation changes. 1 // FIXME: Turn this function into a request instead of computing this 1 // FIXME: Ugly hack: remove the .Builtin from the element type. 1 # FIXME: We shouldn't /have/ to build things in a single process. 1 /// (TODO: make storage casts within access scopes illegal). For non-formal 1 // FIXME: Swift 4.1 allowed accessing protocol extension methods that were 1 // FIXME: Skip Microsoft __interfaces. 1 // FIXME: Audit all call sites and make them create the function 1 // TODO: has memory issues as a runtime test, so make it verify-only for now 1 // FIXME: With some changes to their callers, all of the below functions 1 // FIXME: just set prepend to the current head, no need to traverse. 1 // FIXME: Any and AnyObject don't yet use ExistentialType. 1 // TODO: Label reordering? 1 // TODO: same ugly hack as Codable does... 1 // TODO: Why does this need to be "escaping"? The fields can't escape 1 // TODO: If non-phi reborrows are added, they would also need to be 1 // TODO: This error message should not reference implementation details. 1 // FIXME: There is currently no easy way to avoid attempting 1 // FIXME: UTF-8? What's that? 1 // FIXME: Implement this. 3 // FIXME: remove the visitBlock callback once DeadEndBlocks is removed. 1 // FIXME: Forces computation of the Objective-C selector. 1 // FIXME: why on earth is this not correctly represented in SIL? 1 // FIXME: Handle 'self' along with the other body patterns. 1 // TODO: the top-level mode in the interpreter should be phased out. 1 // FIXME: We should mirror properties of the root class onto the 1 // FIXME: should submodules still be crawled for the symbol graph? (SR-15753) 1 // FIXME: system scheduler integration 1 // TODO: This test case relies on the following snippet being slow to type 1 // FIXME: This constant should be vended by LLVM somewhere. 1 // FIXME: This should never happen, because we don't serialize 1 // FIXME: rdar://57291811 - the following check for valid storage will be 1 // TODO: Is this correct for operators? 1 // TODO: Statically check other layout constraints, once they can 1 // FIXME: We ought to handle multiple trailing closures here (SR-15054) 1 // FIXME: Handling Optional existentials requires TypeInfo 1 // FIXME: Types that can be mapped, but aren't yet. 1 // FIXME: handle pointers and fields of atomic type 1 // TODO: describe the cycle using notes instead of one huge message? 1 // FIXME: we shouldn't need this. Remove it? 1 // FIXME: Resilience: could write out vtable for fragile classes. 1 // FIXME: As yet, there is no obvious versioning standard for platforms other 1 // TODO: we should also take advantage of access markers to identify 1 // TODO: find some better way of breaking this cycle, like lazily 1 RequestFlags::Uncached> // FIXME: Cache these 1 // FIXME: This is not a very robust way of determining if the function is 1 // TODO: fix demangling for C++ types (SR-13223). 1 /// TODO: in future we might support global variables in general. 1 // FIXME: This constructor should be private but is currently used 1 // FIXME: alignof differs from the ABI alignment on some architectures 1 /// TODO: Unfortunate that this needs to be done. 1 #warning TODO: Test swift_stdlib_random on Windows 1 // FIXME: Temporarily unreachable because of check above. 1 // TODO: include the module in the onceToken's name mangling. 1 // FIXME: Walking over the ExprStack to figure out the number of argument 1 // FIXME: This isn't really true, but is a performance issue. 1 // FIXME: This is incorrect if both paths are not relative w.r.t. to the 1 // FIXME: This should be handled in the solver, not here. 1 /// TODO: Add support for enabling/disabling counters on a per object basis? 1 // TODO: swift-3-indexing-model - rename the following to _customIndexOfEquatable(element)? 1 // TODO: to improve debugability, consider advancing the poison position 1 // FIXME: All the code following could be made significantly more aggressive 1 // (FIXME will be) used by IRGen to create witness tables for protocol dispatch. 1 // FIXME: ...but we should do something better about types. 1 IS->setCond(SC); // FIXME: is setting required?.. 1 // FIXME: note changed String(describing:) results 1 /// TODO: This should really be called RCIdentity. 1 // TODO: More sophisticated param and return ABI compatibility rules could 1 // FIXME: Either emit a descriptor for this or create a metadata kind 1 // TODO: this could be configurable at some point. 1 // FIXME: All methods of non-final classes should have this. 1 // TODO: Once the pass pipeline is fixed, we should evaluate if we can do 3 /*FIXME FuncLoc=*/DeclLoc, 1 // FIXME: redo this abstraction more cleanly 1 // FIXME: Looking at the type is not the right long-term solution. We need an 1 // TODO: if we have a collector, or if this is a blocking request, maybe 1 // FIXME: We should include the path of the circularity as well, but that's 1 // FIXME: Don't let placeholder types escape type resolution. 1 // FIXME: Conformance lookup should really depend on source location for 2 // FIXME: Remove this case 1 // FIXME: We should refuse to import this. 1 // FIXME: Expand all conformance requirements. This is expensive :( 1 // FIXME: Add an end_dependence instruction so we can treat mark_dependence as 1 // TODO: some versions should be deprecated instead of unavailable 1 // TODO: once the old conformance cache is gone for good, remove that code. 1 // TODO: Peek through struct element users like COWArrayOpts. 1 // FIXME: Add support for generic subclasses. 1 // TODO: Add negative test cases for the comment above. 1 // FIXME: The rest of the hack for restating requirements. 1 // FIXME: When compiling without library evolution enabled, this should also 1 // FIXME: If we have an internal typealias for a non-internal type, we ought 2 // TODO: If we know the type statically has extra inhabitants, we know 1 // TODO: use NSObject if it exists? 1 // TODO: If UnicodeScalars ever exposes category, etc., implement the others! 1 /// TODO: Add stricter structural guarantee such that these never 1 // FIXME: Assert that this is never queried. 2 // FIXME: Implement bitcast typechecking. 1 #include "swift/Parse/Lexer.h" // FIXME: Bad dependency 1 // SEMANTIC ARC TODO: When the verifier is finished, revisit this. 1 // TODO handle remaining indirect argument types 1 // TODO: Optimize where `C` is a `ContiguousArrayBuffer`. 1 // FIXME: this should be packaged into a better storage type 1 // FIXME: We have tests using a non-Apple stdlib that nevertheless 1 // FIXME: lvalue differences 1 // FIXME: CanonicalizeOSSALifetime replaces this. 1 // FIXME: That's not correct if the user /just/ passed -emit-header 1 // FIXME: There's a case where we can end up with an ApplyExpr that 1 // TODO: a general Optional elimination sil-combine could 1 // FIXME: This is gross and nondeterministic. 1 // FIXME: (transitional) increment the redundant "always-on" counter. 1 # FIXME: We should only compute these once. 1 // FIXME: Diagnose the conflict 1 /// FIXME: This pass currently only runs in the last-chance pipeline, with a 1 // TODO: make the sil location more precise. 1 // FIXME: Closures could have an interface type computed by Sema. 1 // FIXME: We could recover by looking at later components. 1 // TODO: We should preserve substitutions in SILFunctionType captures 1 // TODO: offer recordArgument(label:type:) 1 // FIXME: All other things being equal, prefer the catamorphism (flattening) 1 // FIXME: Filter based on access path? C++ access control? 2 // FIXME: This hack is required because the inclusion check below 1 // TODO: Final class metatypes could in principle be thin. 1 // FIXME: Verify ExtInfo state is correct, not working by accident. 1 /// FIXME: Shrink storage on deletion 2 // FIXME: Actually compare CFTypeIDs, once they are available in 1 // FIXME: Feels like a hack. 1 // TODO: Remove the let property, because it is never accessed. 1 // TODO: Find the try_apply's result block. 1 // TODO: offer better diagnosis for error scenarios here 1 // FIXME: Query the module interface loader to determine an appropriate 1 // FIXME: Treat may-release conservatively in the anlysis itself by 1 // FIXME: For now we just assume fragile layout here, because this is used as 1 // TODO: maybe ignore certain kinds of missing / present labels for the 1 // FIXME: use LifetimeTracked. 54 // FIXME: We'd like to only use this in SIL mode, but unfortunately we use it 1 // TODO: Implement per token 'sourcetext' option. 1 // FIXME: It should be okay to get rid of excess capacity 2 // TODO: do we want to emit a diagnostic here? 1 // FIXME: This should be folded into the WriteImplKind below. 1 // FIXME: Except for extra inhabitants? 1 // FIXME: Provide type annotation. 1 // TODO: In the future, we may have an AliasAnalysis query that distinguishes 1 // FIXME: Implement tracing 1 // FIXME: Should be able to move a value from an extension in a derived 1 // FIXME: Note pointing to the declaration 'inheritedTy' references? 1 // FIXME: This is not even correct, because we may not have reached fixed point 1 // FIXME: isFromClang also excludes Swift decls with @objc. We should allow those. 1 // TODO: consider using different layout rules. 1 // FIXME: Use the SIL basic block's name. 1 // TODO: We could handle try to disambiguate cases like: 1 // FIXME: Awful. 1 // FIXME: We should support ownership. 1 // FIXME: Make sure this case goes away with OSSA and opaque values. If not, 1 // FIXME: Need a rewrite path here. 2 Load = 3, // TODO: split into static- and dynamic-offset cases? 1 // FIXME: This is a band-aid used to work around the fact that the 1 // FIXME: Note that this @preconcurrency import was "used". 1 // FIXME: Better to add it only if we load it. 1 // TODO: We should probably emit a diagnostic note on the lazy 1 // FIXME: If type of CastArg is an archetype, but it is loadable because 1 // TODO: Generalize it. Destructor of an aggregate type is equivalent to calling 1 // FIXME: Emit the name somewhere. 1 // TODO: Shouldn't this return getSuccessBlock()->getArgument(0)? 1 // FIXME: What do we do if there was already an error? 1 // TODO: If previous versions of an ABI-stable binary needed the descriptor, 1 // TODO: Implement the SILGen fixes so this can be removed. 1 // TODO Any more instructions to add here? 2 // FIXME: Would be nice to give some more context here! 1 // TODO: honor forUnwind! 1 // FIXME: Knowledge of SwiftOnoneSupport loading in the Frontend is a layering 1 // FIXME: Remove 'Parsed' from this list once we can always delay 1 // FIXME: This should almost certainly replace end_lifetime uses rather than 1 // FIXME: why is a convenience init considered overridden when the 1 // TODO: shared native 2 // FIXME: demote this to private state. 1 // FIXME: this is wrong for struct with values, and classes? 1 // TODO: Save and return the value of $OriginalExpr. 1 // FIXME: if we just passed the original Decl * through we could use that, 2 // TODO: partial applications? 1 // FIXME: We need to handle conditional conformances earlier, in the same place 1 // FIXME: Verify ExtInfo state is correct, not working by accident. 18 // FIXME: isRecursive() is completely misnamed 1 // FIXME: An inferred associated type witness type alias may reference 1 // FIXME: We're not printing proper "{ get set }" annotations in pattern 1 /// FIXME: Delete this hack once SR-13363 is fixed and ModuleDecl has the 1 # Pattern to recognize stdlib identifiers (FIXME: doesn't handle Unicode). 1 // FIXME: is EXPECT_UNALLOCATED reliable enough for CI? 1 // FIXME: The only way this should happen realistically is if there are 1 // TODO: Assert that this cannot happen (rdar://42792053). 1 /*FIXME if we get global distributed actors*/false); 1 .skip(.watchOSSimulatorAny(/*TODO: 0...6, reason: */"lazy objc naming is not available on these OSes")) 1 // TODO: This should really be an operation on type lowering. 1 // FIXME: ExistentialCollection needs to be supported before this will work 1 // FIXME: The parent module isn't exactly a private import, but it is 1 // FIXME: Avoid writing string data for identifiers here. 1 /// FIXME: CanonicalizeOSSALifetime likely replaces everything this file. 1 // FIXME: the use of None as primary file is to match the fact we do not read 4 //FIXME: should we use IncludedFlagsBitmask and ExcludedFlagsBitmask? 1 // FIXME: optimize barriers 2 // FIXME: This may not work gracefully if more than one of these lookups 1 // FIXME: must also remove the records!!!! 1 # FIXME: The fallback paths here are going to be dynamic libraries. 1 // TODO: Change this to an error when clients have migrated to 'reverse'. 1 // TODO: maybe other class existentials? Existential conversions? 1 // FIXME: Remove this when C++20 is the new baseline. 1 // FIXME: QoI ranges 1 // FIXME: we currently "take" the annotations instead of "get"ing them. 1 // TODO: Global and static properties ought to eventually be referenceable 1 // TODO: Use a custom allocator so that the initial slab can be 1 // FIXME: This works around a backward-compatibility issue where 1 // FIXME: the runtime's code does not honor DefaultCC 1 # TODO # """ 8 // FIXME: Distinguish errors from "file removed", which is benign. 1 // FIXME: This should be an assert, however protocol generic signatures 1 providesFastUTF8: false, //TODO: if contentsPtr is UTF8 compatible, use it 1 // FIXME: consider integrating with ValueLifetimeBoundary instead. 1 // FIXME: This depends on the buffer IDs chosen by llvm::SourceMgr. 1 // if (actualIndices != desiredIndices) { // TODO: Re-enable. 1 // TODO: We could do bitcasts entirely in the value domain in some cases, but 1 // FIXME: If we have fewer arguments than we need, that might be okay, if 1 // TODO: Will this always be the case? 1 // TODO: destroy all the arguments at exactly this point? 1 // TODO: Is this necessary? We visit BBs in RPO order. This means that we 1 // TODO: is there any way we could bail here before we allocate/construct 1 // TODO: Use std::apply when LLVM starts using C++17. 1 // TODO: assert(IGF.IGM.getOptions().AssertConfig == 1 // FIXME: InitialNonFixedSize should go in the above, but I'm being 1 // TODO: The DiagnoseLifetimeIssuesPass prints a similiar warning in this 1 // FIXME: this can happen spuriously in foo => ufDownOb. 1 /// FIXME: All functionality for generating valid SIL (including the DomTree) 1 // TODO: Rename this to createFunctionRef once all calls to createFunctionRef 1 // TODO: Other numeric literals (complex, imaginary, etc.) 1 // TODO: This can ignore non-contextual archetypes. 1 // TODO: generate tuple_element_addr. 1 // FIXME: substitution means this type should be explicit to improve 1 // FIXME: We're also not checking if the redeclaration is in /this/ module. 1 // TODO: OSSA; handle non-trivial enum case cleanup 1 // TODO: swift-3-indexing-model: forward the following methods. 2 // FIXME: Support extended escaping string literal. 1 // FIXME: This location info is bogus. 1 // TODO: Always require a function type 3 // FIXME: Darwin only? 1 // TODO: Make sure we dump var. 1 // TODO: This should probably be unconditionally +1 when we 1 // FIXME: Caller checks that this type conforms to all of the 1 // TODO: remove this workaround when PR33518 is resolved. 1 // FIXME: Actually diagnose something here. 1 // FIXME: Why is conformsToProtocol() not enough? The stdlib doesn't 1 /// FIXME: This should be build-configuration-dependent. 4 // TODO: Verify that the conformance applies to the type? 1 // FIXME: enable these... 1 // FIXME: Record redundancy and diagnose upstream 1 // FIXME: this fall-back shouldn't be necessary, but it's useful 1 /// FIXME: This is a hack, because it's the wrong question to ask. It 1 // FIXME: Hacky way to workaround the fact that 'Self' as return 1 // FIXME: This should probably be limited to the particular SourceFile. 1 // TODO: When there's a store or copy_addr immediately into the box, peephole 1 // TODO: this is clearly optimizable to re-use nodes. 1 // TODO: when we have OSSA, we can also accept stores of non trivial values: 1 // FIXME: finish{Array,Dictionary}Expr invoke cacheExprTypes after forming 1 // TODO: use "tinycc" on platforms that support it 1 // FIXME: rdar://14883575 Libcompiler_rt omits muloti4 1 // FIXME: 1 // TODO: Canonicalize multi-block borrow scopes, load_borrow scope, and phi 1 // FIXME: AST dump also doesn't work with `-index-file`, but that fix is a bit 1 /// FIXME: This should be removed eventually, once there are no longer any 1 // FIXME: Implement this check. 1 // FIXME: rdar://problem/23549059 (Optimize == for Set) 1 /// TODO: Improve epilogue release matcher, i.e. do a data flow instead of 1 // FIXME: check that here? 1 // FIXME: Need error-checking. 1 // FIXME: Second type of a superclass requirement may contain 2 // TODO: revist minimal 1 // TODO: Also handle the WillFail case. 1 associatedtype ActorID: Sendable & Hashable & Codable // TODO: make Codable conditional here 1 // TODO: This is way conservative. If there is an unconditionally 1 // FIXME: Duplicate labels on enum payloads should be diagnosed 1 /// TODO: Cleanup the resulting SIL by deleting instructions that produce dead 1 // FIXME: Swift submodules? 7 /// FIXME: This is deprecated. 1 // FIXME: Map over source ranges in the diagnostic. 1 // FIXME: error? 1 // FIXME: The logic for resolving `assocRef` does not reapply function 2 // FIXME: Don't need to serialize private and internal default witness 1 // TODO: 'Never' return type would be more accurate. 1 presentSignInViewController(fxaParams) // TODO UX Right now the flow for sign in and create account is the same 2 // TODO: Make InlineCostCutoff parameter configurable? 1 // TODO: There are spare bits we could theoretically use in the type metadata 1 // FIXME: Check whether the layout constraint makes sense for this 1 // TODO: consider supporting 16-bit targets 1 // FIXME: also include user-defined attribute keywords 1 // TODO: When data handles are introduced, print that instead. This code 1 // FIXME: Upcasts between existential metatypes are not handled yet. 1 // FIXME: We don't really need (or want) a full ContinueBuildingAfterErrors. 1 // TODO: If we're able to become a SwiftObject subclass in the future, 1 Storage.get(StoredKind)->dump(out); // FIXME: indent 1 // FIXME: Consider lazily encoding the string when needed. 1 // FIXME: this code is largely duplicated with the previous block. There are 1 // FIXME: Don't throw away the inner error's information. 1 // FIXME: duplicated from ImportResolver::getModule 1 // FIXME: We only support pointer to address here to not break LLDB. It is 1 // FIXME: This is a hack to workaround the fact that we don't necessarily 1 // TODO: If BB has only one predecessor and has bb args, fold them away, then 1 // TODO: Obtain a clang::SourceLocation from the swift::SourceLoc we have 1 /// FIXME: Change this to take a SmallString as an out parameter? 1 // TODO: This might not be profitable anymore with guaranteed captures, 1 // TODO: use 100 for Onone? 1 // TODO: deserialize them. 1 // TODO: handle non-destructive projections of enums 1 // TODO: Include all of the possible members to give a solver a 1 // TODO: These routines should probably be refactored into their own file since 1 /// FIXME: This is an egregious hack to turn off availability checking 1 // FIXME: Pessimistically using IEEEquad here is bad and we should 1 // FIXME: mostly untested 1 // FIXME: actually check imports. 1 /// TODO: Make this a "ClosureTransform". See the file-level comments above. 1 /// FIXME: We should maybe cache this. 1 // TODO: MultiValueInstruction: ApplyInst 2 // TODO: swift-3-indexing-model: uncomment the following. 1 // FIXME: add tests (since the `count` has been added) 1 // FIXME: If we can directly reference constant type metadata, do so. 1 // FIXME: This path is no substitute for an actual circularity check. 1 // TODO: add raw_ostream support for italics ANSI codes in LLVM. 1 // TODO: This retain will be unnecessary once we support global objects 1 // FIXME: dyn_cast_null does not work with IntrusiveRefCntPtr. 2 // FIXME: maybe this should be the conformance's type 1 // FIXME: Canonical equivalence. These should be the same. 1 // TODO: we should be able to do this more efficiently than projecting. 2 // TODO: Compute the BCT. 1 // TODO: Should we include trailing generic arguments in this load? 1 // TODO: OSSA; handle cleanups for opaque cases (simplify_cfg_opaque.sil). 1 // FIXME: String Guts 1 // TODO: Add a test in the compiler that exercises a similar situation as 1 // FIXME: Figure out 3-cell representation for merged associated types 1 // TODO: Enable printing parent invokers. 1 /// TODO: Consider doing retain hoisting and release sinking. This can help 1 // without context. (TODO: We could if they match the out-of-context 1 /// FIXME: Eventually, add NL_ProtocolMembers to this, once all of the 1 ? DeclNameRef(component.getUnresolvedDeclName()) // FIXME: type change needed 1 // FIXME: This will miss macros. 1 // FIXME: if this doesn't go away with opaque values, add a new instruction 1 # TODO # {nonmutating} set {{ globalSink = newValue }} 1 // FIXME: Clean up code for performance 1 /// TODO: Perform atomic increments? 1 // TODO: consider re-using a dom analysis from the PassManager 1 // TODO: Create NonFixedSizeArchetypeTypeInfo and return it. 1 // FIXME: This supports the result builder transform, which sneakily 1 // FIXME: Workaround for enum case labels until we support them 1 // FIXME: This is awful. We should be able to handle this as a call to 1 // FIXME: It is wrong to backtrack parsing the entire base type if an accessor 1 // FIXME: Remove varargs logic below once we're no longer comparing 1 // TODO: In the future, we'd like to handle these conflicts gracefully by 1 /// [TODO: Clang-type-plumbing] Turn on for feature rollout. 1 // FIXME: Push this into the "get interface type" request. 1 // FIXME: add more tests for fetchAndOr, like we have for fetchAndAdd. 1 // FIXME: 1 // TODO: A DenseMap rather than a SmallDenseMap is used here to avoid 1 // TODO: The TypeChecker can easily prove that some requirements cannot be 1 // FIXME: swift-3-indexing-model - 1 // FIXME: we need a more uniform way to handle operator completions. 1 // TODO: maybe in some mode we should set the status to Resumed here 1 // constant evaluated, folded and optimized in the context of a caller. TODO: 1 // FIXME: When *not* emitting a .swiftmodule, skip the high-level function 1 // TODO: implicitlyThrowing here for distributed 1 // TODO: Allow BeginAccess/EndAccess users. 1 // FIXME: What happens after a fatal error in the importer? 1 // FIXME: some types are provably too big (or aligned) to be 1 // FIXME: Clearing the flair (and semantic context) is a hack so 1 // TODO: Handle caching of results. 1 // FIXME: This could likely be implemented directly. 1 // FIXME: Handle nested keypath member lookup. 1 // TODO: Make this more aggressive by considering 1 // TODO: Handle reborrowed copies by considering the extended borrow 1 // FIXME: Ideally, we would check that the swiftmodule has a 1 // FIXME: this is an awful simplification that says all and only enums can 1 // FIXME: We need the Swift equivalent of Clang's FileEntry. 1 // FIXME: print expression. 1 // FIXME: Handle '@' args (or at least error on them). 1 // FIXME: Don't let unbound generic types escape type 1 // TODO: we need to implicitly await either before the end or here somehow. 1 // TODO: add method types or anything else needed for reflection. 1 // TODO: handle StoreOwnershipQualifier::Init 1 /// FIXME: This removes debug_value instructions aggressively as part of 1 /// TODO: This can be made cleaner by using a PointerUnion or the like so we 1 // FIXME: We should not end up with labels here at all, but we do 1 // FIXME: Cache async signature. 1 // FIXME: Deep equality? What is the rule between two DynamicSelfs? 1 // TODO: adjust for error type parameter. 1 // FIXME: Maybe this can happen if the concrete type is an 1 // FIXME: We could support explicit function specialization. 1 // FIXME: better recovery 1 // FIXME: Can we avoid processing these decls in the first place? 1 # FIXME: We are matching build-script-impl here. But it seems like 1 // TODO: Impose additional constraints when partial_apply when the 1 /// TODO: By default this is a no-op, but really it should call 1 // TODO: Document me 1 // FIXME: HopToExecutorInst should be an instantaneous use. 1 // FIXME: In a world where protocol extensions are dynamically dispatched, 1 // TODO: Make this const, if it's safe... 1 // TODO: Bridged casts cannot be expressed by checked_cast_br or 1 // TODO: MultiValueInstruction 1 // FIXME: ReflectionContext tries to read bits of the ELF structure that 1 // TODO: more diagnotics 1 // TODO: Refactor this into a maybe load. 1 // TODO: add paren locations to PoundDiagnosticDecl 1 // TODO: add an instruction for non-destructively getting a 1 // TODO: check other operands for dominance and even attempt to hoist them. 1 // TODO: Use the location of the apply here. 1 // TODO: When we split true phi arguments from transformational terminators, 1 // TODO: Look through static method applications to the type. 1 // TODO: Put an unreachable here? 1 /// FIXME: Once we no longer support implicit cancellation using 1 /* TODO: If we're able to become a SwiftObject subclass in the future, 1 // TODO: handle cases where a function got smaller. 1 // FIXME: should we try to choose a delimiter if there is more than one? 1 // FIXME: This should not happen? 1 # TODO # """, 8 // ###TODO: Consider fixing some of these asserts() to return errors somehow 1 // FIXME: clang::IdentifierInfo /nearly/ has the API we need to do this 1 // TODO: Eliminate GenericContextScope entirely 1 #include "queue" // TODO: remove and replace with usage of our mpsc queue 1 // TODO: we can handle load [take] but we would have to know that the 1 // FIXME: Add semicolon to the AST? 1 // TODO: Bridged casts cannot be expressed by checked_cast_br yet. 1 // FIXME this drops the error on the floor. 15 // FIXME: All three of the accessors below are required to support 1 // FIXME: Use the canonical type here in order to minimize circularity 1 // FIXME: This is the only demand point for InputSourceCodeBufferIDs. We 1 // FIXME: If any of the candidates (usually just one) are in the same 2 // FIXME: replace with std::optional, when we have it. 1 // FIXME: We ought to have a symbol source for this. 1 # TODO check if we should prefer using product.install_toolchain_path 1 // FIXME: swift-3-indexing-model: tests. 5 // FIXME: Duplicated from importMethodParamsAndReturnType. 1 // FIXME: No way to express this in Objective-C. 1 // FIXME: When we start dealing with C++, we can map over some operator 1 // FIXME We should diagnose this at a location that makes sense: 1 // FIXME: We should finish plumbing this through for dynamic 1 // FIXME: This should be handled by typeCheckExpression. 1 /// TODO: Clarify what it means to return a MayHaveSideEffects result. Does this 1 // FIXME: There is a fundamental problem with this find-as-we-go approach: 1 // TODO: in future, migrate this functionality into ASTScopes 1 // FIXME: alignof differs from the ABI alignment on some architectures 5 // TODO: Make this take optTL. 1 // TODO: Is this the correct thing to check? 1 // TODO: preserve the function pointer at its original abstraction level 1 // FIXME: Rather than having a special flag for the is-inheritable check, 1 // FIXME: this assumes that there's never meaningful reabstraction of self 1 // FIXME: This call can be removed once pattern binding validation is 1 # TODO: generate types with generics, existentials, compositions 1 // FIXME: but how would we call this...? 1 // FIXME: separate 'expected' and 'reversed' variables are a workaround 1 // TODO: Try to merge two op_fragment expressions here. 1 // TODO: Add support for working around control dependence issues. 1 /// TODO: When critical edges are universally prohibited, completely replace the 1 // FIXME: This non-zero return value is not propagated as an exit code. 1 // FIXME: improve checkForwardCollection to check the SubSequence type. 2 // ###TODO: Are these errors?! 1 /// TODO: Rename to willModifySelfArgument. 1 // FIXME: This should not be necessary, but it looks like visibility rules for 1 // FIXME: Ideally the parser state should be an output of 1 // FIXME: It would be nice to diagnose this. 1 // FIXME: Unify this with the runtime's Demangle.cpp 1 // FIXME: Only functions can be overloaded. 1 // TODO: Expand this to also be true for address only types. 1 // FIXME: if the cursor is on the argument, we should return global rename. 1 // FIXME: explain why. 1 // FIXME: Compound names. 3 // FIXME: reinstate these assertions 1 // FIXME: https://bugs.swift.org/browse/SR-731 3 /// FIXME: Diagnose based on this. 1 // FIXME: https://bugs.swift.org/browse/SR-733 2 // FIXME: there's got to be some better way to print an exact reference 1 /// TODO: Could be physical if we had a way to project out the 1 // Unowned: don't care (FIXME: should care and redo initForNotFreeing) 1 // FIXME: should this be an exact match in priority instead of 1 // FIXME: This is really crappy special case of computing a reasonable 1 // FIXME: We only support pointer to address here to not break LLDB. It is 1 // Potential TODO: At loop exit block 1 // FIXME: unicode 1 // FIXME: For SizeInBits, clang uses the actual size of the type on 1 // FIXME: We need to decide if this is really how we want to treat 'nil'. 2 self.grow(capacity) // TODO: no factor should be applied 1 /// TODO: this is not yet implemented. 1 // TODO: If this is the last use of the closure, and if it has internal 1 // FIXME: Can't optimize bridging with NSError. 1 // FIXME: Should we really unconditionally 1 // TODO: 2 // FIXME: Semantically, we're "opening" the class metatype here to produce 1 // TODO: use ObjC class references 1 // FIXME: Copied from ASTPrinter.cpp... 1 // FIXME: Initializer expressions (like array literals) are not contained 1 // FIXME: Get rid of this hack. 1 // FIXME: This is a hack because the inherited conformances aren't 1 // this successor bb. (FIXME: Why? Infinite loops should still 1 // TODO: This test case relies on the following snippet being slow to type 1 // FIXME: Don't silently eat errors here. 1 // FIXME: This drops debug info at -Onone load-splitting is required at 1 // TODO: Remove this in favor of using Inout and In_Guaranteed. 1 // FIXME: The other String views should be RangeReplaceable too. 1 // TODO: Dead code elimination does not remove the call to the default value 1 // TODO: If it is a private type or internal type and we 1 FIXME: What about the new llvm-project monorepo? 1 // FIXME: associated type witnesses. 1 // FIXME: it would be better to have a unified place 1 // FIXME: Figure out how to deal with incomplete protocols, since that 1 /*FIXME:colonLoc=*/SourceLoc(), 1 // TODO: This assumes that only class references are poisoned (as guaranteed 1 // ###TODO: Is this right? Should this be an error? 1 // FIXME: Record header dependency? 1 # FIXME: this is not wired up with anything yet. 1 // FIXME: swift-3-indexing-model: `-n` can trap on Int.min. 2 // FIXME: Revisit this restriction. 1 // FIXME: We might need to go through ObjC dispatch for references to 1 // TODO: Don't emit the symbol if field has a fixed offset and size 1 // TODO: The return block and throw block should really be abstracted away. 1 // FIXME: If the enum has a fixed underlying type, can we use that 1 // FIXME: Also exclude the type alias that has already been specified. 1 // FIXME: This was clearly intended to pass the cast type down, but 1 // TODO: Check that transpose function type matches excluding 1 // TODO: Some way to check string was deallocated? 1 // FIXME: ideally this shouldn't exist, or should at least assert size() == 1, 1 public: // FIXME: Public for use by static functions. 1 /// TODO: Rip this out and just rely on LValueAccessKind. 1 // TODO: Special handling for resilient mode. 1 // FIXME: If we used a commutative hash combine (say, if we could take an 1 // TODO: We shouldn't need this in the future. 1 // TODO: Use SideEffectsAnalysis here. 1 //TODO: exceptions instead of preconditions, once that's possible 1 // FIXME: Workaround for getting tag locations. We should enhance cmark to 1 // TODO: Currently, all specialized functions are added to the function 1 // TODO: We could allow static (or class final) functions too by 1 # TODO: Instead of `lib${name}.so` find variable or target property which already have this value. 1 // FIXME: We should do this entirely through Clang, for consistency. 1 // FIXME: Check whether this has already failed. 1 // FIXME: Lousy hack for ?? to prefer the catamorphism (flattening) 1 // TODO: I think this is a copy paste error, since we a trap BB should have 1 // FIXME: SIL should not be special cased here. The behavior should be 1 // TODO: Warn on unreachable user code here as well. 1 // FIXME: Crummy source-location information. 1 // FIXME: Add reverse iteration to SILSuccessor and convert this to a "stable" 1 // TODO: Float16 instead of just truncating from float? 1 /// FIXME: Remove the integrated REPL. 1 // FIXME: exceptions? 1 // TODO: initializer instructions 1 // FIXME: Assume (probably safely) that the hasMethodBB has only us as a 1 /// [TODO: Clang-type-plumbing] This check should go away. 1 /// FIXME: Refactor main file parsing to not pump the parser incrementally. 1 // FIXME: We would prefer to emit the name as written, but that information 1 // FIXME: It would be nice to immediately offer "base?.member ?? defaultValue" 1 // FIXME: Types that can be mapped, but aren't yet. 1 // FIXME: Handle BIT_MASK(pos) helper macros which expand to a constant? 1 /// TODO: Check for other profitable constant propagation, like builtin compare. 1 // FIXME: lexer should smartly separate '>' and trailing contents like '?'. 1 // TODO: Remove the let property, because it is never accessed. 1 /// FIXME: this could be space-compressed. 1 // FIXME: don't need to check hasStorage, already done above 1 // FIXME: Make this diagnostic more sensitive to the isolation context of 1 // FIXME: Except for optionals, which get bit-packed into an integer. 2 // TODO: Native keypaths 1 // FIXME: This implementation is inefficient. 1 // TODO: store_borrow is currently an InteriorPointer with no uses, so we end 1 // TODO: When LowerAddresses runs before this, we can remove this case. 1 // FIXME: This may not always be true, but it holds for now. 1 // (br, FIXME: should also include destructure, tuple, struct) 1 // FIXME: Hack to ensure that we've computed the types involved here. 1 // FIXME: Disable when we don't support Objective-C interoperability? 1 // TODO: If posssible, change `autodiff::getLoweredParameterIndices` to 1 // FIXME: only show module part of RawAccessPath 1 // FIXME: If we ever split all critical edges, this should be relooked at. 1 // TODO: Consider using an ordered structure to guarantee determinism 1 // TODO: optimize 1 // FIXME: Reconcile the similarities between this and 1 // TODO: Can we just pass this in to findJointPostDominatingSet instead 1 // FIXME: Turn this into an assertion instead. 1 // FIXME: If the base type is a type variable, constrain it to a metatype 1 // FIXME: We can't reasonably lifetime-extend an inner-pointer result 1 // FIXME: There are more compact ways to encode a 16-byte value. 2 // TODO: For C language types we should consider the attached Clang types. 1 // TODO: We should be able to flat-out replace the select_enum instruction 1 /// and project out its metadata. (FIXME: This leads to deadlocks in 1 // FIXME: Handle overalignment 1 // FIXME: This should use canUseAttributeOnDecl. 1 /// TODO: Fold this into the AccessStorage API. pointsToLocalObject should be 1 // TODO: Do we need a separate array here? 1 // TODO: can the type system enforce this async requirement? 1 // TODO: Could probably make this a bit stricter. 2 // TODO: There should be a better way of doing this than doing a copy + sort. 1 /// TODO: Handle implicit borrow scopes once they are legal in SIL. The operand 1 // FIXME: We should call a fast deallocator for heap objects with 3 // TODO: remove once -Wdocumentation stops warning for \param, \returns on 1 // TODO: If we had the notion of a closed enum with no private 1 // TODO: This is a really trivial local algorithm. It could be much better. 1 // FIXME: This is too narrow. Any class with resilient metadata should 1 // TODO: Handle different encodings based on pointer element type, such as 1 Int8PtrTy, // TODO: block descriptor pointer. 1 // FIXME: Remove even the null value per rdar://problem/18801263 1 // FIXME: typealias pointing to an existential type is special 1 // FIXME: possibly it could be worth recovering and attempting other 1 // FIXME: For now, always use the fragile layout when emitting metadata. 2 // TODO: Check this already at argument parsing. 1 ;; TODO: If we have swift-project-settings enabled, we will know the swift 1 // TODO: should vtables get linkage? 1 // FIXME: unify this with the ?.member completions. 1 // FIXME: We could lower select_enum directly to LLVM select in a lot of cases. 1 /// TODO: just make sure that we have a path to them that the debug info 1 // TODO: Perform this check before all the fixed size checks! 1 /* TODO: Remember the order/history of operations? */ \ 1 /* FIXME: resilience */ \ 1 // [TODO: Clang-type-plumbing] Print the full type in the swiftinterface. 1 // FIXME: that doesn't mean we should physically pass it 1 // FIXME: This include is just for llvm::SanitizerCoverageOptions. We should 2 // FIXME: to be replaced by _memcpy when conversions are implemented. 1 // TODO: protocol concrete metatype to/from ObjCProtocol 1 // TODO: Multi-field boxes 1 // FIXME: decide if this guarantee is worth making, as it restricts 1 // FIXME: Should we include the system-ness of framework 1 // TODO: support async function pointers in static globals. 1 // FIXME: Ideally we should assert that the file has had its imports resolved 1 /// somewhere. TODO: record where the task is enqueued if 1 // FIXME: this should only be conformance to RandomAccessCollection but 1 // TODO: clang puts this in __TEXT,__objc_methtype,cstring_literals 1 // TODO: only memset the parts that aren't covered by the pattern. 1 // FIXME: Handle generic functions in non-ABI matches. 1 // FIXME: don't do this if they're efficiently moveable. 1 // FIXME: Switch to a visitor interface? 1 // FIXME: It'd be nice to be able to return a SIL address directly. 1 # TODO: _add_variant_c_compile_link_flags and these tests should share some 1 // TODO: fix demangling for C++ types (SR-13223). 1 // FIXME: This assumes that, e.g., the default literal 1 // FIXME: this #else should be some sort of #elif Windows 1 // FIXME: Add support for generic subclasses. 1 // FIXME: we should get the semantic context of the function, not the 2 // FIXME: 'UnresolvedType' still might be typechecked by an operator. 1 // TODO: In some specific cases, it is possible to prove that 1 // FIXME: This is a bit of a hack. We should consider rewriting curried 1 // TODO: Add support for forwarding insts here. 1 // TODO: we can do a lot better than this: we don't need to mask off 1 /// TODO: Handle this pattern: 1 // FIXME: Avoid string comparison by caching this identifier. 1 // FIXME: it's not clear exactly what we want to keep from the existing 1 // TODO: class metatype to/from AnyObject 1 // FIXME: It would be nice to have a 'DescriptiveTypeKind' abstraction instead. 1 // FIXME: Locator for the cast type? 1 // TODO: Implement this. 1 // FIXME: BridgesTypes.def is almost sufficient for this. 1 // FIXME: Add proper location. 1 /// FIXME: The scope of this computation should be limited entirely to 1 FIXME: swift-3-indexing-model: uncomment this. 13 // FIXME: Move this flag to TypeResolverContext. 1 // FIXME: Implement other checks here 1 // TODO: 'NotRecommended' if this is a r-value reference. 1 // TODO: Currently disabled because this case may need lifetime extension 1 // TODO (rokhinip): Figure out the semantics of the job priority and where 1 /// TODO: this is obviously runtime-internal and therefore not 1 return makeParserResult(status, nullptr); // FIXME: better recovery 1 // TODO: Refactor COW Array Opt + canHoist - radar 41601468 1 // FIXME: Update to look for plain Optional once 1 // FIXME: do something meaningful for foreign classes? 2 // TODO: Array splat fix-it once that's supported. 1 // FIXME: this creates duplicate results. 1 lock(); // TODO: remove fragment lock, and use status for synchronization 1 // FIXME: we should receive error type instead of null type. 1 // FIXME: We could go farther with this simplification, e.g. avoiding 1 // FIXME: some of this work needs to be delayed until runtime to 1 // TODO: notify the parent somehow? 1 // FIXME: Remove this flag 1 // FIXME: Sometimes the parent type is realized eagerly in 1 // FIXME: This discards storage reserved with reserveCapacity. 1 // FIXME: Not thread-safe! It should avoid deleting the value until 1 // TODO: Use new mangling scheme as soon as the ObjC runtime 1 // TODO: Teach Swift how to directly call these functions. 1 // FIXME: Provide this for PE/COFF targets. 1 // FIXME: pull out the magic constants. 1 // TODO: put a cache variable on IGM 3 // TODO: Expand the set of exprs visited here. 1 // FIXME: What if there are /multiple/ old definitions we should be 1 // FIXME: This leaks. Sticking this into ASTContext isn't enough because then 1 // FIXME: The "hasClangNode" check here is a complete hack. 1 // FIXME: swift-3-indexing-model: perform a range check properly. 28 // TODO: if we're casting to an existential type, don't throw away the 1 // TODO: We could generalize this to handle other ABI-compatible cases, by 1 // FIXME: use the real WeakReference definition 1 // TODO: handle bbargs from try_apply. 1 // TODO: checking may alias with Base is overly conservative, 2 // FIXME: Can we directly reference the descriptor somehow? 2 // FIXME: Implement missing tuple-to-tuple conversion 1 /// FIXME: Implement this for address projections. 1 // FIXME: We should run SIL diagnostics asynchronously after typechecking 1 // FIXME: remove this temporary deleter. It is dangerous because any use of 1 // XXX TODO: Big-endian support? 1 // TODO: obviously we need to handle many more patterns. 1 // TODO: Fill this in. 1 // FIXME: This can only happen when diagnostics successfully type-checked 1 // TODO: Give these predictable mangled names and shared linkage. 2 // TODO: customizable. 1 // FIXME: update output ranges, if necessary 1 // FIXME: Right now we force an autoreleasepool here on x86_64 where we really 1 /// TODO: The \p storeAddr parameter is only needed until we have an 1 // TODO: Unless they have magic methods... 1 // FIXME: consider whether CCOpts has changed since the 'open'. 1 // TODO: Investigate whether 7.0 is a suitable default version. 1 // FIXME: Relative references to aliases break MC on 32-bit Mach-O 1 // FIXME: replace this with a computed var named `...` when the language makes 1 // TODO: Handle argument conversion. All the code in this file needs to be 1 // FIXME: Should this type check? 1 // candidate once. FIXME: Why is one candidate getting into the overload 1 // FIXME: We could return a meaningful GenericEnvironment here 1 // FIXME: Break the cycle here. 1 // TODO: check if we can also de-virtualize partial applies of class methods. 1 // TODO: the metadata global can actually be constant in a very 1 // FIXME: This is just approximating the effects of nested availability 1 // FIXME: special case for dead borrows. This is dangerous because clients 1 // FIXME: maybe we should use a different entrypoint for this case, to 1 // TODO: Can we put this on type lowering? It would take a little bit of work 1 // FIXME: custom side table allocator 1 // TODO: These are relatively expensive, find something else to use here. 1 // TODO: Implement this. 2 // FIXME: Swift should probably have a UTF-16 type other than UInt16. 1 // FIXME: We should have a cached line map in EditableTextBuffer, for now 1 // FIXME: The modeling of unsatisfiedIsolation is not great here. 1 * TODO: this should be expanded to track various visit types; see Bug 1166084. 1 /// TODO: Move to emitSuccessfulIndirectUnconditionalCast? 1 // TODO: Remove known conditions and split the `if` statement 1 // FIXME: Virtual files can't actually model the EOF position correctly, so 1 // TODO: balance the subtree when creating nodes to the left or right. 1 // FIXME: Cargo-culted from diagnoseAmbiguity: apparently the same decl can 1 // FIXME: This is a weird state introduced by associated type inference 1 // TODO: Support begin_borrow here 1 /// TODO: separate the type visiting logic in SILCloner from the instruction 1 /// TODO: This needs a better name. 4 // FIXME: Don't let unbound generic types 1 // TODO: borrow 'self' for nonmutating methods on methods on value types. 1 // FIXME: Should try to suggest indentation. 1 // FIXME: this can overwrite the original target with nullptr. 1 // FIXME: clang source location 1 # TODO: Handle subprocess.CalledProcessError for this call: 1 // FIXME: swift-3-indexing-model: range check. 23 // FIXME: This should use MetadataReader.h. 1 // FIXME: This needs to be a per-execution seed. This is just a placeholder 1 // FIXME: indexUnitTokens could be StringRef, but that creates an impedance 1 // TODO: Investigate whether or not it is 1 // FIXME: handle comments foo(a /*...*/b: Int). 1 // TODO: Bridge object conversions imply a masking operation that should be 1 // FIXME: When the _Concurrency library gets merged into the Standard Library, 1 // TODO: OSSA; cleanup nontrivial terminator operands (if this ever actually 1 // FIXME: ideally this shouldn't associate the additional output with the 1 // TODO: If we could require Objective-C classes to have an attribute to get 1 // TODO: It would be great so somehow point out which arguments are missing. 2 // FIXME: This is a hack--we should give conformances real availability. 1 // FIXME: add a structural requirement to SIL so base is always valid in OSSA. 1 // TODO: When we support address types, this code path will need to be 1 // FIXME: path separators would be handled here, jumping straight to the last 1 return; // FIXME: should we delay here? 1 // FIXME: peek into capture lists of nested functions. 1 // TODO: This instruction could in principle be generalized. 1 // TODO: This API is ineffective for release hoisting, because the release 1 // FIXME: Compatibility equivalence. It would be good to make these the same 1 // when imported. TODO: Use a more obvious check here. 1 // FIXME: This suggests we need to use TypeChecker's high-level lookup 1 // FIXME: provide index unit token(s) explicitly and only use output file 1 // FIXME: What happens if the clang module imports a swift module ? So far 1 // FIXME: Portability. 1 // FIXME: Checking for LabeledConditionalStmt is a hack; it's meant to 1 // FIXME: Layering violation to use the ClangImporter's define. 1 // FIXME: Invalid offset shouldn't reach here. 1 # TODO # set {{ self.sink = newValue }} 1 // FIXME: It probably makes sense to extend this to non-@objc 1 // FIXME: Defer text formatting to later in the pipeline. 1 /// FIXME: Remove this if we don't need to create reabstraction thunks after 1 // TODO: Support AllocBoxInst 1 // FIXME: In order to support batch mode properly, the migrator would have 1 Info.Kind = PatternUID; // FIXME: add a UID for operators 1 // TODO: incrementally update dead-end blocks during SimplifyCFG so it doesn't 1 // FIXME: Note this as invalid, in case we don't find a solution, 1 { // FIXME: non-matches are the same as non-first-character matches. 1 // TODO: we only have this for the sid effect of calling 1 // FIXME: this works around the fact we're producing invalid completion 1 // TODO: Handle main SourceFile emission (currently done by 1 // TODO: Hoist this logic out of loop over predecessor blocks to 1 // FIXME: In the long run, we shouldn't need this. Non-syntactic results 2 /// FIXME: Arguably, structs and enums only have factory initializers, and 1 // FIXME: Fix-It to add the import? 1 // FIXME: 1 // TODO: Or if the box is uniquely referenced. We don't have intimate 1 // FIXME: This is a bug in the SIL deserialization. 1 // FIXME: In order to generate more consistent and verifiable SIL patterns, or 1 // FIXME: Call classifier should identify the object for us. Too bad C++ 2 // XXX TODO: test enum with thin function payload XXX 1 // FIXME: this line should read: 1 // FIXME: Could try to apply generic arguments first, and see whether 1 // TODO: use a meaningful mangled name and internal/shared linkage. 2 // FIXME: Memory corruption issues arise when enabling this for mixed 1 # TODO: Verify test_name and iters_computed 1 // TODO: We can only do this and use swiftself if all our swiftcc emit the 1 // FIXME: Substitution map? 1 // TODO: Can we expand this? 1 // FIXME: This retain seems pretty wrong, however if we don't we WILL crash 1 // TODO: create one if necessary. 1 P.addLowerHopToActor(); // FIXME: earlier for more opportunities? 1 // FIXME: Refactor to allow that when the minimum version is always satisfied. 1 // TODO: this is an awkward way to check for guaranteed terminator results. 1 // TODO: This is /really/, /really/, conservative. This basically 1 // TODO: perhaps here we can emit our special handling to make a message? 1 /// FIXME: Why don't we strip projections after stripping indexes? 1 // FIXME: We should probably be a bit more clever here about which lines 1 // TODO: It would be a bit more efficient to use a preallocated buffer 1 // TODO: less-specific constraints 1 // TODO: We really should have all OperandOwnership::InteriorPointer 1 // FIXME: diagnostics 1 public: // FIXME: public due to statics in CSSimplify.cpp 1 // FIXME: Once CovariantReturnConversionExpr (unchecked_ref_cast) 1 /// TODO: Optimize function with generic parameters. 1 // FIXME: We ought to not request paramer list info in this case. 1 // TODO [OPAQUE SUPPORT]: We should probably use something like `Type`'s 1 // FIXME: this needs to move to tapi. 1 // FIXME: Distinguish between explicit and inferred here? 1 /// TODO: This is an atrocity. Come up with a shorter name. 1 /// FIXME: too much global state floating around, e.g. 1 /// TODO: When this analysis is used across passes, fix SILCloner to update or 1 // TODO: memoize this the same way that we memoize Swift type metadata? 1 /// TODO: Sinking retains can block releases to be hoisted, and hoisting 1 // FIXME: can't pass the object's address from InlineRefCounts without hacks 4 #if 0 // FIXME: to be enabled in a following commit 1 // FIXME: underflow check? 1 // FIXME: Once the evaluator supports returning a reference to a cached value 1 // TODO: For now, we leave invalid casts in address form so that the runtime 1 // FIXME: individual custom completions 1 // FIXME: clang's -Rremarks do not seem to go through Swift's 1 /// FIXME: Implement me! 1 // FIXME: Return the syntax/token kinds directly from the C API, instead 1 // FIXME: add paren source locations to the AST Node. 1 // TODO: pull more off of the ImportImpl 1 /// TODO: describe extras 1 // TODO: properly handle task began. 1 // FIXME: This relatively expensive pointer getAnyPointerElementType check 1 # FIXME: Cleaner way to do this? 1 // FIXME: In theory this should always be non-empty -- and V.size() would 1 // TODO: If the payload type info provides a preferred explosion schema, 1 // FIXME: SemanticContextKind::Local is not correct. 1 // FIXME: Make sure this table is complete, somehow. 1 // FIXME: often right after this, we will again hop to the actor to 1 // FIXME: Copy these directly into some kind of partial solution? 2 // TODO: use the correct SILLocation from module. 1 // FIXME: Technically should be "consume", but that introduces barriers in the 1 // TODO: use these? 1 // TODO: Provide a hook for the client to try to resolve the opaque archetype 1 // FIXME: We don't actually want to allocate an archetype here; we just 1 // TODO: Statically specialize the witness table pattern for t's 1 // TODO(FIXME JIRA): All current stdlib types fit in small. Use a stack 1 // FIXME: Don't let placeholder types escape type resolution. 1 // TODO: use static enforcement in certain provable cases. 1 // FIXME: This has to be cleaned up on the Clang side before we can improve 1 # TODO: Can we unify po_ordered_nodes and visitedNodes in some way? 1 // FIXME: If the module hasn't been loaded, we probably don't want to fall 1 // FIXME: Allow an SDK overlay to add a required initializer to a class 1 // TODO: Use a decision-tree to reduce the amount of dynamic checks being 1 // FIXME: (transitional) increment the redundant "always-on" counter. 4 // FIXME: Use some Swift equivalent of NS_RETURNS_INNER_POINTER if we get one. 1 // FIXME: Return multiple results? 1 // TODO: It should be implementable, but it has not been needed yet. 1 /// TODO: replace this with PrunedLivenessAnalysis::computeBoundary. Separate 1 // TODO: Is it correct to treat this like an escape? We are just currently 1 // FIXME: We want to replace is_integral_or_enum and is_pointer here with 1 // TODO: fixit insert static? 1 // TODO: We should be able to handle destructors that do nothing but release 1 // TODO: SILBoxTypes should be explicitly constructed in terms of specific 1 // TODO: We should do this once we surface more interesting layout 1 /// TODO: The @_semantics tag should only ever be used to convey function 1 // TODO: add note to add signature 3 // There is a big TODO: currently there is a large code overlap in this file 1 // FIXME: this test is failing for watchos 1 // TODO: define (and use) ABI max valid pointer value 1 // TODO: If transcoded is 1, can we just skip ahead 4? 1 // FIXME: Work around an apparent reentrancy problem with the REPL. 1 /// TODO: Provide an API to remove any counters releated to a specific object 1 // TODO: This would be a lot easier if we represented bound generic args 1 // TODO: Support dynamic-sized captures. 1 // FIXME: Don't throw away the inner error's information. 1 // FIXME: Verify ExtInfo state is correct, not working by accident. 2 // FIXME: finish{Array,Dictionary}Expr invoke cacheExprTypes after forming 2 // TODO: Ban 'Normal' and 'Forward'. 2 // TODO: if we're talking about an inlineable storage declaration, 1 // TODO: Can we invalidate here just instructions? 1 // FIXME: This should be a single expression, but it causes exponential 1 // TODO: We should really sign a pointer to *any* code entity or true-const 1 // FIXME: Stop using these once flag_enum and enum_extensibility 1 // FIXME: Could we infer from 'Self' to make these work? 1 // FIXME: Compute this as a bit in TypeBase so this operation isn't 1 // TODO: we have a problem lazily looking up unnamed members, so we 1 TODO: Support Linux and Windows platforms. 1 // FIXME: Satisfy "Value generic param not used in signature" constraint 1 // FIXME: Verify ExtInfo state is correct, not working by accident. 15 // FIXME: Along with the FIXME below, this is a hack to work around 1 // TODO: Model ReserveCapacityForAppend, AppendContentsOf, AppendElement. 1 // FIXME: KeyPath !?!? 1 // FIXME: Problem: what method should a derived Objective-C subclass 1 // FIXME: we should also update any "interesting" ASTs that depend on this 1 // FIXME: print the file's basename? 1 // TODO: Non-ErrorType boxed existentials. 1 // FIXME: hide individual custom completions 1 // TODO: We could pick specialized __SwiftValue subclasses for trivial types 1 // FIXME: If we reach this point, the program we're being handed is likely 1 // TODO: What if we have multiple destroy_value? That should be ok. 1 // FIXME: We intentionally call SILClonerWithScopes here to ensure 1 // FIXME: Use shouldMarkAsObjC once it loses it's TypeChecker argument. 1 // FIXME: We should distinguish CurrentNominal and Super. We need to 1 // TODO: Should this be an error? How can this come up? 1 // FIXME: Use shared_ptr ownership to avoid such issues. 2 // TODO: Remove this hack and reevaluate whether we should have any static 1 // FIXME: hang the converter object somewhere so that it is persistent 1 // FIXME: If the root class specifies its own runtime ObjC base class, 1 // TODO: Handle structs, enums, and tuples. 1 // FIXME: derive this from an attribute instead of hacking it based 1 // FIXME [OPAQUE SUPPORT]: to produce the right associate type for the 1 // TODO: consider using a symbolic reference (i.e. a symbol string 1 // TODO: Entry should include substitutions needed to invoke an overridden 1 // TODO: char literals. 1 // FIXME: ideally this would be in MigrationSupport.swift, but it needs 1 // FIXME: This is extremely inefficient. The SILOptimizer should build a 2 // TODO: peephole: special handling of known cases: 1 // FIXME: We should be able to ditch this if we compare the timestamps 1 // FIXME: Should we warn if M doesn't reexport underlyingModule? 1 // TODO: Build up phi node web. 1 // FIXME: this is little-endian 1 // TODO: Should we sort inserted phis before or after we initialize 2 // FIXME: Possibly should extend to more availability checking. 1 // FIXME: Unimplemented. 1 // FIXME: Clang should help us out here, but it doesn't. It can only give us 1 // [FIXME: Clang-type-plumbing] 1 # FIXME: We should be using pipes.quote here but we run into issues 1 // FIXME: Handle 'self' like any other argument here. 1 // FIXME: Handle all attributes. 1 // FIXME: If the value (or any other values from the instruction that the 1 // debug_value insterted later. TODO: It may be more elegant to insert 1 // FIXME: how to get the simulator version *without* UIKit? 1 // FIXME: We can see UnresolvedDeclRefExprs here because we have 1 // TODO: Could have an inline representation for strings if thre was demand, 1 // FIXME: We should actually support strong ARC references and similar in 1 // FIXME: The leading punctuation (e.g. "?." in an optional completion) 1 // FIXME: this needs a deallocation barrier to ensure that the 2 // TODO: deal more efficiently with an object-preferring access. 1 // FIXME: we could write the results to disk in the background, since they're 1 // TODO: support multi-end access cases 1 // shorthand. TODO: Add documentation 3 // TODO: should we use ProgramTerminationAnalysis ?. The reason we do not 1 // FIXME: If mapping into context yields an error, or we still have a 1 // FIXME: Per rdar://problem/35469647, this should be well-formed, but 1 // FIXME: handle trailing closures. 1 // FIXME: how to handle ivar extensions in categories? 1 // FIXME: We might be able to avoid printing names for some of these 1 // TODO: Ensure the class doesn't already have or inherit a variable named 1 // TODO: Surface the option to emit atomic profile counter increments at 1 # FIXME , 'Float80' Revert until I figure out a test failure # Float80 1 // TODO: It seems that callers expect this to have types assigned... 1 /// FIXME: This is performance hack, which should go away. 1 // FIXME: We should check value ownership too, but it's not completely 1 // FIXME: When !ObjCInterop, we should remove even the null value per 1 thickContext = nullptr; // TODO: this should go 1 // TODO: We could ignore this error and emit a more specific error on 1 // TODO: This should be in a switchEnum utility. 1 // TODO: Printing a var decl does an Indent ... dump(vd) ... '\n'. We 1 // TODO: Use referencedDecl (FuncDecl) instead of 'op' (OperatorDecl). 2 // FIXME: Feels like we could leverage existing code more. 1 // TODO: This would be simpler if we had managed value/cleanup scopes. 1 // FIXME: Implement me! 1 // TODO: Refactor/simplify this function. 1 // TODO: allow custom allocation? 1 // TODO: We just check the block itself for now. 1 /// FIXME: This behavior is bizarre. 3 // FIXME: Ideally, everywhere that synthesizes a function should include 4 // FIXME: This ignores layout constraints, but currently we don't support 2 // FIXME: Update existing ASTWalkers to deal with accessors appearing as 2 // FIXME: Record that we did this. 1 // FIXME: This should be unified with _loadPartialUnalignedUInt64LE. 1 // TODO: Turn the module hash into an actual output. 1 // TODO: name, type 1 // FIXME: This should not take down the entire process. 1 // TODO: permit implicit conversions? 1 // TODO: replace this with a float16 implementation instead of calling _float. 1 // FIXME: Depending on the ratio of elements kept in the result, it may be 1 # TODO: Why are we using booleans to communicate status here? 1 // TODO: Eventually we'll need to emit descriptors to access the opaque 1 // FIXME: the pedantically correct way is to resolve Swift.*LiteralType. 1 // TODO: substOpaqueTypesWithUnderlyingTypes ... 1 /// FIXME: figure out some way to achieve that which doesn't generate 1 // FIXME: rdar://72935649 (Miscompile on combining PruneVTables with WMO) 1 # FIXME: A more efficient representation could be used. 1 // TODO: Can we make this more aggressive and by how much? E.x.: Can we allow 1 // TODO: Add more cases than Struct 1 // FIXME: This is an awful way to get the current OS. 1 // FIXME: Do we want to allow overriding a function returning a value 1 // FIXME: EOPNOTSUPP has different values depending on __DARWIN_UNIX03 and 1 // FIXME: Due to problems with the design of DeclAttributes::getAttribute(), 1 // FIXME: Could we use 'diag::async_in_nonasync_function'? 1 /// TODO: Globals. 1 // FIXME: Remove null data altogether rdar://problem/18801263 1 // TODO: I am writing this too fast. Clean this up later. 1 // FIXME: The unresolved case should form an unsolved constraint rather 1 /// TODO: Allow cases to take JumpDest as continuation blocks and then 1 // FIXME: We should consider merging the circularity handling the GSB does 3 // TODO: In existential-to-existential casts, we should carry over common 1 /// FIXME: This move to libIDE, but currently depends on the UIdentVisitor. 1 // FIXME: More detail for unavailable conformances. 1 // TODO: indexing often crashes when interop is enabled (rdar://87719859). 1 // TODO: If Index equals zero, then we know that the two lists have nothing 1 // FIXME: If we're not inside the module context of the method, 1 // FIXME: Less-horrible but still horrible hack to attempt to 1 // TODO: We should enforce that ObjC methods are dispatched on ObjC 1 // FIXME: swiftcall 6 // [FIXME: Include-Clang-type-in-mangling] Remove second check 1 // TODO: should we instead just immediately open the existential 1 // TODO: Partial apply should be NonEscaping, but then we need to consider 1 // TODO: Don't do this! Growth should only happen for append... 1 // FIXME -- Temporary until LLDB adopts getASTType() 1 /// FIXME: willBeRelativelyAddressed is only needed to work around an ld64 bug 1 /// FIXME: When condition evaluation moves to a later phase, remove this 1 // FIXME: this should be cached during cacheFieldIndex(). 1 // FIXME: add more tests for fetchAndXor, like we have for fetchAndAdd. 1 // FIXME: We need to be more lazy about synthesizing constructors. 1 // TODO: There are some subscript forms we could map to KVC, such as 1 // FIXME: Loses potentially better alignment info we might have. 1 // FIXME: the lifetime is actually limited by the RequestDict. 1 // FIXME: All single-retainable-pointer types should eventually have 1 /// FIXME: Some non-zero `opt` might be cases of missed return-autorelease. 2 // FIXME: rdar://56844567 1 // FIXME: This is the wrong module 1 // FIXME: Consider turning this into a warning or error if we do 1 // TODO: If the error type is a simple enum with no associated values, we 1 // TODO: swift-3-indexing-model - review the following 6 // TODO: Swift submodules. 1 // FIXME: Actually implement this. For now, a descriptor with this kind 1 // FIXME: Perform some kind of validation of the string? 1 // TODO: Why isn't this: 1 // FIXME: add a reference to the running thread ID so that we 1 // FIXME: Improve Unicode support so every message can include a direct 1 // FIXME: only the private imports from the current source file. 1 /// FIXME: we shouldn't just drop the original abstraction pattern 1 // FIXME: Depth won't match when a generic signature applies to a 1 // TODO: Function types go through a more elaborate lowering. 1 // FIXME: Assert if hadError() is true but we didn't emit any diagnostics? 1 # TODO: Get the correct triple. 1 // TODO: also handle other semantic functions. 1 // FIXME: lots of other cases to consider! 1 // FIXME: Give the thunk a real name. 1 // TODO: integrate this with how callers want these values so we can do 1 /// FIXME: this should be cached during cacheFieldIndex(). 1 // FIXME: This should cover a superset of AllocBoxToStack's findUnexpectedBoxUse 1 // FIXME: Provide a mask to only match the bits in the payload 1 // FIXME: when we can parse and typecheck the function body partially for 1 // FIXME: Should restrict this to the source file we care about. 1 // FIXME: This re-looks-up conformances instead of transforming them in 1 // FIXME: we should fix that, since it also affects struct members, etc. 1 // FIXME: for now, don't even try this with generics involved. We 1 // FIXME: When Swift 6 becomes real, remove 'REQUIRES: asserts' from tests 1 // FIXME: Handle 'self' along with the other arguments. 1 // TODO: coalesce into a single convention attribute. 1 // TODO: The check for not-escaping can probably done easier with the upcoming 1 // FIXME: Replace with generic ownership rauw for phi args when it is 1 // FIXME: This is only really needed for debugging. We don't actually use it. 3 // FIXME: Should probably be allowed in expression position? 1 // FIXME: Right now this works only with access paths of length 1. 1 // FIXME: Remove this 3 // FIXME: This has to be dynamically looked up for classes, and 1 // FIXME: do we need this? 1 // FIXME: Handling of generic parameters in SIL type lowering is in flux. 1 // FIXME: Add options::OPT_Fsystem paths to DYLD_FRAMEWORK_PATH as well. 1 // FIXME: Closure literal completion. 1 // FIXME: remove this constructor and require a response in all cases. 1 /// A marker like 'FIXME:' or 'TODO:' inside a comment. 1 // FIXME: this implicitly drops the earlier components, but maybe 1 // TODO: Since fast isel doesn't support switch insns, we may want to 1 // FIXME: Source compatibility hack for Swift 5. The compiler 1 // FIXME: Look in the constraint system to see if we've resolved the 1 /// TODO: reconsider whether having a default case is a good idea. 1 // TODO: C++ types are not yet supported (SR-13223). 1 // TODO: Assert start/end are scalar aligned 1 // FIXME: Much of this was copied from visitOptionalEvaluationExpr. 1 // TODO: This doesn't work with complicated patterns like: 1 // FIXME: This is basically a slightly more generic version of Clang's 1 // FIXME: finish{Array,Dictionary}Expr invoke cacheExprTypes after forming 1 // FIXME: Use C11 aligned_alloc if available. 1 // TODO: Maybe we can skip this restriction when we have semantic ARC. 1 // FIXME: If ThreadSafeRefCntPtr has private access to IntrusiveRefCntPtr 1 // FIXME: Also look in superclasses? 1 // TODO: Merge this into the full apply site code below. 1 /// TODO: remove this after we fix all project-side warnings in the interface. 1 // TODO: add paren locations to PoundAssertStmt 1 // TODO: If we were able to claim the value from a uniquely-owned 1 // FIXME: Considering BitOffset is a _bit_ offset, and we're storing it in 31 1 // TODO: Static properties should eventually be referenceable as 1 // FIXME: should really be a typealias once we support that 1 // TODO: There is an edge case which is not handled here. 1 /// TODO: unique and reuse the () parameter list in ASTContext, it is common to 1 // FIXME: print container 1 case PatternKind::Expr:// FIXME: expr nodes are not modeled right in general. 1 // TODO: Do we need '.none' for Optionals? 1 // FIXME: submodules? 1 // FIXME: Implement once Complex is in the library. 1 // FIXME: Enable this assertion. 1 // FIXME: Additional trailing closure completion on newline positions. 1 // TODO: move this to the Foundation overlay and reimplement it with 1 /// TODO: May not be fixed-layout if we capture generics. 1 // FIXME: It's weird to be pushing state here, but how do we say that 1 // FIXME: Do we actually want to do this? SILGen tests today assume this 1 // FIXME: Implement. 3 // TODO: Could look through arbitrary implicit conversions that don't have 1 // TODO: categorization 1 # TODO: rpath. 1 // FIXME: swift-3-indexing-model: range checks and tests. 1 // FIXME: This is a hack to cope with cases where the substitution map uses 1 // FIXME: We could generate the code to dynamically report the overflow if the 1 SourceLoc ElseLoc = IS->getElseLoc(); // FIXME: got to pass this back into 1 // FIXME: Implement? 1 // FIXME: Once deserialization loads all the modules it needs for cross 1 // TODO: If the getter has shared linkage (say it's synthesized for a 1 // TODO: remove when we drop the options (i.e. import all names) 1 // TODO: Attempt to analyze partial applies or run closure propagation 1 // FIXME: Deterministic ordering. 1 // FIXME: To limit perturbing original source, this follows the strange 1 // TODO: Pattern match to make sure there is at least one `store` to the 1 // FIXME: This is cheesy when the destination BB has only the switch 1 // FIXME: Protect against broken standard library. 1 // FIXME: This has to be done as a formal AST type substitution rather than 1 // FIXME: This will only happen if IRGen hasn't processed ParentSILType 1 // FIXME: ConformanceChecker and the other associated WitnessCheckers have 2 // FIXME: Add the colon location to the AST. 1 // FIXME: remove this when the following radar is implemented: 1 // FIXME: Fake locations for '{' and '}'? 2 /* FIXME -- Use REF_STORAGE_HELPER and make */ \ 1 /// compatible type. TODO: add enforcement for this rule. 1 /// FIXME: this utility does not make sense as an API. How can the caller 1 /// FIXME: Other type declarations should also be okay? 2 // FIXME: Probably better to catch this case earlier and force-eval as 1 // FIXME: For sanity, address-type phis should be prohibited at all SIL 1 # TODO # }} 3