Different typechecker behavior for symlinks on startup vs incremental mode
- Dominant language
- C++
- Stars
- 18.7k
- Forks
- 3.1k
- Avg merge
- 1h 47m
- Merged PRs (30d)
- 2
Description
from @jwatzman on hhvm/user-documentation#69
@int3 it looks like we do not read through symlinks in the initial startup, but we do in an incremental update. You made some changes to how we start up, with `find` and `watchman`, right? Can you test this modification of @fredemmott's example and look into it?
``` sh
$ cd /tmp
$ mkdir foo
$ cd foo
$ touch .hhconfig
$ mkdir a b
$ echo ' a/file.php
$ ln -s ../a/file.php b/symlink.php
$ hh_client
For more detailed logs, try `tail -f $(hh_client --logname)`
Server launched with the following command:
'/data/users/jwatzman/fbsource/fbcode/_build/dbg/hphp/hack/src/hh_server' '-d' '/tmp/foo' '--waiting-client' '7'
Spawned hh_server (child pid=2090684)
Logs will go to /tmp/hh_server/zStmpzSfoo.log
No errors!
$ hh_client stop
Attempting to nicely kill server for /tmp/foo
Successfully killed server for /tmp/foo
$ rm b/symlink.php
$ hh_client
For more detailed logs, try `tail -f $(hh_client --logname)`
Server launched with the following command:
'/data/users/jwatzman/fbsource/fbcode/_build/dbg/hphp/hack/src/hh_server' '-d' '/tmp/foo' '--waiting-client' '7'
Spawned hh_server (child pid=2091276)
Logs will go to /tmp/hh_server/zStmpzSfoo.log
No errors!
$ ln -s ../a/file.php b/symlink.php
$ hh_client
b/symlink.php:1:12,14: Name already bound: Foo (Naming[2012])
a/file.php:1:12,14: Previous definition is here
```
Contributor guide
Assessment
This issue has not been assessed yet.