Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong detection of "Duplicate definition" #187

Closed
sgjesse opened this issue Oct 21, 2011 · 3 comments
Closed

Wrong detection of "Duplicate definition" #187

sgjesse opened this issue Oct 21, 2011 · 3 comments
Assignees

Comments

@sgjesse
Copy link
Contributor

sgjesse commented Oct 21, 2011

The change in http://code.google.com/p/dart/source/detail?r=593 broke the the chat sample and tests. The issue is easy to reproduce. Having either

  typedef void callbackType(List<int> x);
  void main() { print("Hello, world!"); }

or

  interface X {
    void set handler(void callback(List<int> x));
  }
  void main() { print("Hello, world!"); }

in test.dart will produce the error:

out/Release_ia32/dart_bin test.dart
Duplicate definition : '(List<int>) => void' is defined in './dart:builtin-lib' and 'test.dart'

when running

$ out/Release_ia32/dart_bin test.dart

@a-siva
Copy link
Contributor

a-siva commented Oct 21, 2011

Currently we are defining these implicit signature classes in the current library where they are found.
There was a change done to skip signature classes when looking for duplicate definitions but that is incorrect as we will miss cases where we are supposed to detect duplicates when the uses defines typedefs
e.g:
#library("library1.dart");
typdef void callbackType(int x, int y);

#library("library2.dart");
typedef int callbackType();

and an app with
#import("library1.dart");
#import("library2.dart");
This should produce a duplicate definition error for callbackType.

Regis and I discussed this and we think the implicit signature classes should not be defined in the current library that is being parsed but instead in the corelib so that

  1. They will be shared across all code
  2. Will not result in duplicate definitions

cc @crelier.

@crelier
Copy link
Contributor

crelier commented Oct 21, 2011

Set owner to @crelier.

@crelier
Copy link
Contributor

crelier commented Oct 24, 2011

Duplicate import of a function type alias must be detected, but duplicate
import of a compiler generated canonical function type is necessary for proper
class resolution and is permitted.

The discussed solution above (storing all signature classes in the core library) is therefore not correct, because unresolved class names appearing in the function signature would not be resolved properly if the signature class was not part of the parsed library.

It is also important not to lookup and share a signature class in imported libraries, since class resolution would not work properly.
 
The solution implemented in r658 limits lookup and sharing of canonical signature classes to the current library.


Added Fixed label.

copybara-service bot pushed a commit that referenced this issue Jul 10, 2023
…ctor, browser_launcher, characters, cli_util, clock, collection, convert, crypto, csslib, dartdoc, ecosystem, ffi, fixnum, glob, html, http, http_multi_server, http_parser, json_rpc_2, leak_tracker, lints, logging, markdown, matcher, mime, mockito, native, package_config, path, pool, protobuf, pub_semver, shelf, source_map_stack_trace, source_maps, source_span, sse, stack_trace, stream_channel, string_scanner, term_glyph, test, test_descriptor, test_process, test_reflective_loader, tools, typed_data, usage, watcher, web_socket_channel, webdev, yaml

Revisions updated by `dart tools/rev_sdk_deps.dart`.

args (https://github.com/dart-lang/args/compare/a9543c0..da56b18):
  da56b18  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#249)

async (https://github.com/dart-lang/async/compare/a506993..b65622a):
  b65622a  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#247)

bazel_worker (https://github.com/dart-lang/bazel_worker/compare/f7b714e..c29d162):
  c29d162  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#77)

benchmark_harness (https://github.com/dart-lang/benchmark_harness/compare/e717ad4..fde73cb):
  fde73cb  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#91)

boolean_selector (https://github.com/dart-lang/boolean_selector/compare/3a1c982..303635d):
  303635d  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#49)

browser_launcher (https://github.com/dart-lang/browser_launcher/compare/40e4315..27ec600):
  27ec600  2023-07-05  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#46)
  dd8df9c  2023-07-05  Devon Carew  update formatting for recent lints (#47)

characters (https://github.com/dart-lang/characters/compare/3ef8883..ec844db):
  ec844db  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#84)

cli_util (https://github.com/dart-lang/cli_util/compare/5a49947..9b7ce78):
  9b7ce78  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#84)

clock (https://github.com/dart-lang/clock/compare/21caac1..263e508):
  263e508  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#54)

collection (https://github.com/dart-lang/collection/compare/a37bd51..db343da):
  db343da  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#295)

convert (https://github.com/dart-lang/convert/compare/9a387f0..79ee174):
  79ee174  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#84)

crypto (https://github.com/dart-lang/crypto/compare/216931a..8b704c6):
  8b704c6  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#150)

csslib (https://github.com/dart-lang/csslib/compare/be2e11e..7e91228):
  7e91228  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#187)

dartdoc (https://github.com/dart-lang/dartdoc/compare/c2ed703..2522559):
  25225596  2023-06-29  Sam Rawlins  Migrate some simple tasks to a simple package:args command (#3456)

ecosystem (https://github.com/dart-lang/ecosystem/compare/19fa443..b34db4f):
  b34db4f  2023-07-10  Moritz  Allow empty coverage (#128)
  5944328  2023-07-04  Moritz  Prepare for publish (#127)
  c0701c9  2023-07-04  dependabot[bot]  Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (#122)
  9bf3a10  2023-07-03  Moritz  Fix bug by switching `reduce` to `fold` (#126)
  fdfa528  2023-07-01  dependabot[bot]  Bump actions/cache from 3.2.6 to 3.3.1 (#121)
  238444c  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.3.0 to 3.5.3 (#123)
  ca1e1ae  2023-06-30  Moritz  Add coverage workflow (#119)
  cf02b4a  2023-06-30  Lasse R.H. Nielsen  Make Changelog class eagerly load and parse file. (#120)

ffi (https://github.com/dart-lang/ffi/compare/f582ca0..f01dfca):
  f01dfca  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#199)

fixnum (https://github.com/dart-lang/fixnum/compare/d9b9a2a..00fa120):
  00fa120  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#113)

glob (https://github.com/dart-lang/glob/compare/109121d..5b24393):
  5b24393  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#79)

html (https://github.com/dart-lang/html/compare/b3b820b..4060496):
  4060496  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#218)
  8cb99e4  2023-07-01  Devon Carew  address new analysis issues (#219)

http (https://github.com/dart-lang/http/compare/d68081f..c148a3a):
  c148a3a  2023-07-07  Alex James  Java http BaseClient implementation (#980)
  474999f  2023-07-05  Brian Quinlan  Document that the network entitlement is required when running in the macOS sandbox (#979)
  98e4112  2023-07-05  Brian Quinlan  Fix a bug where ...WebSocketClosed had two different initializer signatures (#981)
  9833a20  2023-07-05  Brian Quinlan  Support Steam<List<int>> as a provider of request data (#975)
  d3e78a0  2023-07-01  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#976)

http_multi_server (https://github.com/dart-lang/http_multi_server/compare/a209cd5..aa128cf):
  aa128cf  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#56)

http_parser (https://github.com/dart-lang/http_parser/compare/19466c0..c14fbf6):
  c14fbf6  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#75)

json_rpc_2 (https://github.com/dart-lang/json_rpc_2/compare/73467f3..509f71e):
  509f71e  2023-07-05  Nate Bosch  Fix the example to act as a server (#100)
  d80cbd0  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#99)

leak_tracker (https://github.com/dart-lang/leak_tracker/compare/c75b0a7..85bd7fb):
  85bd7fb  2023-07-05  Polina Cherkasova  - (#87)

lints (https://github.com/dart-lang/lints/compare/89f9519..e03dc04):
  e03dc04  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#138)

logging (https://github.com/dart-lang/logging/compare/f2fe2ac..5214987):
  5214987  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#144)

markdown (https://github.com/dart-lang/markdown/compare/4674d09..b4bdde2):
  b4bdde2  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#549)

matcher (https://github.com/dart-lang/matcher/compare/7e10117..ce8f409):
  ce8f409  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#225)

mime (https://github.com/dart-lang/mime/compare/2444840..bdb66bd):
  bdb66bd  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#99)

mockito (https://github.com/dart-lang/mockito/compare/974226e..451f756):
  451f756  2023-07-10  Nate Bosch  Add example of mocking callbacks
  c13496c  2023-07-05  Googler  Rollback of "Use `FunctionTypedElement.type` while generating method overrides"
  60e619a  2023-07-05  Ilya Yanok  Use `FunctionTypedElement.type` while generating method overrides
  93b69ef  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#669)
  a926a63  2023-06-30  Ilya Yanok  Add a note on only running codegen on files under `test/` by default
  9f40189  2023-06-30  Ilya Yanok  Require analyzer 5.12.0

native (https://github.com/dart-lang/native/compare/e12d3e6..de1b0cc):
  de1b0cc  2023-07-10  Daco Harkes  [c_compiler] Pass the correct SDK for iOS simulator builds (#77)
  21d7270  2023-07-01  dependabot[bot]  Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (#72)
  23a9b62  2023-07-01  dependabot[bot]  Bump nttld/setup-ndk (#74)
  44073a8  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#75)
  6f01604  2023-07-01  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#73)

package_config (https://github.com/dart-lang/package_config/compare/203de20..be0c441):
  be0c441  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#138)

path (https://github.com/dart-lang/path/compare/592505f..282dd18):
  282dd18  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#147)

pool (https://github.com/dart-lang/pool/compare/c6b1b2c..7700102):
  7700102  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#72)

protobuf (https://github.com/dart-lang/protobuf/compare/7bebbc6..a912f76):
  a912f76  2023-07-04  Ömer Sinan Ağacan  Add more message set tests, fix a bug (#859)

pub_semver (https://github.com/dart-lang/pub_semver/compare/3930557..028b435):
  028b435  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#90)

shelf (https://github.com/dart-lang/shelf/compare/ce379aa..bd59ead):
  bd59ead  2023-07-06  Kevin Moore  router_generator: allow latest pkg:analyzer, request Dart 3 (#368)
  bebc801  2023-07-06  Jonas Finnemann Jensen  Fix 244 (#268)
  1617efa  2023-07-02  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#366)
  c037bb6  2023-07-02  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#365)
  1ae4d4e  2023-07-01  Devon Carew  address a new lint (#367)

source_map_stack_trace (https://github.com/dart-lang/source_map_stack_trace/compare/b83af01..16e54fd):
  16e54fd  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#40)

source_maps (https://github.com/dart-lang/source_maps/compare/58eef30..97c4833):
  97c4833  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#80)

source_span (https://github.com/dart-lang/source_span/compare/4dc78fb..37735ae):
  37735ae  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#99)

sse (https://github.com/dart-lang/sse/compare/bfcbcd7..e241085):
  e241085  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#85)

stack_trace (https://github.com/dart-lang/stack_trace/compare/8b2046e..4ddd86d):
  4ddd86d  2023-07-05  Slava Egorov  Prepare 1.11.1 release (#137)
  d3e4c4d  2023-07-04  Slava Egorov  Use awaiter-link pragma to guide VM's builtin awaiter stack unwinding (#135)
  44aafa3  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#136)

stream_channel (https://github.com/dart-lang/stream_channel/compare/34804a1..e54234f):
  e54234f  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#93)

string_scanner (https://github.com/dart-lang/string_scanner/compare/6bb314f..35657e2):
  35657e2  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#59)

term_glyph (https://github.com/dart-lang/term_glyph/compare/4daa34e..423700a):
  423700a  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#40)

test (https://github.com/dart-lang/test/compare/021667a..3429712):
  3429712b  2023-07-06  Nate Bosch  Drop usage of window.testRunner (#2059)
  dc6b8236  2023-06-29  dependabot[bot]  Bump actions/checkout from 3.1.0 to 3.5.3 (#2051)
  b6dc3f8d  2023-06-29  dependabot[bot]  Bump dart-lang/setup-dart from 1.3.0 to 1.5.0 (#2052)
  5fa2572f  2023-06-29  Jacob MacDonald  regenerate mono_repo with the latest (#2055)
  56584627  2023-06-29  dependabot[bot]  Bump github/codeql-action from 2.3.5 to 2.20.1 (#2053)
  050fe2d6  2023-06-29  dependabot[bot]  Bump ossf/scorecard-action from 2.1.3 to 2.2.0 (#2054)
  ba6ccfc2  2023-06-29  Devon Carew  config dependabot to send daily PRs for major version bumps (#2050)

test_descriptor (https://github.com/dart-lang/test_descriptor/compare/be7ce07..54a4c59):
  54a4c59  2023-07-03  Devon Carew  update formatting for recent lints (#54)

test_process (https://github.com/dart-lang/test_process/compare/5ff2122..b360784):
  b360784  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#46)

test_reflective_loader (https://github.com/dart-lang/test_reflective_loader/compare/40d61b1..0bfaad9):
  0bfaad9  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#50)

tools (https://github.com/dart-lang/tools/compare/8db0aa1..af38b2b):
  af38b2b  2023-07-02  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#119)
  8b8ccab  2023-07-01  Devon Carew  update formatting based on the recent lints (#121)
  30b50ff  2023-07-01  dependabot[bot]  Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (#118)
  74979c1  2023-07-01  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#120)

typed_data (https://github.com/dart-lang/typed_data/compare/8d29573..a20be90):
  a20be90  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#69)

usage (https://github.com/dart-lang/usage/compare/6ee0908..09bb847):
  09bb847  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#196)

watcher (https://github.com/dart-lang/watcher/compare/3f17faa..7457413):
  7457413  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#148)

web_socket_channel (https://github.com/dart-lang/web_socket_channel/compare/7fb82f2..7ae4d0f):
  7ae4d0f  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#274)

webdev (https://github.com/dart-lang/webdev/compare/8360d50..f0ba743):
  f0ba7438  2023-07-07  Elliott Brooks  Reset webdev to version 3.0.7-wip (#2170)
  2fcc1ba9  2023-07-06  Anna Gringauze  Add option of running frontend server tests in canary mode (#2169)
  632763a5  2023-07-06  Elliott Brooks  Prepare webdev for release to 3.0.6 (#2167)
  fa7b6d44  2023-07-05  dependabot[bot]  Bump actions/checkout from 3.5.0 to 3.5.3 (#2163)
  2a6a457b  2023-07-05  Devon Carew  regenerate from the latest mono_repo (#2165)
  cbb0d76a  2023-07-05  Anna Gringauze  Run instance tests with frontend server (#2160)
  b672e98a  2023-07-05  Elliott Brooks  Reset DWDS after release (#2168)
  8ef92d71  2023-07-05  Elliott Brooks  Prepare DWDS for release to version 19.0.2 (#2166)
  77e5b373  2023-07-05  Elliott Brooks  Handle potential `null` value in `setUpChromeConsoleListeners` (#2162)
  5081dff0  2023-07-01  dependabot[bot]  Bump actions/labeler from 4.0.4 to 4.2.0 (#2164)

yaml (https://github.com/dart-lang/yaml/compare/0b9041d..7930148):
  7930148  2023-07-01  dependabot[bot]  Bump actions/checkout from 3.5.2 to 3.5.3 (#148)

Change-Id: I095a2479946e13d8499f1b3a58dc5a82688063f6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/313020
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
copybara-service bot pushed a commit that referenced this issue Oct 19, 2023
…bdev

Revisions updated by `dart tools/rev_sdk_deps.dart`.

ecosystem (https://github.com/dart-lang/ecosystem/compare/dcbd2ee..4acfcaf):
  4acfcaf  2023-10-18  Devon Carew  depend on package:lints 3.0.0 (#187)

lints (https://github.com/dart-lang/lints/compare/90d350e..975c687):
  975c687  2023-10-17  Devon Carew  rev to 3.0.0; prep to publish (#160)

mockito (https://github.com/dart-lang/mockito/compare/47a5588..4edf86f):
  4edf86f  2023-10-18  Ilya Yanok  Change `!= null` to `is T` to handle "double nullable" case

tools (https://github.com/dart-lang/tools/compare/ddeccf6..15cc9c7):
  15cc9c7  2023-10-17  Elias Yishak  Add more info into the `AnalyticsException` (#181)

vector_math (https://github.com/google/vector_math.dart/compare/d54af8a..294896d):
  294896d  2023-10-18  Devon Carew  add a changelog entry for the most recent change (#290)
  2d6311e  2023-10-18  dependabot[bot]  Bump dart-lang/setup-dart from 1.5.0 to 1.6.0 (#305)
  2c16283  2023-10-18  Kevin Moore  Allow latest pkg:build_web_compilers, bump min SDK to v3 (#299)
  cc8ca1c  2023-10-18  dependabot[bot]  Bump actions/checkout from 3.6.0 to 4.1.0 (#303)

watcher (https://github.com/dart-lang/watcher/compare/3998cdd..6ad58dc):
  6ad58dc  2023-10-19  Parker Lougheed  Migrate to dart_flutter_team_lints v2.1 (#153)

webdev (https://github.com/dart-lang/webdev/compare/8d48d5e..1bd434b):
  1bd434b6  2023-10-17  Elliott Brooks  Prepare DWDS for release to version 22.0.0 (#2254)
  c9e96b73  2023-10-16  Elliott Brooks  Run the Webdev tests daily with the Dart stable SDK (#2251)

Change-Id: I324913bfbdeb9d0d6afc38f8719cac5f5ffe9955
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/331204
Auto-Submit: Devon Carew <devoncarew@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants