Commit Graph

11 Commits

Author SHA1 Message Date
Robert Widmann
a52fe65d96 Move a cycle 2019-10-17 16:01:56 -07:00
Slava Pestov
6828a12416 Sema: Remove unnecessary circularity breaks 2019-10-03 17:11:45 -04:00
Slava Pestov
4681b9b1e4 AST: Break circularity in qualified lookup into protocol or extension with 'Self' constraints 2019-01-18 15:12:41 -05:00
Saleem Abdulrasool
f229b311fd test: use FileCheck instead of grep, count
Use FileCheck instead of grep and count.
2018-12-01 11:22:56 -08:00
Doug Gregor
56cfd84b6a [Type checker] Move accessor creation out of validateDecl().
Creating accessors for a storage declaration within validateDecl() caused
circular dependencies detected by the request-evaluator. Separate out
accessor creation to break the dependency.

Fixes SR-8656 / rdar://problem/43951634.
2018-09-11 16:20:12 -07:00
Doug Gregor
ac37747c78 [Type checker] Break isObjC/getObjCSelector cycle.
When we're marking a declaration as @objc and recording it in the
class and source-file lookup tables (for @objc collision detection),
don't cause a cycle by querying `getObjCSelector()`. This is somewhat
of a hack: a better long-term approach would be to move the recording
much later, and request'ify the name computation. That'll be follow-up
work.
2018-09-10 17:30:17 -07:00
Doug Gregor
1bc6b749a4 [Name lookup] Eliminate unnecessary, cyclic check for extended nominal type.
We weren’t getting anything out of the check for the extended nominal
declaration of an extension within unqualified name lookup except
some spurious cycles in the request-evaluator. Stop doing this.
2018-09-10 17:30:17 -07:00
Doug Gregor
d098b3e571 [Sema] Remove the IterativeTypeChecker. 2018-06-15 22:46:55 -07:00
Doug Gregor
17f42aa77a [Type checker] Stop using the iterative type checker for global typealiases.
The ITC is providing no benefit here; stop using it.
2018-06-14 15:29:57 -07:00
David Farler
b7d17b25ba Rename -parse flag to -typecheck
A parse-only option is needed for parse performance tracking and the
current option also includes semantic analysis.
2016-11-28 10:50:55 -08:00
Doug Gregor
8c9be9be12 Iterative type checker: simple circular reference detection.
Put in some rudimentary logic for finding circular references within
the iterative type checker and diagnosing those cycles. The
"rudimentary" part is because we're performing linear searches within
a stack rather than keeping a proper dependency graph, which is
inefficient and could display longer cycles than are actually
present. Additionally, the diagnostic is not specialized to the actual
query, so we get a generic "circular reference" diagnostic. OTOH, we
show all of the declarations involved in the cycle, which at least
lets the user figure out where the cycle occurred.

Enable the iterative type checker for resolving the type of a global
typealiases.

Swift SVN r32572
2015-10-09 17:18:49 +00:00